       MFOLD - Prediction of RNA secondary structure by free energy 
               minimization.
             - Version 2.0 
             - Michael Zuker and John Jaeger 
             - lrna : folds linear RNA sequences
             - crna : folds circular RNA sequences
       
The original version (1.0) was designed by Michael Zuker and
programmed by Eric Nelson in the summer of 1987 in the Division of
Biological Sciences at the National Research Council of Canada. John
Jaeger added the tetraloop bonus energy feature and created the
BATGEN program for batch file generation. 
       
Version 2.0 corrects a number of small bugs from the original
program. These were added to version 1 and itemized in the
ERRATA.LIST file that was distributed along with version 1. The major
improvements of version 2 are : 
1. During the generation of suboptimal foldings, the number of new
base pairs that are sufficiently different from base pairs that have
already been found must be greater than the WINDOW parameter. This
feature was added during the summer of 1989, and was made part of
version 1 (item 11 in the ERRATA.LIST file distributed with this
version). The effect is to eliminate structures that contain just a
few new base pairs. 
2. Temperature dependent folding. This was added in the fall of 1989
and was never a feature of version 1. 
3. The multiple sequence option will now generate suboptimal foldings
of all the sequences in an input file. This can be used (for 
example), to compute all foldings within 10% of the minimum energy 
for all the 5S RNAs conained in a single file.
       
The programs were adapted to run in a UNIX environment during the 
winter of 1990. M. Zuker ported all the code except for the dotplt 
subroutine. Roland Gaboury created dotplt 'de novo' using the IRIS 
GL.

METHOD : A dynamic programming algorithm is used to find optimal and
suboptimal foldings of an RNA molecule starting from linear sequence
data. Auxiliary information can be used to constrain the folding. 
       
Energy data from : 
S.M. Freier et al., Proc. Natl. Acad. Sci. USA, 83, 9373-9377, 1986. 
D.H. Turner et al., Cold Spring Harbor Symposia on Quantitative Biology, 
52, 123-133, 1987.
D.H. Turner et al., Annu. Rev. Biophys. Biophys. Chem 17, 167-192 (1988).
This last reference has all the dangling end and terminal mismatch data.
       
References :
M. Zuker 
On Finding All Suboptimal Foldings of an RNA Molecule.
Science, 244, 48-52, (1989)

J. A. Jaeger, D. H. Turner and M. Zuker 
Improved Predictions of Secondary Structures for RNA.
Proc. Natl. Acad. Sci. USA, BIOCHEMISTRY, 86, 7706-7710, (1989)
       
J. A. Jaeger, D. H. Turner and M. Zuker 
Predicting Optimal and Suboptimal Secondary Structure for RNA.
in "Molecular Evolution: Computer Analysis of Protein and
Nucleic Acid Sequences", R. F. Doolittle ed.
Methods in Enzymology, 183, 281-306 (1989)

see also:
M. Zuker 
Computer Prediction of RNA Structure.
in "RNA Processing", J. E. Dahlberg and J. N. Abelson eds.
Methods in Enzymology, 180, 262-288, (1989)

M. Zuker 
The Use of Dynamic Programming Algorithms in RNA Secondary
Structure Prediction.
in "Mathematical Methods for DNA Sequences", M. S. Waterman ed.
CRC Press, Inc.,  159-184, (1989)

A.B. Jacobson, M. Zuker and A. Hirashima 
Comparitive Studies on the Secondary Structure of the RNAs of
Related RNA Coliphages.
in "Molecular Biology of RNA: New Perspectives", M. Inouye and
B. S. Dudock eds.
Academic Press, Inc., 331-354, (1987)


Use :

lrna and crna are ready to use. They can be run by issuing the 
commands :
lrna
  or
crna

To have these programs run in their own shell, you can use the 
commands :
zsh lrna
or
zsh crna

lrna and crna have many files in common. However, the include file 
'rfd.inc' is different for lrna and crna. lrna uses lin.inc as its 
rfd.inc, and crna uses circ.inc. This is taken care of automatically
in Makefile. The folding dimensions can be altered by changing
lin.inc (linear RNA folding) or circ.inc (circular RNA folding). If
lin.inc or circ.inc is changed, then ALL subroutines used by lrna or
crna must be recompiled with the exception of formid and multid. This
is done automatically by Makefile.

files.list contains a list and description of all files used for 
folding. Note the sample runs of the ALU sequence and the batch input
files (bat1.com and bat2.com that produced them).

mfold.user is a user's manual.

mfold.doc is a glossary of functions, subroutines and variables.

mfold.flow is a crude flow chart of the main program of mfold.
