RNAPVMIN(1)

๐Ÿ“ฆ
version 2.7.0 ยท 5 versions
, in ubuntu resolute, ubuntu stonking

๐ŸŽ€ RNAPVMIN(1) ๐ŸŽ€

Okay bestie, this is the RNAPVMIN manual page ๐Ÿ’– It lives in the User Commands section (section 1 ๐Ÿฆ‹), so it's a command you actually run in your terminal. Let's get into it โœจ

โœจ NAME โœจ

So the name is RNApvmin, and this page is the manual page for RNApvmin 2.7.0 ๐ŸŒธ The name and version are the whole story here, no cap ๐Ÿ’…

๐Ÿ’… SYNOPSIS ๐Ÿ’…

This is how you call it, and it's giving very simple energy ๐Ÿซถ

RNApvmin [options] <file.shape>

The square brackets wrap the [options] part, and the angle brackets wrap <file.shape>, which is a placeholder for the file.shape you hand it ๐Ÿงš

โœจ DESCRIPTION โœจ

okay so RNApvmin 2.7.0 is literally iconic ๐Ÿ’– It calculates a perturbation vector that minimizes the discrepancies between predicted and observed pairing probabilities ๐Ÿฆ‹

It reads an RNA sequence from stdin and runs an iterative minimization to find that perturbation vector. The observed pairing probabilities are deduced from shape reactivities ๐ŸŒธ Your experimental data comes from a SHAPE file and gets normalized into pairing probabilities. The file is multiline plain text, where each line looks like [position] [nucleotide] [absolute shape reactivity], e.g. 3 A 0.7 ๐Ÿ“ The objective function can be weighted by choosing good values for sigma and tau โญ

Minimization progress gets written to stderr ๐Ÿงš Once it's finished, the perturbation vector you end up with lands in stdout ๐Ÿ’Œ

  • -h, --help โ€” Print help and exit ๐Ÿ™ˆ
  • --detailed-help โ€” Print help, including all details and hidden options, and exit ๐Ÿ“š
  • --full-help โ€” Print help, including hidden options, and exit ๐Ÿซถ
  • -V, --version โ€” Print version and exit ๐ŸŒธ
  • -v, --verbose โ€” Be verbose ๐ŸŒˆ (default: off). This lowers the log level setting so even INFO messages get through.

๐ŸŽ€ I/O Options ๐ŸŽ€

Command line options for input and output (pre-)processing ๐Ÿ’…

  • -j, --numThreads=INT โ€” Set how many threads are used for calculations ๐Ÿ”ฅ
  • --log-level=level โ€” Set the log level threshold (default: 2). By default, log messages are filtered so only warnings (level 2) or errors (level 3) get printed. Higher values mean fewer messages. Log-level 5 turns off all messages, even errors and other critical info ๐Ÿ’€
  • --log-file[=filename] โ€” Print log messages to a file instead of stderr (default: RNApvmin.log) ๐Ÿ“
  • --log-time โ€” Include a time stamp in log messages (default: off) โฐ
  • --log-call โ€” Include the file and line of the calling function in log messages (default: off) ๐Ÿ”

๐Ÿฆ‹ Algorithms ๐Ÿฆ‹

Select extra algorithms to include in the calculations ๐Ÿ’– The Minimum free energy (MFE) and a structure representative are always calculated, no matter what, so you don't have to ask โœจ

  • --shapeConversion=STRING โ€” Pick the method used to convert SHAPE reactivities to pairing probabilities (default: O). These methods turn reactivities into the probability that a nucleotide is unpaired:
    • M: linear mapping according to Zarringhalam et al. 2012 ๐ŸŒŠ
    • C: a cutoff approach that splits nucleotides into paired and unpaired, e.g. C0.25 โœ‚๏ธ
    • S: skips the normalizing step, because your input already holds unpaired probabilities instead of raw reactivity values ๐Ÿซถ
    • L: a linear model that turns reactivity into an unpaired probability, e.g. Ls0.68i0.2 for a slope of 0.68 and an intercept of 0.2 ๐Ÿ“ˆ
    • O: a linear model that turns the log of the reactivity into an unpaired probability, e.g. Os1.6i-2.29 for a slope of 1.6 and an intercept of -2.29 ๐Ÿง 
  • --tauSigmaRatio=DOUBLE โ€” The ratio of the weighting factors tau and sigma (default: 1.0). A high ratio gets you a solution as close as possible to the experimental data ๐ŸŽฏ A low ratio gets you results close to the thermodynamic prediction, without the guiding pseudo energies ๐ŸงŠ
  • --objectiveFunction=INT โ€” The energies of the perturbation vector and the discrepancies between predicted and observed pairing probabilities both feed into the objective function. This picks how each contribution gets processed before they're all summed up: 0 for square, 1 for absolute (default: 0) ๐Ÿงฎ
  • --sampleSize=INT โ€” The iterative minimization needs the gradient of the objective function (default: 1000). A sample size of 0 gives an analytical evaluation that scales as O(N^4), which is the slow lane ๐Ÿข A sample size greater than 0 estimates the gradient by sampling that many sequences from the ensemble, which is way faster ๐Ÿš€
  • -N, --nonRedundant โ€” Enable the non-redundant sampling strategy (default: off) ๐Ÿ‘‘
  • --intermediatePath=STRING โ€” Write an output file for each iteration of the minimization. Each file holds the perturbation vector used and the score of the objective function. The iteration number gets appended to the given path ๐Ÿ“‚
  • --initialVector=DOUBLE โ€” Set the vector of initial perturbations (default: 0). This is the starting vector for the minimization. The value 0 gives you a null vector. Any other value x fills the initial vector with random numbers from the interval [-x,x] ๐ŸŽฒ
  • --minimizer=ENUM โ€” Pick the minimizing algorithm used to find a good perturbation vector (possible values: conjugate_fr, conjugate_pr, vector_bfgs, vector_bfgs2, steepest_descent, default; default: default). The default option is a custom gradient descent implementation, while the others are different algorithms from the GNU Scientific Library. If the GNU Scientific Library can't be found, only the default minimizer is available ๐Ÿ˜ญ
  • --initialStepSize=DOUBLE โ€” The initial step size for the minimizer methods (default: 0.01) ๐Ÿ‘ฃ
  • --minStepSize=DOUBLE โ€” The minimal step size for the minimizer methods (default: 1e-15) ๐Ÿœ
  • --minImprovement=DOUBLE โ€” The minimal improvement the default minimizer has to beat before it counts a new result as better (default: 1e-3) ๐Ÿ“‰
  • --minimizerTolerance=DOUBLE โ€” The tolerance used in the GSL minimizer methods (default: 1e-3) ๐ŸŽฏ
  • -S, --pfScale=DOUBLE โ€” In the partition function calculation, this uses scale*mfe as an estimate for the ensemble free energy, which helps avoid overflows (default: 1.07). The default is 1.07, and useful values are 1.0 to 1.2. Sometimes this is needed for long sequences ๐Ÿงฏ

๐Ÿ’œ Structure Constraints ๐Ÿ’œ

Command line options to interact with the structure constraints feature of this program ๐Ÿซง

  • --maxBPspan=INT โ€” Set the maximum base pair span (default: -1) ๐Ÿงต

๐ŸŒธ Energy Parameters ๐ŸŒธ

Energy parameter sets can be adapted or loaded from user-provided input files ๐Ÿ“

  • -T, --temp=DOUBLE โ€” Rescale the energy parameters to a temperature of temp C (default: 37.0). The default is 37C ๐ŸŒก๏ธ
  • -P, --paramFile=paramfile โ€” Read energy parameters from paramfile instead of using the default parameter set. Separate sets of energy parameters for RNA and DNA should come with your distribution. The RNAlib documentation has the details on the file format. The placeholder file name DNA lets you load DNA parameters without actually specifying an input file ๐Ÿงฌ
  • -4, --noTetra โ€” Don't include the special tabulated stabilizing energies for tri-, tetra- and hexaloop hairpins (default: off). This is mostly for testing ๐Ÿงช
  • --salt=DOUBLE โ€” Set the salt concentration in molar (M). The default is 1.021M ๐Ÿง‚

๐Ÿงš Model Details ๐Ÿงš

Tweak the energy model and pairing rules even more with these parameters ๐Ÿ’–

  • -d, --dangles=INT โ€” Decide how to treat "dangling end" energies for bases next to helices in free ends and multi-loops (default: 2).
    • With -d1, only unpaired bases can take part in at most one dangling end ๐ŸŒ™
    • With -d2, that check gets ignored, and dangling energies are added for bases next to a helix on both sides no matter what. This is the default for mfe and partition function folding (-p) โœจ
    • -d0 ignores dangling ends altogether, and it's mostly for debugging ๐Ÿ› ๏ธ
    • With -d3, mfe folding allows coaxial stacking of adjacent helices in multi-loops. Right now, the implementation won't allow coaxial stacking of the two enclosed pairs in a loop of degree 3, and this only works for mfe folding ๐Ÿชข
    • Heads up: with -d1 and -d3, only the MFE computations use this setting. The partition function uses the -d2 setting, so dangling ends get treated differently ๐Ÿ‘€
  • --noLP โ€” Produce structures without lonely pairs (helices of length 1) (default: off). For partition function folding, this only disallows pairs that can only occur isolated. Other pairs may still show up now and then as helices of length 1 ๐Ÿฆ‹
  • --noGU โ€” Don't allow GU pairs (default: off) ๐Ÿšซ
  • --noClosingGU โ€” Don't allow GU pairs at the end of helices (default: off) ๐Ÿ™…
  • --nsp=STRING โ€” Allow other pairs on top of the usual AU, GC and GU pairs. The argument is a comma-separated list of extra allowed pairs. If the first character is a -, then AB implies that both AB and BA are allowed pairs, e.g. --nsp="-GA" lets GA and AG pair. Nonstandard pairs get 0 stacking energy ๐ŸŒˆ
  • --energyModel=INT โ€” Set the energy model. This is a rarely used option for folding sequences from the artificial ABCD... alphabet, where A pairs with B, C with D, and so on. Use --energyModel 1 for the energy parameters of GC pairs, or --energyModel 2 for AU pairs ๐Ÿงช
  • --helical-rise=FLOAT โ€” Set the helical rise of the helix in Angstrom units (default: 2.8) ๐Ÿ“
Use with caution! This value gets re-set automatically to 3.4 if DNA parameters are loaded via -P DNA and no other value is provided. โš ๏ธ
  • --backbone-length=FLOAT โ€” Set the average backbone length for looped regions in Angstrom units (default: 6.0) ๐Ÿฆด
Use with caution! This value gets re-set automatically to 6.76 if DNA parameters are loaded via -P DNA and no other value is provided. โš ๏ธ

โœจ REFERENCES โœจ

okay bestie, if you're using this program for your work, you might wanna cite these ๐Ÿ“š๐Ÿซถ

  • R. Lorenz, S.H. Bernhart, C. Hoener zu Siederdissen, H. Tafer, C. Flamm, P.F. Stadler and I.L. Hofacker (2011), "ViennaRNA Package 2.0", Algorithms for Molecular Biology: 6:26
  • I.L. Hofacker, W. Fontana, P.F. Stadler, S. Bonhoeffer, M. Tacker, P. Schuster (1994), "Fast Folding and Comparison of RNA Secondary Structures", Monatshefte f. Chemie: 125, pp 167-188
  • R. Lorenz, I.L. Hofacker, P.F. Stadler (2016), "RNA folding with hard and soft constraints", Algorithms for Molecular Biology 11:1 pp 1-13
  • S. Washietl, I.L. Hofacker, P.F. Stadler, M. Kellis (2012) "RNA folding with soft constraints: reconciliation of probing data and thermodynamics secondary structure prediction" Nucl Acids Res: 40(10), pp 4261-4272

the energy parameters are taken from these ๐ŸŒธ๐Ÿงš

  • D.H. Mathews, M.D. Disney, D. Matthew, J.L. Childs, S.J. Schroeder, J. Susan, M. Zuker, D.H. Turner (2004), "Incorporating chemical modification constraints into a dynamic programming algorithm for prediction of RNA secondary structure", Proc. Natl. Acad. Sci. USA: 101, pp 7287-7292
  • D.H Turner, D.H. Mathews (2009), "NNDB: The nearest neighbor parameter database for predicting stability of nucleic acid secondary structure", Nucleic Acids Research: 38, pp 280-282

โœจ EXAMPLES โœจ

okay so RNApvmin takes a SHAPE file plus the matching nucleotide sequence, and the sequence gets read from stdin ๐Ÿ’…

RNApvmin sequence.shape < sequence.fasta > sequence.pv

the normalized SHAPE reactivity data needs to live in a text file, where each line has the position and the reactivity for one nucleotide ([position] [nucleotide] [SHAPE reactivity]) ๐Ÿฆ‹

1 A 1.286
2 U 0.383
3 C 0.033
4 C 0.017
...
...
98 U 0.234
99 G 0.885

the nucleotide info in the SHAPE file is optional ๐Ÿซถ but if it's there, it gets used to cross check your input sequence. and if SHAPE reactivities couldn't be determined for every nucleotide, you can just leave the missing values out (the original says "omited," but we're spelling it right here, periodt ๐Ÿ’€).

the progress of the minimization gets printed to stderr โœจ once a solution is found, the calculated perturbation vector gets printed to stdout and can then be used to constrain RNAfold's MFE/partition function calculation by applying the perturbation energies as soft constraints ๐Ÿ”ฅ

RNAfold --shape=sequence.pv --shapeMethod=W < sequence.fasta

โœจ AUTHOR โœจ

the authors are Dominik Luntzer and Ronny Lorenz ๐Ÿ‘‘๐ŸŒˆ


โœจ REPORTING BUGS โœจ

โš ๏ธ if in doubt, our program is right, nature is at fault. ๐Ÿ™ˆ

comments should be sent to rna@tbi.univie.ac.at ๐Ÿ’–


Source: RNApvmin 2.7.0, dated February 2026. Bye bestie, you're literally the best ๐Ÿฆ‹๐Ÿ’œ

๐Ÿ“ฆ where this page comes from