diff kinwalker.xml @ 0:cb66f1d643e4 draft

Uploaded
author rnateam
date Thu, 26 Feb 2015 12:40:03 -0500
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/kinwalker.xml	Thu Feb 26 12:40:03 2015 -0500
@@ -0,0 +1,145 @@
+<tool id="rbc_kinwalker" name="Kinwalker" version="1.0">
+    <description>
+<![CDATA[
+cotranscriptional folding of RNAs
+]]>
+    </description>
+    <requirements>
+        <requirement type="package" version="1.0">kinwalker</requirement>
+        <requirement type="package" version="8.22">gnu_coreutils</requirement>
+        <requirement type="package" version="2.1">vienna_rna</requirement>
+    </requirements>
+    <command>
+<![CDATA[
+    head -n 1 $input_sequence | head -c -1 -q  > seq.ident
+    &&
+    sed '1d' $input_sequence > input.seq
+    &&
+    kinwalker
+        $init_structure
+        $interrupt
+        ##$printfront
+        
+        --barrier_heuristic $barrier_heuristic.used
+        
+        #if $barrier_heuristic.used == "M"
+            --grouping $barrier_heuristic.grouping
+            --lookahead $barrier_heuristic.lookahead
+        #else if $barrier_heuristic.used == "B"
+            --maxkeep $barrier_heuristic.maxkeep
+        #end if
+        
+        --dangle $dangle
+        --noLonelyPairs $noLonelyPairs
+        --transcribed $transcribed
+        --transcription_rate $transcription_rate
+        --windowsize $windowsize
+        
+        < input.seq
+        
+        > blah
+         
+        &&
+        sed -n '2s/[\.\(\)]\+\s\+\(.\+\)$/ mfe: \1/p' blah > energy
+        
+        &&
+        cat seq.ident energy > $mfe_struct
+        
+        &&
+        sed -e '2s/^\([\.\(\)]\+\).*$/\1/' -ne '1,2p' blah >> $mfe_struct
+        
+        &&
+        sed -e 's/[ \t]*$//' -ne '/TRAJ/,/Kinwal/ {/TRAJ/n;/Kinwal/!{s/\s/\t/gp}}' blah > $trajectory
+]]>
+    </command>
+    <stdio>
+        <!-- Anything other than zero is an error -->
+        <exit_code range="1:" />
+        <exit_code range=":-1" />
+        <!-- In case the return code has not been set propery check stderr too -->
+        <regex match="Error:" />
+        <regex match="Exception:" />
+    </stdio>
+    <inputs>
+        <param name="input_sequence" format="fasta" type="data" label="Input sequence" help="A single sequence in FASTA format"/>
+        <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)"/>
+        <param name="interrupt" type="boolean" truevalue="--interrupt" falsevalue="" checked="false" label="Allow interrupted folding trajectories when the barrier is exceeded" help="(--interrupt)"/>
+        <!-- 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)"/> -->
+        <conditional name="barrier_heuristic">
+            <param name="used" type="select" label="Barrier Heuristic" help="(--barrier_heuristic)">
+                <option value="M" selected="true">Morgan-Higgs</option>
+                <option value="S">Limit small stacks</option>
+                <option value="B">Barriers</option>
+                <option value="A">All</option>
+            </param>
+            <when value="M">
+                <param name="grouping" type="select" label="How to treat conflict groups" help="(--grouping)">
+                    <option value="standard" selected="true">Standard</option>
+                    <option value="regroup">Re-group</option>
+                </param>
+                <param name="lookahead" type="integer" value="1" label="Number of basepairs that MorganHiggs forms its subpaths from" help="(--lookahead)"/>
+            </when>
+            <when value="S" />
+            <when value="B">
+                <param name="maxkeep" type="integer" value="1" label="Breadth of breadth first search" help="(--maxkeep)"/>
+            </when>
+            <when value="A" />
+        </conditional>
+        <param name="dangle" type="select" label="Dangle value as in VienneRNA package" help="(--dangle)">
+            <option value="0" selected="true">0</option>
+            <option value="1">1</option>
+            <option value="2">2</option>
+        </param>
+        <param name="noLonelyPairs" type="integer" value="2" label="Value of noLonelyPairs as in ViennaRNA" help="(--noLonelyPairs)"/>
+        
+        <param name="transcribed" type="integer" value="1" label="Number of bases initially transcribed" help="0 means all is transcribed (--transcribed)"/>
+        <param name="transcription_rate" type="float" value="200" label="Number of bases transcribed per second" help="(--transcription_rate)"/>
+        <param name="windowsize" type="integer" value="0" label="Max size of substructures considered for folding events during transcription" help="0= all are considered. (--windowsize)"/>
+    </inputs>
+    <outputs>
+        <data format="fasta" name="mfe_struct" label="MFE structure from ${tool.name} on ${on_string}" />
+        <data format="tabular" name="trajectory" label="Trajectory of ${tool.name} on ${on_string}" />
+    </outputs>
+    <tests>
+        <test>
+            <param name="input_sequence" value="test_sequence_input.fasta" />
+            <param name="init_structure" value="" />
+            <param name="interrupt" value="" />
+            <param name="used" value="M" />
+            <param name="grouping" value="standard" />
+            <param name="lookahead" value="1" />
+            <param name="dangle" value="0" />
+            <param name="noLonelyPairs" value="2" />
+            <param name="transcribed" value="1" />
+            <param name="transcription_rate" value="200" />
+            <param name="windowsize" value="0" />
+            <output name="mfe_struct" file="mfe_struct_result.fasta" />
+            <output name="trajectory" file="trajectory_result.tabular" />
+        </test>
+    </tests>
+    <help>
+<![CDATA[
+**What Kinwalker does**
+
+Kinwalker splits the folding process into a series of events where each event can either be a folding event or  a  transcription event.   
+In  each  transcription  event one base from the RNA sequence is appended to the already transcribed and (partially) folded subsequence. 
+Kinwalker executes transcription events at regular time intervals. In each folding event a subsequence  of  the  already  transcribed 
+RNA sequence is selected and a new structure is formed by combining base pairs from the current structure with base pairs from the 
+mfE structure of that subsequence. 
+
+This is done in such a way that the new  structure  includes  base  pairs from both structures in an energetically favorable manner. 
+Kinwalker estimates the waiting times for individual folding events depending on the height of the energy barrier between the 
+current structure and the new  structure  into which the molecule is folded. Folding events between structures can only occur, 
+if the energy barrier between them is less than the maximum allowed energy barrier. 
+
+As folding paths can only be calculated  exhaustively  for  short  sequences (n>100),  heuristic  approaches have to be employed which explicitly 
+construct a (re)folding path between the two structures. The saddle height is then estimated as the highest point along the path. 
+The best known algorithm  for  approximating  saddle heights  between RNA conformations is the Morgan-Higgs heuristic, 
+which tries to find a folding path from an origin secondary structure to a target secondary structure where the maximum height 
+along the path is  minimal.  The  heuristic  models  state transitions at base pair resolution.
+]]>
+    </help>
+    <citations>
+        <citation type="doi">10.1016/j.jmb.2008.02.064</citation>
+    </citations>
+</tool>