1# Name of your program
2package "RNALfold" # don't use package if you're using automake
3purpose "calculate locally stable secondary structures of RNAs"
4#usage "RNALfold [options]\n"
5
6# Version of your program
7#version "2.0"   # don't use version if you're using automake
8
9
10# command line options passed to gengetopt
11args "--file-name=RNALfold_cmdl --include-getopt --default-optional --func-name=RNALfold_cmdline_parser --arg-struct-name=RNALfold_args_info"
12
13
14description "Compute locally stable RNA secondary structure with a maximal base pair\
15 span. For a sequence of length n and a base pair span of L the algorithm uses only\
16 O(n+L*L) memory and O(n*L*L) CPU time. Thus it is practical to \"scan\" very large\
17 genomes for short RNA structures.\nOutput consists of a list of secondary structure\
18 components of size <= L, one entry per line. Each output line contains the predicted\
19 local structure its energy in kcal/mol and the starting position of the local structure.\n"
20
21# Options
22
23section "General Options"
24sectiondesc="Below are command line options which alter the general behavior of this program\n\n"
25
26option  "verbose" v
27"Be verbose\n\n"
28flag
29off
30
31option  "span"  L
32"Set the maximum distance between any two pairing nucleotides.\n"
33details="This option specifies the window length L and therefore the upper limit for the\
34 distance between the bases i and j of any pair (i, j), i.e. (j - i + 1) <= L.\n\n"
35int
36default="150"
37optional
38
39option  "noconv"  -
40"Do not automatically substitude nucleotide \"T\" with \"U\"\n\n"
41flag
42off
43hidden
44
45option  "outfile" o
46"Print output to file instead of stdout\n"
47details="This option may be used to write all output to output files rather than printing\
48 to stdout. The number of output files created for batch input (multiple sequences) depends\
49 on three conditions: (i) In case an optional filename is given as parameter argument, a\
50 single file with the specified filename will be written into. If the optional argument\
51 is omitted, (ii) FASTA input or an active --auto-id switch will write to multiple files\
52 that follow the naming scheme \"prefix.lfold\". Here, \"prefix\" is taken from the sequence\
53 id as specified in the FASTA header. Lastly, (iii) single-line sequence input without\
54 FASTA header will be written to a single file \"RNALfold_output.lfold\". In case an output\
55 file already exists, any output of the program will be appended to it.\nSince the filename\
56 argument is optional, it must immediately follow the short option flag\
57 to not be mistaken as new parameter to the program. For instance \'-ornafold.out\' will\
58 write to a file \"rnafold.out\".\nNote: Any special characters in the filename will be\
59 replaced by the filename delimiter, hence there is no way to pass an entire directory path\
60 through this option yet. (See also the \"--filename-delim\" parameter)\n\n"
61string
62typestr="<filename>"
63argoptional
64optional
65
66option  "infile"  i
67"Read a file instead of reading from stdin\n"
68details="The default behavior of RNALfold is to read input from stdin. Using this parameter\
69 the user can specify an input file name where data is read from.\n\n"
70string
71typestr="<filename>"
72optional
73
74option  "auto-id"  -
75"Automatically generate an ID for each sequence.\n"
76details="The default mode of RNALfold is to automatically determine an ID from the input sequence\
77 data if the input file format allows to do that. Sequence IDs are usually given in the FASTA\
78 header of input sequences. If this flag is active, RNALfold ignores any IDs retrieved from the\
79 input and automatically generates an ID for each sequence. This ID consists of a prefix and an\
80 increasing number. This flag can also be used to add a FASTA header to the output even if\
81 the input has none.\n\n"
82flag
83off
84
85option  "id-prefix" -
86"Set prefix for automatically generated IDs\n"
87details="If this parameter is set, each sequence will be prefixed with the\
88 provided string. Hence, the output files will obey the following naming\
89 scheme: \"prefix_xxxx.lfold\" where xxxx is the sequence number. Note:\
90 Setting this parameter implies --auto-id.\n\n"
91string
92typestr="prefix"
93default="sequence"
94optional
95hidden
96
97option  "id-delim" -
98"Change prefix delimiter for automatically generated ids.\n"
99details="This parameter can be used to change the default delimiter \"_\" between
100 the prefix string and the increasing number for automatically generated IDs\n\n"
101string
102typestr="delimiter"
103default="_"
104optional
105dependon="auto-id"
106hidden
107
108option  "id-digits"  -
109"Specify the number of digits of the counter in automatically generated alignment IDs.\n"
110details="When alignments IDs are automatically generated, they receive an increasing number, starting\
111 with 1. This number will always be left-padded by leading zeros, such that the number takes up a\
112 certain width. Using this parameter, the width can be specified to the users need. We allow\
113 numbers in the range [1:18]. This option implies --auto-id.\n\n"
114int
115default="4"
116optional
117hidden
118
119option  "id-start"  -
120"Specify the first number in automatically generated alignment IDs.\n"
121details="When sequence IDs are automatically generated, they receive an increasing number,\
122 usually starting with 1. Using this parameter, the first number can be specified to the users\
123 requirements. Note: negative numbers are not allowed.\nNote: Setting this parameter implies\
124 to ignore any IDs retrieved from the input data, i.e. it activates the --auto-id flag.\n\n"
125long
126default="1"
127optional
128hidden
129
130option  "filename-delim" -
131"Change the delimiting character that is used for sanitized filenames\n\n"
132details="This parameter can be used to change the delimiting character used while\
133 sanitizing filenames, i.e. replacing invalid characters. Note, that the default\
134 delimiter ALWAYS is the first character of the \"ID delimiter\" as supplied through\
135 the --id-delim option. If the delimiter is a whitespace character or empty, invalid\
136 characters will be simply removed rather than substituted.\
137 Currently, we regard the following characters as illegal for use in filenames:\
138 backslash '\', slash '/', question mark '?', percent sign '%', asterisk '*', colon ':',\
139 pipe symbol '|', double quote '\"', triangular brackets '<' and '>'.\n\n"
140string
141typestr="delimiter"
142default="ID-delimiter"
143optional
144hidden
145
146option  "filename-full" -
147"Use full FASTA header to create filenames\n\n"
148details="This parameter can be used to deactivate the default behavior of limiting\
149 output filenames to the first word of the sequence ID. Consider the following example:\
150 An input with FASTA header \">NM_0001 Homo Sapiens some gene\" usually produces output\
151 files with the prefix \"NM_0001\" without the additional data available in the FASTA\
152 header, e.g. \"NM_0001.lfold\". With this flag set, no truncation of the output filenames\
153 is performed, i.e. output filenames receive the full FASTA header data as prefixes. Note,\
154 however, that invalid characters (such as whitespace) will be substituted by a delimiting\
155 character or simply removed, (see also the parameter option --filename-delim).\n\n"
156flag
157off
158hidden
159
160option  "commands"   -
161"Read additional commands from file\n"
162details="Commands include hard and soft constraints, but also structure motifs in hairpin and interior\
163 loops that need to be treeted differently. Furthermore, commands can be set for unstructured and structured\
164 domains.\n\n"
165string
166typestr="<filename>"
167optional
168hidden
169
170
171section "Algorithms"
172sectiondesc="Select additional algorithms which should be included in the calculations.\nThe Minimum free energy\
173 (MFE) and a structure representative are calculated in any case.\n\n"
174
175option  "zscore"  z
176"Limit the output to predictions with a Z-score below a threshold\n"
177details="This option activates z-score regression using a trained SVM. Any predicted structure that\
178 exceeds the specified threshold will be ommited from the output.\nSince the Z-score threshold is\
179 given as a negative number, it must immediately preceed the short option to not be mistaken as\
180 a separate argument, e.g. -z-2.9 sets the threshold to a value of -2.9\n\n"
181double
182default="-2"
183argoptional
184optional
185
186option  "zscore-pre-filter"  -
187"Apply the z-score filtering in the forward recursions\n"
188details="The default mode of z-score filtering considers the entire structure space to\
189 decide whether or not a locally optimal structure at any position i is reported or not.\
190 When using this post-filtering step, however, alternative locally optimal structures
191 starting at i with higher energy but lower z-score can be easily missed. The pre-filter
192 option restricts the structure space already in the forward recursions, such that
193 only optimal solution among those candidates that satisfy the z-score threshold are considered.\
194 Therefore, good results according to the z-score threshold criterion are less likely to\
195 be superseded by results with better energy but worse z-score. Note, that activating\
196 this switch results in higher computation time which scales linear in the window length.\n\n"
197flag
198dependon="zscore"
199off
200
201option  "zscore-report-subsumed"  -
202"Report subsumed structures if their z-score is less than that of the enclosing structure\n"
203details="In default mode, RNALfold only reports locally optimal structures if they\
204 are no constituents of another, larger structure with less free energy. In z-score mode,\
205 however, such a larger structure may have a higher z-score, thus may be less informative\
206 than the smaller substructure. Using this switch activates reporting both, the smaller\
207 and the larger structure if the z-score of the smaller is lower than that of the larger.\n\n"
208flag
209dependon="zscore"
210off
211
212option  "backtrack-global"   b
213"Backtrack a global MFE structure.\n"
214details="Instead of just reporting the locally stable secondary structure\
215 a global MFE structure can be constructed that only consists of locally\
216 optimal substructures. This switch activates a post-processing step that\
217 takes the locally optimal structures to generate the global MFE structure\
218 which constitutes the MFE value reported in the last line. The respective\
219 global MFE structure is printed just after the inut sequence part on the\
220 last line, preceding the global MFE score.\nNote, that this option implies\
221 -o/--outfile since the locally optimal structures must be read after the\
222 regular prediction step! Also note, that using this this option in combination\
223 with -z/--zscore implies --zscore-hard-filter to ensure proper construction\
224 of the global MFE structure!\n\n"
225flag
226off
227
228option  "gquad" g
229"Incoorporate G-Quadruplex formation into the structure prediction algorithm\n\n"
230flag
231off
232
233option  "shape" -
234"Use SHAPE reactivity data to guide structure predictions.\n\n"
235string
236typestr="<filename>"
237optional
238
239option  "shapeMethod" -
240"Include SHAPE reactivity data according to a particular method.\n"
241details="The following methods can be used to convert SHAPE reactivities into pseudo energy contributions.\n\n\
242'D': Convert by using a linear equation according to Deigan et al 2009. \
243The calculated pseudo energies will be applied for every nucleotide involved in a stacked pair. \
244This method is recognized by a capital 'D' in the provided parameter, i.e.: \
245--shapeMethod=\"D\" is the default setting. The slope 'm' and the intercept 'b' can be set to a \
246non-default value if necessary, otherwise m=1.8 and b=-0.6. \
247To alter these parameters, e.g. m=1.9 and b=-0.7, use a \
248parameter string like this: --shapeMethod=\"Dm1.9b-0.7\". You may also provide only one of the two \
249parameters like: --shapeMethod=\"Dm1.9\" or --shapeMethod=\"Db-0.7\".\n\n\
250'Z': Convert SHAPE reactivities to pseudo energies according to Zarringhalam et al 2012. \
251SHAPE reactivities will be converted to pairing probabilities by using linear mapping. \
252Aberration from the observed pairing probabilities will be penalized during the folding recursion. \
253The magnitude of the penalties can affected by adjusting the factor beta \
254(e.g. --shapeMethod=\"Zb0.8\").\n\n\
255'W': Apply a given vector of perturbation energies to unpaired nucleotides according to Washietl et al 2012. \
256Perturbation vectors can be calculated by using RNApvmin.\n\n"
257string
258typestr="D/Z/W"
259dependon="shape"
260default="D"
261optional
262hidden
263
264option  "shapeConversion" -
265"Convert SHAPE reactivity according to a particular model.\n"
266details="This method allows one to specify the method or model used to convert SHAPE reactivities to pairing\
267 (or unpaired) probabilities when using the SHAPE approach of Zarringhalam et al. 2012. The following single\
268 letter types are recognized:\n\n\
269'M': Use linear mapping according to Zarringhalam et al. 2012.\n\n\
270'C': Use a cutoff-approach to divide into paired and unpaired nucleotides (e.g. \"C0.25\")\n\n\
271'S': Skip the normalizing step since the input data already represents probabilities for being unpaired rather than raw reactivity values\n\n\
272'L': Use a linear model to convert the reactivity into a probability for being unpaired (e.g. \"Ls0.68i0.2\" to use a slope of 0.68 and an intercept of 0.2)\n\n\
273'O': Use a linear model to convert the log of the reactivity into a probability for being unpaired (e.g. \"Os1.6i-2.29\" to use a slope of 1.6 and an intercept of -2.29)\n\n"
274string
275typestr="type"
276default="O"
277optional
278hidden
279
280
281section "Model Details"
282sectiondesc="You may tweak the energy model and pairing rules additionally using the following parameters\n\n"
283
284option  "temp"  T
285"Rescale energy parameters to a temperature of temp C. Default is 37C.\n\n"
286double
287optional
288
289option  "noTetra" 4
290"Do not include special tabulated stabilizing energies for tri-, tetra- and hexaloop hairpins.\n\n"
291flag
292off
293hidden
294
295option  "dangles" d
296"Change the dangling end model\n"
297details="This option allows one to change the model \"dangling end\" energy contributions, i.e. those\
298 additional contributions from bases adjacent to helices in free ends and multi-loops\nWith -d1 only\
299 unpaired bases can participate in at most one dangling end. With -d2 this check is ignored, dangling\
300 energies will be added for the bases adjacent to a helix on both sides in any case; this is the default\
301 for mfe and partition function folding (-p).\nThe option -d0 ignores dangling ends altogether (mostly \
302 for debugging).\nWith -d3 mfe folding will allow coaxial stacking of adjacent helices in multi-loops.\
303 At the moment the implementation will not allow coaxial stacking of the two interior pairs in a loop\
304 of degree 3 and works only for mfe folding.\n\nNote that with -d1 and -d3 only the MFE computations\
305 will be using this setting while partition function uses -d2 setting, i.e. dangling ends will be treated\
306 differently.\n\n"
307int
308default="2"
309optional
310
311option  "noLP"  -
312"Produce structures without lonely pairs (helices of length 1).\n"
313details="For partition function folding this only disallows pairs that can only occur isolated. Other\
314 pairs may still occasionally occur as helices of length 1.\n\n"
315flag
316off
317
318option  "noGU"  -
319"Do not allow GU pairs\n\n"
320flag
321off
322hidden
323
324option  "noClosingGU" -
325"Do not allow GU pairs at the end of helices\n\n"
326flag
327off
328hidden
329
330option  "paramFile" P
331"Read energy parameters from paramfile, instead of using the default parameter set.\n"
332details="Different sets of energy parameters for RNA and DNA should accompany your distribution.\nSee the\
333 RNAlib documentation for details on the file format. When passing the placeholder file name \"DNA\",\
334 DNA parameters are loaded without the need to actually specify any input file.\n\n"
335string
336typestr="paramfile"
337optional
338
339
340option  "nsp" -
341"Allow other pairs in addition to the usual AU,GC,and GU pairs.\n"
342details="Its argument is a comma separated list of additionally allowed pairs. If the\
343 first character is a \"-\" then AB will imply that AB and BA are allowed pairs.\ne.g.\
344 RNALfold -nsp -GA  will allow GA and AG pairs. Nonstandard pairs are given 0 stacking\
345 energy.\n\n"
346string
347optional
348hidden
349
350option  "energyModel" e
351"Rarely used option to fold sequences from the artificial ABCD... alphabet, where\
352 A pairs B, C-D etc.  Use the energy parameters for GC (-e 1) or AU (-e 2) pairs.\n\n"
353int
354optional
355hidden
356
357text    "\nIf in doubt our program is right, nature is at fault.\nComments should be sent to\
358 rna@tbi.univie.ac.at.\n\n"
359