Tarball of Boltzmann source code
The main algorithm is coded in the file expNumNborTurner.c.
The latter is only called 'simple', since I did not yet implement the
function ARC(alpha,i,j) described in the paper, which is a precomputation
of the number of neighbors due to the addition of a base pair in a loop region.
When implemented, the code will be faster, but this will not change numerical
values. This code relies on source code, such as energy_par.c from the Vienna RNA Package, in order to access energy terms for stacked base pairs and loops.
C-executables for CentOS Linux, release 5.10
-
a.outTurner15:
binary to compute the expected number of neighbors with respect to
the Boltzmann probability with Turner 1999 parameters.
-
a.outUnif:
binary to compute the expected number of neighbors with respect to
the uniform probability, corresponding to setting energy terms to zero.
-
a.outNuss
binary to compute the expected number of neighbors with respect to
the Boltzmann probability with Nussinov energy, consisting of -1 per base
pair.
Python code
This code includes a prototype for the C-implementation, in the
uniform probability case, drivers for testing, wrapper to
enumerate all structures, etc. and subsequently
determine the expected number of neighbors by exhaustion. This code
requires wrappers to access Vienna RNA Package, given in the section
after this section.
-
computeExpNumNbors.py: cubic time DP algorithm to compute the expected number of structural neighbors with respect to the uniform probability distribution.
-
exhaustiveComputationNearestNeighborsTurnerEnergy.py: code which invokes Vienna RNA Package RNAsubopt, in order to generate a list of all secondary structures, and by computing Boltzmann factors with RNAeval, computes the the expected number of structural neighbors with respect to the Boltmann probability distribution for the Turner energy model. This code is used for cross-checking the DP algorithm.
-
exhaustiveComputationNearestNeighborsUniformProb.py
-
exhaustiveOutputNumNborsNumStrUniform.py: analogue to previous code, but with respect to uniform probability distribution. Used for debugging and cross-checking DP algorithm.
-
fruAnumNborsByRank.txt: output when previous code "computeExpNumNearestNbors_py.txt" is run on the 32 nt SECIS element "fruA". The data is manipulated to produce this file, which gives the number of secondary structures having X structural neighbors, sorted by X in increasing order. Code used to investigate the hypothesis that the number of structural neighbors (analogue of network degree) follows a power law -- it does not.
-
computeExpNumNborsFromFASTAfile.py: driver to process a FASTA file.
Wrappers related to Vienna RNA Package
-
misc.py: miscellaneous functions.
-
vienna.py: wrapper for various function calls to Vienna RNA Package.
-
pf.py: trivial code to compute the partition function, by calling Vienna RNA Package RNAfold; used for cross-checking purposes.