Locally modified by Brian Fristensky, 10/ 2/93 Draw secondary structure (LoopTool) Base on loopsol by Gary Olsen, University of Illinois, Urbana Illinois. This function will draw an RNA secondary structure from a proposed structure. The secondary structure must be represented as a text sequence containing only ['s, ]'s, and -'s. Any column that represents a 5' side of a helix should have a '[' character, all 3' helix positions should have a ']' and all others should have a '-' character. Example: helix: ---[[[---]]]--- seq: aaagggaaacccaaa To represent: aaa g - c g - c g - c aaa aaa Care must be taken to insure that there are an equal number of ['s and ]'s. Select the sequence (one at a time) that you wish to draw along with the Helix sequence before calling this function. The resulting secondary structure will be presented in LoopTool. LoopTool will allow you to manipulate the helicies, save a given structure to a template file (loop.temp), or print to a PostScript(tm) file (loopout). The menus in LoopTool are as follows: File: Save: Save structure to a template file (loop.temp) Print to File: Save postscript file (loopout) Print to Printer: Print postscript file to printer as specified by environment variable $PSPRINT Quit: Exit LoopTool Edit: Clear constraint: Clear all constraints binding the selected bases Show constraints: Draw lines showing which bases are under positional and distance constraints. This option toggles. Distance constraint: Set the default constraining mechanism to preserve distances between selected bases. This is the default. Positional constrainst: Set the default constraining mechanism to preserve positional relationships between selected bases. Invert helix: Reverse the direction of curvature for the selected bases. Stack Helix: Straighten all selected helicies. View depth: For very complicated structures, view depth can reduce the amount of the structure displayed. Base selection cones in two forms. The first way of selection is Drag Selection. Place the pointer over one base, press and drag the mouse to the last base (5' to 3') that you wish to select, and release. In this manner, you will highlight all bases between the first selected and the last. You can then go onto use the menu items Clear constraint, Invert Helix, and Stack helix. The second form of selection is Anchor and Drag. You first click and release on one base to anchor it, and then click and drag a second base to some new position with respect to the anchored one. This will place a "constraint" between those two bases which will change the way that the structure is drawn. If the default constraint is set to Distance, then the distance between the two bases will be reset. If the default constraint is set to be Positional, then the relative position of the second base w.r.t. the first will be set. Hints: Constraints are resolved in 5' to 3' clockwise manner. Anchors should be set on the most 5' bases. Not all constraints are allowed, and some may result in an error "beep" on the console. Use "Show Constraints" to get a feel for what you are doing. Many thanks to Gary Olsen for the layout algorithm, and for the original source code.