[comp.lang.postscript] Plasmid Description Language short summary

craigw@aecom.YU.EDU (Craig Werner) (09/13/88)

For those who missed the earlier postings, here is a summary that I've tried
to make as short as possible, but no shorter:	
	For those who caught the earlier postings: some vectors, 
insert-conversions, improved text handling (PSHOW), multi-line maps, 
plus a few other routines, have been added.

---------
	Craig Werner 	(Lognames: werner, craigw)
	1935-14E Eastchester Rd. Bronx NY 10461
	Albert Einstein College of Medicine

-----------------------------------------------------------------------------
Summary Description of the plasmid description language:

-----------------------------------------------------------------------------
Note: For all drawing routines, the unit in which sites are specified is the
*base pair*, and the scaling of base pairs is relative to the currently defined
PLASMIDLENGTH.

------------------------------
Circular Map Drawing Routines:
------------------------------

arcSEGMENT	-draws a circular map segment

arcTIC		-draws a tic at a site
arcTICi		-same as arcTIC, only inside the arc

arcLABEL	-prints a label centered on a site
arcLABELi	-same as arcLABEL, only inside the arc
arcRLABEL	-prints a label using rotated text (prints upright, R->L).
arcRLABELc	-clockwise RLABEL
arcRLABELcc	-counterclockwise RLABEL
arcCLABEL	-prints a label centered between 2 sites (Centered LABEL)
arcCLABELi	-same as arcLABEL, only inside arc.

arcRESITE	-draws a tic and labels it at specified site
extRESITE	-draws a Restriction site with a tic and extension (tricky).

arcSPAN		-draws a demarcated arc (i.e., a span line) a 
                 	spanDISTANCE away from the main map. 

arcARROWc	-draws a clockwise arrow from specified site with given length
arcARROWci	-clockwise arrow, inside the circle
arcARROWcc	-counterclockwise arrow
arcARROWcci	-counterclockwise arrow inside the circle

		Note: For promoter symbol, combine it with arcTIC

arcscaled	-- used internally to convert base pairs to degrees.

Vectors:
--------

pUC18		- draws a scaled pUC allowing room for insert
pBSM13+		- draws a scaled pBSM13+ allowing room for insert

		Note:  both of these routines assume that the insert
		is cloned into the polylinker (multi-cloning site).

------------------------
Linear Map Routines:
------------------------

linSEGMENT		-- draws a DNA segment

linTIC 			-- a vertical line above segment to mark a site
linTICd 		-- same, only below the segment (i.e. 'd' for down)
		
linLABEL		-- places text above a site
linLABELd		-- same, only below

linCLABEL		-- a label above segment centered between two sites
linCLABELd		-- a label below segment 

linRESITEh		-- for restriction enzyme sites, places a tic and label
linRESITEhd		-- "  horizontal below
linRESITEv		-- " vertical above
linRESITEvd		-- " vertical below

linARROWr		-- draws a rightward arrow (a tic length above segment)
linARROWl		-- leftward arrow
linARROWrd		-- rightward arrow below segment
linARROWld		-- leftward arrow below segment

linSPAN			-- draws a spanning line spanLENGTH above a segment
linSPANd		-- draws a spanning line below segment

linNSPAN		-- a spanning line with its length [bp] above it.
linNSPANd		-- a spanning line with its length below it.

linLSPAN		-- a spanning line with a label above it
linLSPANd		-- a spanning line with a label below it

linscaled		-- used internally to convert bp to distances.

Vectors:
--------
	gt11		- gt11 with room for insert at EcoRI site (19600)
			
---------------------------------------------------------------------------
Text Handling Routines

POINTSIZE	-rescales current font and some internal variables (Please Use!)

SETFONT		-resets current font plus some internal variable (Please Use!)

PSHOWc		-centers text on a point
PSHOWl		-left-justifies text starting at given point
PSHOWr		-right-justifies text to a given point

---------------------------------------------------------------------------
Definition Routines

-----------------------
Common Map Definition:
-----------------------

DEFINE		-- a synonym for PostScript 'def'
WIDTH		-- thickness of segment
ticDISTANCE	-- distance from center of segment of end of tic
textDISTANCE	-- distance from center of segment to text
spanDISTANCE	-- distance from center of segment to span line
spanGAP		-- difference between span length and segment length

	All of the above take as their unit the Point, however the keywords
	'inch', and 'cm' are provided to automatically make the conversion.
	'point' and 'pt' are also provided for readability, but are optional.
	
percentBLACK	-- the color used in the shading of the segment.

ZEROPOINT	-- the base which is aligned with the left margin in linear
		   maps, or is at "12:00" (positive Y axis) on circular maps.

PLASMIDLENGTH 	-- or totalLENGTH of the construct to be mapped.
PHAGELENGTH	-- PLASMIDLENGTH and PHAGELENGTH are interchangable 

----------------------------------
Circular Map specific Definitions:
----------------------------------

RADIUS		-specifies the radius of the map (R)
CENTER		-specifies center of the map (X,Y)
XCENTER		-specifies X coordinate of map center (X)
YCENTER		-specifies Y coordinate of map center (Y)
extDISTANCE	-length of an extension for extRESITE (dE)
extARC		-absolute angle (degrees, not bp) of the extension (aE)
EXTENSION	-sets both extDISTANCE and extARC

-------------------------------
Linear Map specific Definition:
-------------------------------

YPOSITION 	- sets vertical position on which linear map is centered
LEFTMARGIN 	- sets left margin	(really base position of ZEROPOINT)
RIGHTMARGIN 	- set right margin	(really base position of PLASMIDLENGTH)
linADJUST       -non-centering adjustment for vertical text (used by
		linRESITEhd and linRESITEvd). 
			
	Note: for all definition routines (except for DEFINE), the current
value can be referenced by appending an ampersand (&) to the name of the
routine, as in &YPOSITION 2 inch sub YPOSITION, which defines a new YPOSITION
2 inches below the present one.

------------------------
Insert-handling routines
------------------------
	The following can be accomplished easily, but are provided as a 
shorthand for drawing maps when distances are known relative to the insert.

Definition:
INSERT		- define the insert length
SITE		- define the site of insertion within the vector

Conversion:
from5'		- converts the position relative to the 5' end to actual	
from3'		- converts the position relative to the 3' end to actual

	The following will produce identical output: 
	&SITE 50 add arcRESITE			%or%    50 from5' arcRESITE
	&SITE &INSERT add 50 sub arcRESITE	%or%    50 from3' arcRESITE

----------------------------------------------------------------------------
Multi-line linear map routines.

	At this point in time, there does not exist the range of support
routines for multiple line maps that exist for single line maps.  Since
the appearance of a multi-line map with the variable NLINES set to 1 is
exactly the same as the corresponding single line map, it is my intention
that eventually multi-line features will migrate to the normal routines.

----------------------------------------
Definition routines for Multi-line Maps
----------------------------------------

NLINES - number of lines in Multi-Segments
lineDISTANCE - space between lines of multi-segments
MZEROPOINT  - where the multi-line map starts.

----------------------------------------
Drawing routines for Multi-line Maps
----------------------------------------
linMSEGMENT - draws a linear segment, recursively calling itself if the
	MSEGMENT extends over the length of a line.  The number of bases
	per line is calculated from PLASMIDLENGTH divided by NLINES.
	
linMTIC  - draws a tic at the given site (in base pairs)
linMLABEL - centers text over a given site (in base pairs)
linMRESITE - draws a tic and labels it at a given site (in base pairs)

-- 
---------
	Craig Werner 	(Lognames: werner, craigw)
       "This is no social crisis, just another tricky day for you."