Readme file for the MultiRNAFold package - last version is 1.0.1.
- last updated January 29th, 2005, by Mirela Andronescu
Authorship & reference
Disclaimer
What this package contains
History
Platform & organization
A word for the user
A word for the programmer
Bugs
Contact
Authorship
& reference
The MultiRNAFold package is copyrighted under GNU General Public
Licence, by Mirela Andronescu, Zhi Chuan Zhang and Anne Condon,
Computer Science UBC.
If you use this package to get results in your publications, please
include the following reference:
Mirela Andronescu, Zhi Chuan Zhang and Anne Condon, Secondary Structure
Prediction of Interacting RNA Molecules, Journal of Molecular
Biology, Vol 345/5
pp 987-1001.
Disclaimer
Although
the authors have made every effort to ensure that MultiRNAFold
correctly implements the underlying models and fullfills the
functions described in the documentation, neither the authors nor the
University of British Columbia guarantee its correctness, fitness for a
particular purpose, or future availability.
What this package contains
The MultiRNAFold package contains software for secondary
structure
prediction of one, two, or many interacting RNA or DNA molecules. It is
composed of three pieces of software: SimFold, PairFold and MultiFold.
SimFold predicts the minimum free energy (MFE) secondary structure of a
given input RNA or DNA sequence. The current implementation does NOT
include suboptimal folding calculations. However, this is included in
PairFold. One can very easily adapt that code to SimFold.
PairFold predicts the MFE secondary structure of two interacting RNA or
DNA molecules, and suboptimal structures. All suboptimal structures up
to a specified free energy, or the first k suboptimal structures can be
computed. Currently we have NOT implemented a way to return the
suboptimal structures which differ significantly from each other, but
all suboptimal structures in the specified range are returned. PairFold
can be used to predict the MFE of a single given sequence, but it is
slower than SimFold.
MultiFold predicts the MFE secondary structure of three or more
RNA/DNA input sequences. The current implementation does
NOT
include suboptimal folding calculations, however it can be adapted from
PairFold's implementation. MultiFold can be used with two or one
sequences as input, but it is slower than PairFold or SimFold.
In the MultiRNAFold package, we provide the script get_code.csh, which
makes it very easy for you to get the code for SimFold only, or for
PairFold only, or for MultiFold only.
History
- Jan 29th, 2005, version 1.0.1 was released. For version
1.0.1, I applied very small modifications, to make the package compile
and run on Windows (I used Visual C++ 6.0 on Windows 2K).
- Jan 21st, 2005, version 1.0 was released.
Platform & organization
The MultiRNAFold package has been written in C++, on a Linux
2.6.5 platform, compiler g++ 3.3.3. Version 1.0.1 is valid for
both Linux, and Windows (I used Visual C++ 6.0 on Windows 2K).
The following files and directories are contained in the
package:
- dir params/ contains the
thermodynamic parameters: Turner's parameters for RNA and Mathews'
parameters for DNA. Usually you don't need to touch this.
- dir include/ contains a
few header files which need to be included in the drivers
- dir src/ contains the
source codes
- dir CVS/ is the cvs
default directory and contains version information. Don't remove it.
- simfold.cpp - a
rudimentary driver for SimFold only
- pairfold.cpp - a
rudimentary driver for PairFold only
- multifold.cpp - a
rudimentary driver for MultiFold only
- multirnafold.cpp - a
rudimentary driver for all SimFold, PairFold and MultiFold
- Makefile (valid only for
Linux) - run make to
compile all sources and all drivers. A static library called
libMultiRNAFold.a is created, which contains all three pieces of
software. If you want to compile only SimFold, run make -f
Makefile_simfold. libsimfold.a will be created, and only teh simfold
driver will be compiled. Same for the other two.
- get_code.csh is a csh
script which allows you to get only one of the three pieces of
software, in case you are not interested in the other two. Run it
without arguments to see the usage message.
The version 1.0.1 compiles and works well on Windows
(Visual C++ 6.0). However, I'm not providing a project file, a
Makefile, a lib file or a dll file for Windows. You can do that very
easily in Visual C++. Please let me know if I can help.
A word for the user
At this stage, the drivers are pretty rudimentary. You can
create your own drivers by using the functions in the library. Please
let me know if I can help.
To execute a driver, first type make and then run simfold, pairfold,
multifold or multirnafold without parameters to see a usage message.
If you are not interested in the source code, just remove the
src/ directory, NOT before you typed make to get the library. Then, you
need the directories params/ and include/, the library
and the driver.
A word for the programmer
This may not be the most efficient/clean/clear/elegant code
in the world. Also, there are MANY redundancies, especially between
simfold, pairfold and multifold. However, it should
work. Please let me know if you find any bugs in the code, which
would make the programs work improperly.
I placed comments in the code wherever I thought it's necessary. The
classes, functions and variables should be pretty self-explanatory.
Please let me know if you need help with understanding the code.
Bugs
I found and fixed so many bugs in this package that I can't find
any more, while I'm pretty sure there still are :D. Please contact me
if you find any.
Contact
We would like to know who is using our package, for what, if you
think it's useful, and any other feedback you may have. We will
appreciate you sending this information to us.
If you have any questions/suggestions/comments/concerns or you find
bugs, please contact Mirela Andronescu: andrones@cs.ubc.ca.
Thanks for your interest in MultiRNAFold package!