-
Notifications
You must be signed in to change notification settings - Fork 5
/
description.xml
394 lines (380 loc) · 31.5 KB
/
description.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
<?xml version="1.0" encoding="UTF-8"?>
<description xmlns="http://bibiserv.techfak.uni-bielefeld.de/fold-grammars" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://bibiserv.techfak.uni-bielefeld.de/fold-grammars http://bibiserv.techfak.uni-bielefeld.de/xsd/fold-grammars.xsd">
<element id="intoduction" descr="GAP Components">
<html>
<h2>Description of the Bellman's GAP Repository: Fold-Grammars</h2>
<p>Bellman's GAP is a domain specific language and compiler for dynamic programming over sequence data. It's name is derived from "Bellman's Principle of Optimality, Grammars, Algebras, and Products". A Bellman's GAP repository is an archive of re-usable modules. Repositories are provided for code sharing. If you have modules to share, write to Stefan Janssen <a href="mailto:sjanssen@techfak.uni-bielefeld.de">sjanssen@techfak.uni-bielefeld.de</a></p>
<p>A typical program in Bellman's GAP contains four elements:
<ol>
<li>a signature, defining functions available in grammars which must be implemented in algebras,</li>
<li>one or more algebras, evaluating a candidate from the search space and applying the objective function,</li>
<li>one or more grammars, defining a search space of solution candidates</li>
<li>one or more executable program instances, combining a grammar with a product of algebras.</li>
</ol>
</p>
<h3>Naming conventions</h3>
Although GAP-L (Bellman's GAP language) allows arbitrary names, i.e. they must match the regular expression [A-Z_a-z][A-Z_a-z0-9]*, for signatures, algebras and grammars, we restrict ourselves for a better reading to the following naming convention:
<ul>
<li>signature names start with the prefix "sig_"</li>
<li>algebra names start with the prefix "alg_"</li>
<li>grammar names start with the prefix "gra_"</li>
<li>for large elements, sub-fragments are outsourced in files starting with "XXXpart_"</li>
</ul>
We don't have a naming convention for instances, since they appear in a program just once. Names and file extensions for source code files can be chosen freely, but we prefer to use ".gap" for the file extension. Furthermore, if we split components of our program, we use the prefixes for the filenames as well.
<h3>Repository content of Fold-Grammars</h3> This repository is a collection of components (algebras, grammars, ...) for dynamic programming problems covering RNA secondary structure predictions. It covers the fields of:
<ul>
<li>single structure prediction (similar to <a href="http://rna.tbi.univie.ac.at/cgi-bin/RNAfold.cgi">RNAfold</a>),</li>
<li>prediction of structures for alignments (similar to <a href="http://rna.tbi.univie.ac.at/cgi-bin/RNAalifold.cgi">RNAalifold</a>) [filenames with "ali_"], </li>
<li>sequence structure evaluation (similar to <a href="http://www.tbi.univie.ac.at/~ronny/RNA/RNAeval.html">RNAeval</a>) [filenames with "eval_"] ,</li>
<li>abstract shape analysis (similar the <a href="http://bibiserv.cebitec.uni-bielefeld.de/rnashapes/">RNAshapes</a>) and HIshapes, and</li>
<li>pseudoknot prediction (similar to <a href="http://bibiserv.cebitec.uni-bielefeld.de/pknotsrg/">pknotsRG</a> and <a href="http://bibiserv.cebitec.uni-bielefeld.de/pkiss/">pKiss</a>) [filenames with "pknot_"].</li>
<li>outside computations, e.g. McCaskill base-pair probabilities, which also allow for Maximum Expected Accuracy (MEA) computations [filenames with "outside_"]</li>
</ul> To capture different handling of dangling bases implemented in various programs, we provide the four different grammars (for details see <a href="http://www.biomedcentral.com/1471-2105/12/429/">Lost in folding space? Comparing four variants of the thermodynamic model for RNA secondary structure prediction</a>). Compared to the supplementary file of that paper, we refined the grammars a little for more comfortable support of lonely base-pairs. This does not change their folding space. We also introduced filters for maximal loop length for bulges to be closer to the <a href="http://www.tbi.univie.ac.at/~ivo/RNA/">Vienna RNA package</a>, the only difference is, that the size of both unpaired regions of internal loops may not exceed 30 bases in Vienna RNA; we allow up to 30 bases on each side.)
<ul class="grammars">
<li>"nodangle" (no energy contributions of dangling bases at all),</li>
<li>"overdangle" (available or not, bases next to a stem always dangle from both sides to this stem),</li>
<li>"microstate" (by increasing the search space a lot, best of all four possibilities for dangling onto a stem is selected. OK for MFE computations, but wrong for probabilistic analyses) and</li>
<li>"macrostate" (unambiguous handling of dangling bases, i.e. no search space inflation and dangling only available bases onto a stem. Violating Bellman's principle of optimality for MFE computations, but correct for probabilistic analyses by using a four component vector, instead of a single partition function value. This component trick is the reason for some special algebra versions for macrostate.)</li>
</ul>
<h3>Repository structure</h3>
We massively use GAP-L's functionality of including source code fragments to maintain a clear structure of available components. Another advantage is the re-usability of components if they share the same signature.
</html>
<structure>
<dir descr="1. Signatures">
<file id="sig_foldrna.gap" ref="Signatures/sig_foldrna.gap"/>
<file id="sig_outside_foldrna.gap" ref="Signatures/sig_outside_foldrna.gap"/>
<file id="sig_pknot_foldrna.gap" ref="Signatures/sig_pknot_foldrna.gap"/>
<file id="sig_tdm.gap" ref="Signatures/sig_tdm.gap" />
<dir descr="Parts">
<file id="sigpart_basic.gap" ref="Signatures/Parts/sigpart_basic.gap"/>
</dir>
</dir>
<dir descr="2. Grammars" >
<file id="gra_nodangle.gap" ref="Grammars/gra_nodangle.gap"/>
<file id="gra_overdangle.gap" ref="Grammars/gra_overdangle.gap"/>
<file id="gra_microstate.gap" ref="Grammars/gra_microstate.gap"/>
<file id="gra_macrostate.gap" ref="Grammars/gra_macrostate.gap"/>
<file id="gra_macrostate_center.gap" ref="Grammars/gra_macrostate_centers.gap"/>
<file id="gra_pknot_microstate.gap" ref="Grammars/gra_pknot_microstate.gap"/>
<file id="gra_knotInFrame.gap" ref="Grammars/gra_knotInFrame.gap"/>
<file id="gra_tdm.gap" ref="Grammars/gra_tdm.gap"/>
<file id="gra_outside_nodangle.gap" ref="Grammars/gra_outside_nodangle.gap"/>
<file id="gra_outside_overdangle.gap" ref="Grammars/gra_outside_overdangle.gap"/>
<file id="gra_outside_microstate.gap" ref="Grammars/gra_outside_microstate.gap"/>
<dir descr="Parts">
<file id="grapart_basic.gap" ref="Grammars/Parts/grapart_basic.gap"/>
<file id="grapart_outside_basic.gap" ref="Grammars/Parts/grapart_outside_basic.gap"/>
<file id="grapart_pkinnards.gap" ref="Grammars/Parts/grapart_pkinnards.gap"/>
<file id="grapart_pknotsrg.gap" ref="Grammars/Parts/grapart_pknotsrg.gap"/>
<file id="grapart_pkissA.gap" ref="Grammars/Parts/grapart_pkissA.gap"/>
<file id="grapart_pkissB.gap" ref="Grammars/Parts/grapart_pkissB.gap"/>
<file id="grapart_pkissBC.gap" ref="Grammars/Parts/grapart_pkissBC.gap"/>
<file id="grapart_pkissC.gap" ref="Grammars/Parts/grapart_pkissC.gap"/>
<file id="grapart_pkissD.gap" ref="Grammars/Parts/grapart_pkissD.gap"/>
<file id="grapart_knotinframe.gap" ref="Grammars/Parts/grapart_knotinframe.gap"/>
</dir>
</dir>
<element id="Algebras" descr="3. Algebras">
<html>
Spanning a search space with a grammar is useless unless we evaluate (and select) the candidates with an algebra. The following algebras are available and solve many of the known and elsewhere implemented RNA related problems. Due to the power and re-usability of algebra products simple combination of existing algebras might easily solve new emerging problems. We describe in the following the toolbox of our algebras.
</html>
<structure>
<dir descr="DotBracket">
<file id="alg_dotBracket.gap" ref="Algebras/DotBracket/alg_dotBracket.gap"/>
<file id="alg_outside_dotBracket.gap" ref="Algebras/DotBracket/alg_outside_dotBracket.gap"/>
<file id="alg_pknot_dotBracket.gap" ref="Algebras/DotBracket/alg_pknot_dotBracket.gap"/>
<file id="alg_ali_dotBracket.gap" ref="Algebras/DotBracket/alg_ali_dotBracket.gap"/>
<file id="alg_ali_outside_dotBracket.gap" ref="Algebras/DotBracket/alg_ali_outside_dotBracket.gap"/>
<dir descr="Parts">
<file id="algpart_dotBracket_basic.gap" ref="Algebras/DotBracket/Parts/algpart_dotBracket_basic.gap"/>
<file id="algpart_outside_dotBracket.gap" ref="Algebras/DotBracket/Parts/algpart_outside_dotBracket.gap"/>
<file id="algpart_dotBracket_macrostate.gap" ref="Algebras/DotBracket/Parts/algpart_dotBracket_macrostate.gap"/>
</dir>
</dir>
<dir descr="MEA">
<file id="alg_mea.gap" ref="Algebras/MEA/alg_mea.gap"/>
<file id="alg_ali_mea.gap" ref="Algebras/MEA/alg_ali_mea.gap"/>
<dir descr="Parts">
<file id="algpart_mea_common.gap" ref="Algebras/MEA/Parts/algpart_mea_common.gap"/>
</dir>
</dir>
<dir descr="MFE">
<file id="alg_mfe.gap" ref="Algebras/MFE/alg_mfe.gap"/>
<file id="alg_mfe_macrostate.gap" ref="Algebras/MFE/alg_mfe_macrostate.gap"/>
<file id="alg_outside_mfe.gap" ref="Algebras/MFE/alg_outside_mfe.gap"/>
<file id="alg_pknot_mfe.gap" ref="Algebras/MFE/alg_pknot_mfe.gap"/>
<file id="alg_ali_mfe.gap" ref="Algebras/MFE/alg_ali_mfe.gap"/>
<file id="alg_ali_outside_mfe.gap" ref="Algebras/MFE/alg_ali_outside_mfe.gap"/>
<file id="alg_ali_mfe_macrostate.gap" ref="Algebras/MFE/alg_ali_mfe_macrostate.gap"/>
<dir descr="Parts">
<file id="algpart_mfe_basic.gap" ref="Algebras/MFE/Parts/algpart_mfe_basic.gap"/>
<file id="algpart_ali_mfe_basic.gap" ref="Algebras/MFE/Parts/algpart_ali_mfe_basic.gap"/>
</dir>
</dir>
<dir descr="Pfunc">
<file id="alg_pfunc.gap" ref="Algebras/Pfunc/alg_pfunc.gap"/>
<file id="alg_pfunc_macrostate.gap" ref="Algebras/Pfunc/alg_pfunc_macrostate.gap"/>
<file id="alg_outside_pfunc.gap" ref="Algebras/Pfunc/alg_outside_pfunc.gap"/>
<file id="alg_pknot_pfunc.gap" ref="Algebras/Pfunc/alg_pknot_pfunc.gap"/>
<file id="alg_ali_pfunc.gap" ref="Algebras/Pfunc/alg_ali_pfunc.gap"/>
<file id="alg_ali_pfunc_macrostate.gap" ref="Algebras/Pfunc/alg_ali_pfunc_macrostate.gap"/>
<file id="alg_ali_outside_pfunc.gap" ref="Algebras/Pfunc/alg_ali_outside_pfunc.gap"/>
<dir descr="Parts">
<file id="algpart_pfunc_basic.gap" ref="Algebras/Pfunc/Parts/algpart_pfunc_basic.gap"/>
<file id="algpart_ali_pfunc_basic.gap" ref="Algebras/Pfunc/Parts/algpart_ali_pfunc_basic.gap"/>
</dir>
</dir>
<dir descr="Shapes">
<file id="alg_shapes.gap" ref="Algebras/Shapes/alg_shapes.gap"/>
<file id="alg_hishapes.gap" ref="Algebras/Shapes/alg_hishapes.gap"/>
<file id="alg_ali_shapes.gap" ref="Algebras/Shapes/alg_ali_shapes.gap"/>
<file id="alg_ali_hishapes.gap" ref="Algebras/Shapes/alg_ali_hishapes.gap"/>
<file id="alg_shapes_rope.gap" ref="Algebras/Shapes/alg_shapes_rope.gap"/>
<file id="alg_pknot_shapes.gap" ref="Algebras/Shapes/alg_pknot_shapes.gap"/>
<dir descr="Parts">
<file id="algpart_shape1_basic.gap" ref="Algebras/Shapes/Parts/algpart_shape1_basic.gap"/>
<file id="algpart_shape1_macrostate.gap" ref="Algebras/Shapes/Parts/algpart_shape1_macrostate.gap"/>
<file id="algpart_shape2_basic.gap" ref="Algebras/Shapes/Parts/algpart_shape2_basic.gap"/>
<file id="algpart_shape3_basic.gap" ref="Algebras/Shapes/Parts/algpart_shape3_basic.gap"/>
<file id="algpart_shape4_basic.gap" ref="Algebras/Shapes/Parts/algpart_shape4_basic.gap"/>
<file id="algpart_shape5_basic.gap" ref="Algebras/Shapes/Parts/algpart_shape5_basic.gap"/>
<file id="algpart_shape5_macrostate.gap" ref="Algebras/Shapes/Parts/algpart_shape5_macrostate.gap"/>
<file id="algpart_shapeX_basic.gap" ref="Algebras/Shapes/Parts/algpart_shapeX_basic.gap"/>
<file id="algpart_shapeX_macrostate.gap" ref="Algebras/Shapes/Parts/algpart_shapeX_macrostate.gap"/>
</dir>
</dir>
<file id="alg_basepairMax.gap" ref="Algebras/alg_basepairMax.gap"/>
<file id="alg_count_id.gap" ref="Algebras/alg_count_id.gap"/>
<file id="alg_ali_consensus.gap" ref="Algebras/alg_ali_consensus.gap"/>
<file id="alg_ali_mis.gap" ref="Algebras/alg_ali_mis.gap"/>
<file id="alg_tdm.gap" ref="Algebras/alg_tdm.gap"/>
<file id="alg_pknot_pktype.gap" ref="Algebras/alg_pknot_pktype.gap"/>
</structure>
</element>
</structure>
<element id="programs" descr="4. Programs">
<html>
At the root directory are all the "main" GAP-L files for the actual application of an algebra(product) to a grammar and an input. They mainly contain the declaration of instances, inclusion of code fragments like signatures, grammars and algebras and import statements for external functionality, found in *.hh files. Some exceptions are:
<ul>
<li>"ali_outside_overdangle.gap", "ali_overdangle.gap", "eval_ali_overdangle.gap", "eval_overdangle.gap", "outside_overdangle.gap" and "overdangle.gap": they overwrite the mfe and partition function algebra-functions <code>drem</code> and <code>ml</code> to realize the overdangling instead of nodangling.</li>
<li>"MacrostateCenter.gap": previously we mentioned the need for computing the probability of hairpins. To do so, the signature must be extended by one algebra-function. <!-- TODO which is unfortunately impossible by heritage within GAP-L.--> Thus, we need special signature, algebras and grammars. The later is externalized in the file <a href="?id=gra_macrostate_centers.gap">Grammars/gra_macrostate_centers.gap</a>.</li>
<li>"structure2shape.gap": often it is necessary to convert a Vienna-Dot-Bracket string into a shape string. This can be done with this file, but it is very inefficient to do within ADP - compared to other parser techniques.</li>
</ul>
</html>
</element>
</element>
<element id="externalfunctionality" ref="Algebras/" descr="Extending GAP">
<html>
We need a lot of functionality, which is not part of Bellman's GAP. These functions come via the *.hh files, and must be imported to the GAP-L main files. Unfortunately, imports are only possible at the beginning of a program, thus we cannot import a *.hh file from within an specific algebra file, even if its functions are only used in this algebra. The extension files are located in the sub-directory "Extensions" and have to be imported in you own GAP-L program e.g. like <code>import "Extensions/singlefold.hh"</code>.
</html>
<structure>
<file id="rules.hh" ref="Extensions/rules.hh" />
<file id="singlefold.hh" ref="Extensions/singlefold.hh" />
<file id="alifold.hh" ref="Extensions/alifold.hh" />
<file id="rnaoptions.hh" ref="Extensions/rnaoptions.hh" />
<file id="rnaoptions_defaults.hh" ref="Extensions/rnaoptions_defaults.hh" />
<file id="typesRNAfolding.hh" ref="Extensions/typesRNAfolding.hh" />
<file id="mfesubopt.hh" ref="Extensions/mfesubopt.hh" />
<file id="probabilities.hh" ref="Extensions/probabilities.hh" />
<file id="pknot_stems.hh" ref="Extensions/pknot_stems.hh" />
<file id="pknot_enforce.hh" ref="Extensions/pknot_enforce.hh" />
<file id="pknot_shape.hh" ref="Extensions/pknot_shape.hh" />
<file id="pknot_extras.hh" ref="Extensions/pknot_extras.hh" />
<file id="alignment.hh" ref="Extensions/alignment.hh" />
<file id="bpfilter.hh" ref="Extensions/bpfilter.hh" />
<file id="evalfold.hh" ref="Extensions/evalfold.hh" />
<file id="shapes.hh" ref="Extensions/shapes.hh" />
<file id="outside.hh" ref="Extensions/outside.hh" />
<file id="mea.hh" ref="Extensions/mea.hh" />
</structure>
</element>
<element id="misc" descr="Misc">
<html>
Besides pure GAP-L code (section "GAP Components") and extensions of GAP for specialized purposes (section "Extending GAP"), we also include related work in this repository, like a test suite, published applications and a first attempt to bundle all this code into an deliverable package for the end user.
</html>
<structure>
<element id="Applications" descr="Applications">
<html>
Whilst the algorithms are written in GAP-L, programs we develop often have to provide some more functionality then just printing a result. Interaction with the user, combining different GAP-L runs / programs, formatting the output, run tests, prepare grid engine array-jobs is all done via simple Perl scripts. The "Applications" directory contains those program specific Perl scripts, plus a module "lib/foldGrammars/Utils.pm" for common routines and a second module "lib/foldGrammars/Settings.pm" where you can make some settings at a centralized point. Please have a look at this file before you execute one of the Perl scripts!
</html>
<element id="pKiss" descr="pKiss">
<html>
<p>Checkout the interactive web-site <a href="bibiserv.cebitec.uni-bielefeld.de/pkiss">bibiserv.cebitec.uni-bielefeld.de/pkiss</a></p>
<p><i><b>pKiss</b></i> is a tool for folding RNA secondary structures, including two limited classes of pseudoknots.</p>
<p>As <i><b>pKiss</b></i> is the successor of <i>pknotsRG</i>, the first pseudoknot class is the <i>canonical simple recursive pseudoknot</i> from <i>pknotsRG</i>. The new class are <i>canonical simple recursive kissing hairpins</i>.</p>
<p>To retain the fast runtime while adding the more complicated kissing hairpin class, we heuristically construct a kissing hairpin from an overlay of two canonical simple recursive pseudoknots. By applying this trick, we loose a bit thoroughness. Due to our evaluations, performance is still very good. <br/> Should you feel uncomfortable with this situation, <i><b>pKiss</b></i> offers three more strategies to compute kissing hairpins. These strategies are either slower or consume more memory. <br/> We strongly suggest using Strategy A.</p>
</html>
</element>
<element id="RNAshapes" descr="RNAshapes">
<html>
<p>Checkout the interactive web-site <a href="bibiserv.cebitec.uni-bielefeld.de/rnashapes">bibiserv.cebitec.uni-bielefeld.de/rnashapes</a></p>
<p>abstraction maps structures to a tree-like domain of shapes, retaining adjacency and nesting of structural features, but disregarding helix lengths. Shape abstraction integrates well with dynamic programming algorithms, and hence it can be applied during structure prediction rather than afterwards. This avoids exponential explosion and can still give us a non-heuristic and complete account of properties of the molecule's folding space.</p>
</html>
</element>
<element id="RNAalishapes" descr="RNAalishapes">
<html>
<p>Checkout the interactive web-site <a href="bibiserv.cebitec.uni-bielefeld.de/rnaalishapes">bibiserv.cebitec.uni-bielefeld.de/rnaalishapes</a></p>
<p>RNAalishapes combines various secondary structure analysis methods, such as suboptimal folding and shape abstraction, with a comparative approach known as RNA alignment folding. RNAalishapes makes use of an extended thermodynamic model and covariance scoring, which allows to reward covariance of paired bases. Besides providing in-depth analysis methods for aligned RNAs, the tool also shows a fairly well prediction accuracy. Therefore, RNAalishapes provides the community with a powerful tool for structural analysis of classes of RNAs and is also a reasonable method for consensus structure prediction based on sequence alignments.</p>
</html>
</element>
<element id="Rapidshapes" descr="RapidShapes">
<html>
<p>Checkout the interactive web-site <a href="bibiserv.cebitec.uni-bielefeld.de/rapidshapes">bibiserv.cebitec.uni-bielefeld.de/rapidshapes</a></p>
<p>Computation of shape probabilities requires exponential runtime. RapidShapes aims at a heuristic improvement of runtime, while still computing exact probability values. It computes the shapes above a specified probability threshold T by generating a list of promising shapes and constructing specialized folding programs for each shape to compute its probability.</p>
</html>
</element>
<element id="KnotInFrame" descr="KnotInFrame">
<html>
<p>Checkout the interactive web-site <a href="bibiserv.cebitec.uni-bielefeld.de/knotinframe">bibiserv.cebitec.uni-bielefeld.de/knotinframe</a></p>
<p>KnotInFrame predicts -1 frameshift sites with simple pseudoknots. More complex knotted structures like triple crossing helices or kissing hairpins are excluded from calculation.</p>
<p>The prediction is based on a comparison between the minimal free energy (mfe) structure, calculated by an RNAfold like program and the mfe-structure, computed by a modified version of pknotsRG-mfe, called pknotsRG-frameshift developed by Jens Reeder and Robert Giegerich.</p>
</html>
</element>
<element id="acms" descr="acms">
<html>
<!--<p>Checkout the interactive web-site <a href="bibiserv.cebitec.uni-bielefeld.de/rapidshapes">bibiserv.cebitec.uni-bielefeld.de/rapidshapes</a></p>-->
<p>Ambivalent covariance models (aCMs) are a prototypic implementation of covariance models that allow for several conensus structures.</p>
</html>
</element>
<element id="addRNAoptions.pl" descr="addRNAoptions.pl">
<html>
<p>A small helper script that replaces the few built-in command line arguments for a compiled BGAP program with some more RNA specific ones. Use this between the steps of generating the C++ code with <code>gapc</code> and the <code>make</code> call.</p>
<p>With no special options set, <code>gapc</code> creates a "out.mf" file. Execute "perl addRNAoptions.pl out.mf" to automatically modify "out.mf", such that the extended command line arguments are available.</p>
</html>
</element>
<element id="lib" descr="lib">
<html>
<p>The sub-directory <code>lib</code> contains a set of Perl functions, needed by the Perl-wrapper for the above described applications, the test-suits and the analyses.</p>
</html>
</element>
</element>
<element id="Packages" descr="Packages">
<html>
We want to ship our applications in a way most comfortable for the end-user as possible. You can download this package and compile all applications manually, but if you are only interested in using e.g. pKiss, than we provide a web application (BiBiServ) and an Debian package. A MacPorts package should follow soon. The directory "Packages" contains the necessary files to create and maintain these packages.
</html>
</element>
<element id="Tests" descr="Test-Suite">
<html>
<p>To test the components of this directory, the test-suite currently contains two kinds of tests. The first one is "stolen" from Georg Sauthoffs sources of Bellman's GAP ("GeorgStyle"), the second is based on Perl ("StefanStyle").</p>
<ol>
<li>"GeorgStyle" is to run some regression tests for the software in this repository. The "truth" is delivered in form of files in the subdirectory "Truth/", which are outputs of controlled previous runs, which hopefully were correct. The file "config" lists all available tests. To run them, go into the Tests directory and type <code>ksh run.sh ../Truth</code>. You also find some Perl scripts, which I used to check consistency to the <a href="http://www.tbi.univie.ac.at/~ivo/RNA/">Vienna-Package</a>. All RNA components are compiled with the extended options of <a href="?id=rnaoptions.hh">Extensions/rnaoptions.hh</a>, such that you can modify the different parameters.</li>
<li>"StefanStyle" tests the developed applications by calling them through a Perl script and compares the results with files defined as truth, stored in a corresponding sub-directory. The test script is called "test_pseudoknots.pl" for historical reasons, but it also contains test runs for RNAalishapes.</li>
</ol>
</html>
</element>
<element id="Analyses" descr="Analyses">
<html>
<p>
The sub-directory "Analyses" contains a lot of Perl scripts to run all the analyses of the provided RNA secondary structure tools described in the PhD thesis of Stefan Janssen.
Here, you will also find the used Testinputs.
</p>
</html>
</element>
<element id="Hacks" descr="Hacks">
<html>
<p>
We want to collect all quick and dirty hacks of Bellman's GAP programs for the fold-grammars repository in the sub-directory "Hacks".
Currently, it contains a special version to compute RNA shape probabilities for a sliding window mode version, which additionally outputs results for each possible sub-word.
This is needed by Andreas Bremges for a SNP analysis.
</p>
</html>
</element>
</structure>
</element>
<element id="prerequisites" descr="Prerequisites">
<html>
Prerequisites for compiling an Instance are:
<ul>
<li>the Bellmans GAP compiler: <a href="http://bibiserv.cebitec.uni-bielefeld.de/bellmansgap">http://bibiserv.cebitec.uni-bielefeld.de/bellmansgap</a></li>
<li>Since Bellmans GAP compiler produces C++ target code, you need an C++ compiler.</li>
<li>We recommend <code>g++</code> and <code>make</code></li>
<li>some editor to optionally modify the program.</li>
</ul>
<h3>How to compile an instance</h3>
Let us assume you want to build a program, which computes the best <a href="?id=alg_mfe.gap">minimal free energy</a> secondary structure, i.e. its energy value in kcal/mol plus its <a href="?id=alg_dotBracket.gap">Vienna Dot Bracket</a> representation for the <a href="?id=gra_nodangle.gap">NoDangle grammar</a>:
<ol>
<li>enter any console and <code>cd</code> to the repository</li>
<li>generate C++ target code with Bellmans GAP compiler for the predefined instance <code>mfepp</code> by typing: <code>gapc -i mfepp -t nodangle.gap</code></li>
<li>compile the generated target code via <code>make -f out.mf</code></li>
<li>use the new binary <code>./out ACUGACUAGCUAGUCGUUAC</code></li>
</ol>
See <a href="http://bibiserv.cebitec.uni-bielefeld.de/bellmansgap">GAPC FAQ</a> for more information about Bellmans GAP compiler.
</html>
</element>
<element id="download" descr="Download">
<html>
You can download here the complete repository as one zip-file:<br/>
<center><h2><a href="fold-grammars.zip">fold-grammars.zip</a></h2></center>
</html>
</element>
<element id="references" descr="References">
<html>
<ul class="references">
<li>
<span class="authors">Jiabin Huang, Rolf Backofen, Björn Voß</span><br/>
<span class="title"><a href="http://rnajournal.cshlp.org/content/early/2012/10/24/rna.033548.112.short">Abstract folding space analysis based on helices</a></span><br/>
in <span class="journal">RNA, 2012</span>
</li>
<li>
<span class="authors">Stefan Janssen, Christian Schudoma, Gerhard Steger, Robert Giegerich</span><br/>
<span class="title"><a href="http://www.biomedcentral.com/1471-2105/12/429/">Lost in folding space? Comparing four variants of the thermodynamic model for RNA secondary structure prediction</a></span><br/>
in <span class="journal">BMC Bioinformatics, 12(1), Pages 429 ff., 2011</span>
</li>
<li>
<span class="authors">Corinna Theis, Stefan Janssen, Robert Giegerich</span><br/>
<span class="title"><a href="http://bibiserv.techfak.uni-bielefeld.de/pkiss/pkiss_paper.pdf">Prediction of RNA secondary structure including kissing hairpin motifs.</a></span><br/>
in <span class="journal">Proceedings of the 10th Workshop on Algorithms in Bioinformatics (WABI 2010), LNBI 6293, Pages:52-64, 2010</span>
</li>
<li>
<span class="authors">Stefan Janssen, Robert Giegerich,</span><br/>
<span class="title"><a href="http://bioinformatics.oxfordjournals.org/content/26/5/632.short">Faster computation of exact RNA shape probabilities</a></span><br/>
in <span class="journal">Bioinformatics, 26(5) , Pages:632-639, 2010</span>
</li>
<li>
<span class="authors">Janina Reeder, Jens Reeder, Robert Giegerich,</span><br/>
<span class="title"><a href="http://bioinformatics.oxfordjournals.org/cgi/content/abstract/23/13/i392">Locomotif: From Graphical Motif Description to RNA Motif Search</a></span><br/>
in <span class="journal">Bioinformatics, 23(13) , Pages:i392-400, 2007</span>
</li>
<li>
<span class="authors">Björn Voß, Robert Giegerich, Marc Rehmsmeier,</span><br/>
<span class="title"><a href="http://www.biomedcentral.com/1741-7007/4/5/">Complete probabilistic analysis of RNA shapes</a></span><br/>
in <span class="journal">BMC Biol, 4(1) , Pages:5, 2006</span>
</li>
<li>
<span class="authors">Robert Giegerich, Björn Voß, Marc Rehmsmeier</span><br/>
<span class="title"><a href="http://nar.oupjournals.org/cgi/content/abstract/32/16/4843">Abstract Shapes of RNA</a></span><br/>
in <span class="journal">Nucl. Acids Res. 32(16): 4843-4851, 2004</span>
</li>
<li class="references">
<span class="authors">Stefan Wuchty, Walter Fontana, Ivo L. Hofacker, Peter Schuster</span><br/>
<span class="title"><a href="http://onlinelibrary.wiley.com/doi/10.1002/%28SICI%291097-0282%28199902%2949:2%3C145::AID-BIP4%3E3.0.CO;2-G/abstract">Complete suboptimal folding of RNA and the stability of secondary structures</a></span><br/>
in <span class="journal">Biopolymers, Volume 49, Issue 2, pages 145-165, February 1999</span>
</li>
<li class="references">
<span class="authors">Corinna Theis, Jens Reeder, Robert Giegerich</span><br/>
<span class="title"><a href="http://dx.doi.org/10.1093/nar/gkn578">KnotInFrame: Prediction of -1 Ribosomal Frameshift Events</a></span><br/>
in <span class="journal">Nucleic Acids Research, Oct;36(18):6013-20, 2008</span>
</li>
</ul>
</html>
</element>
<element id="contributors" descr="Contributors">
<html>
Many thanks to the following people, who contributed to this repository:
<ul>
<li><b>Jiabin Huang</b> (<a href="mailto:jiabin.huang@biologie.uni-freiburg.de">jiabin.huang@biologie.uni-freiburg.de</a>) developed the program <a href="http://www.cyanolab.de/software/RNAHeliCes.htm">RNAHeliCes</a>, based on this repository and kindly provided <a href="?id=alg_hishapes.gap">Algebras/Shapes/alg_hishapes.gap</a> and <a href="?id=alg_ali_hishapes.gap">Algebras/Shapes/alg_ali_hishapes</a>, capturing his core idea. He also inspired <a href="?id=gra_macrostate_center.gap">Grammars/gra_macrostate_center.gap</a></li>
</ul>
</html>
</element>
</description>
<!--
ToDos:
- navigation verhaelt sich komisch, wenn man Sachen einklappen möchte
+ bei internem Link wird falsches file gehighlighted
+ ist das anzuzeigende "Teil" ein "element" und kein "file" dann wird die ID als Ueberschrift verwendet, besser waere es hier die descr zu verwenden.
+ Texte fuer "Grammars" Ebene?: Sollte durch geschickte schalchteln klappen.
+ ueber Source code Anzeige: link zum download des files
+ anderes highlighting für *.hh?
+ text fuer Program als 4. Punkt von GAP Components?
+ highlighting für alifold.hh kommt mit Kommentar nicht klar. Jetzt wird der Kommentar in alg_mfe_macrostate.gap nicht korrekt markiert. Hab es wieder zurueckgestellt. Da alifold.hh nun C++ highlighting ist klappt gerade beides :-)
-->