0
|
1 <tool id="rbc_kinwalker" name="Kinwalker" version="1.0">
|
|
2 <description>
|
|
3 <![CDATA[
|
|
4 cotranscriptional folding of RNAs
|
|
5 ]]>
|
|
6 </description>
|
|
7 <requirements>
|
|
8 <requirement type="package" version="1.0">kinwalker</requirement>
|
|
9 <requirement type="package" version="8.22">gnu_coreutils</requirement>
|
|
10 <requirement type="package" version="2.1">vienna_rna</requirement>
|
|
11 </requirements>
|
|
12 <command>
|
|
13 <![CDATA[
|
|
14 head -n 1 $input_sequence | head -c -1 -q > seq.ident
|
|
15 &&
|
|
16 sed '1d' $input_sequence > input.seq
|
|
17 &&
|
|
18 kinwalker
|
|
19 $init_structure
|
|
20 $interrupt
|
|
21 ##$printfront
|
|
22
|
|
23 --barrier_heuristic $barrier_heuristic.used
|
|
24
|
|
25 #if $barrier_heuristic.used == "M"
|
|
26 --grouping $barrier_heuristic.grouping
|
|
27 --lookahead $barrier_heuristic.lookahead
|
|
28 #else if $barrier_heuristic.used == "B"
|
|
29 --maxkeep $barrier_heuristic.maxkeep
|
|
30 #end if
|
|
31
|
|
32 --dangle $dangle
|
|
33 --noLonelyPairs $noLonelyPairs
|
|
34 --transcribed $transcribed
|
|
35 --transcription_rate $transcription_rate
|
|
36 --windowsize $windowsize
|
|
37
|
|
38 < input.seq
|
|
39
|
|
40 > blah
|
|
41
|
|
42 &&
|
|
43 sed -n '2s/[\.\(\)]\+\s\+\(.\+\)$/ mfe: \1/p' blah > energy
|
|
44
|
|
45 &&
|
|
46 cat seq.ident energy > $mfe_struct
|
|
47
|
|
48 &&
|
|
49 sed -e '2s/^\([\.\(\)]\+\).*$/\1/' -ne '1,2p' blah >> $mfe_struct
|
|
50
|
|
51 &&
|
|
52 sed -e 's/[ \t]*$//' -ne '/TRAJ/,/Kinwal/ {/TRAJ/n;/Kinwal/!{s/\s/\t/gp}}' blah > $trajectory
|
|
53 ]]>
|
|
54 </command>
|
|
55 <stdio>
|
|
56 <!-- Anything other than zero is an error -->
|
|
57 <exit_code range="1:" />
|
|
58 <exit_code range=":-1" />
|
|
59 <!-- In case the return code has not been set propery check stderr too -->
|
|
60 <regex match="Error:" />
|
|
61 <regex match="Exception:" />
|
|
62 </stdio>
|
|
63 <inputs>
|
|
64 <param name="input_sequence" format="fasta" type="data" label="Input sequence" help="A single sequence in FASTA format"/>
|
|
65 <param name="init_structure" type="boolean" truevalue="--init_structure" falsevalue="" checked="false" label="Start with a structure other than the open chain" help="(--init_structure)"/>
|
|
66 <param name="interrupt" type="boolean" truevalue="--interrupt" falsevalue="" checked="false" label="Allow interrupted folding trajectories when the barrier is exceeded" help="(--interrupt)"/>
|
|
67 <!-- need to implement with dataset collections <param name="printfront" type="boolean" truevalue="!doublehypen!printfront" falsevalue="" checked="true" label="Creates PS plots of front progression" help="(!doublehypen!printfront)"/> -->
|
|
68 <conditional name="barrier_heuristic">
|
|
69 <param name="used" type="select" label="Barrier Heuristic" help="(--barrier_heuristic)">
|
|
70 <option value="M" selected="true">Morgan-Higgs</option>
|
|
71 <option value="S">Limit small stacks</option>
|
|
72 <option value="B">Barriers</option>
|
|
73 <option value="A">All</option>
|
|
74 </param>
|
|
75 <when value="M">
|
|
76 <param name="grouping" type="select" label="How to treat conflict groups" help="(--grouping)">
|
|
77 <option value="standard" selected="true">Standard</option>
|
|
78 <option value="regroup">Re-group</option>
|
|
79 </param>
|
|
80 <param name="lookahead" type="integer" value="1" label="Number of basepairs that MorganHiggs forms its subpaths from" help="(--lookahead)"/>
|
|
81 </when>
|
|
82 <when value="S" />
|
|
83 <when value="B">
|
|
84 <param name="maxkeep" type="integer" value="1" label="Breadth of breadth first search" help="(--maxkeep)"/>
|
|
85 </when>
|
|
86 <when value="A" />
|
|
87 </conditional>
|
|
88 <param name="dangle" type="select" label="Dangle value as in VienneRNA package" help="(--dangle)">
|
|
89 <option value="0" selected="true">0</option>
|
|
90 <option value="1">1</option>
|
|
91 <option value="2">2</option>
|
|
92 </param>
|
|
93 <param name="noLonelyPairs" type="integer" value="2" label="Value of noLonelyPairs as in ViennaRNA" help="(--noLonelyPairs)"/>
|
|
94
|
|
95 <param name="transcribed" type="integer" value="1" label="Number of bases initially transcribed" help="0 means all is transcribed (--transcribed)"/>
|
|
96 <param name="transcription_rate" type="float" value="200" label="Number of bases transcribed per second" help="(--transcription_rate)"/>
|
|
97 <param name="windowsize" type="integer" value="0" label="Max size of substructures considered for folding events during transcription" help="0= all are considered. (--windowsize)"/>
|
|
98 </inputs>
|
|
99 <outputs>
|
|
100 <data format="fasta" name="mfe_struct" label="MFE structure from ${tool.name} on ${on_string}" />
|
|
101 <data format="tabular" name="trajectory" label="Trajectory of ${tool.name} on ${on_string}" />
|
|
102 </outputs>
|
|
103 <tests>
|
|
104 <test>
|
1
|
105 <param name="input_sequence" value="test_sequence_input.fasta" />
|
0
|
106 <param name="init_structure" value="" />
|
|
107 <param name="interrupt" value="" />
|
|
108 <param name="used" value="M" />
|
|
109 <param name="grouping" value="standard" />
|
|
110 <param name="lookahead" value="1" />
|
|
111 <param name="dangle" value="0" />
|
|
112 <param name="noLonelyPairs" value="2" />
|
|
113 <param name="transcribed" value="1" />
|
|
114 <param name="transcription_rate" value="200" />
|
|
115 <param name="windowsize" value="0" />
|
1
|
116 <output name="mfe_struct" file="mfe_struct_result.fasta" />
|
|
117 <output name="trajectory" file="trajectory_result.tabular" />
|
0
|
118 </test>
|
|
119 </tests>
|
|
120 <help>
|
|
121 <![CDATA[
|
|
122 **What Kinwalker does**
|
|
123
|
|
124 Kinwalker splits the folding process into a series of events where each event can either be a folding event or a transcription event.
|
|
125 In each transcription event one base from the RNA sequence is appended to the already transcribed and (partially) folded subsequence.
|
|
126 Kinwalker executes transcription events at regular time intervals. In each folding event a subsequence of the already transcribed
|
|
127 RNA sequence is selected and a new structure is formed by combining base pairs from the current structure with base pairs from the
|
|
128 mfE structure of that subsequence.
|
|
129
|
|
130 This is done in such a way that the new structure includes base pairs from both structures in an energetically favorable manner.
|
|
131 Kinwalker estimates the waiting times for individual folding events depending on the height of the energy barrier between the
|
|
132 current structure and the new structure into which the molecule is folded. Folding events between structures can only occur,
|
|
133 if the energy barrier between them is less than the maximum allowed energy barrier.
|
|
134
|
|
135 As folding paths can only be calculated exhaustively for short sequences (n>100), heuristic approaches have to be employed which explicitly
|
|
136 construct a (re)folding path between the two structures. The saddle height is then estimated as the highest point along the path.
|
|
137 The best known algorithm for approximating saddle heights between RNA conformations is the Morgan-Higgs heuristic,
|
|
138 which tries to find a folding path from an origin secondary structure to a target secondary structure where the maximum height
|
|
139 along the path is minimal. The heuristic models state transitions at base pair resolution.
|
|
140 ]]>
|
|
141 </help>
|
|
142 <citations>
|
|
143 <citation type="doi">10.1016/j.jmb.2008.02.064</citation>
|
|
144 </citations>
|
|
145 </tool>
|