diff traj_select_and_merge.xml @ 0:f4a1e92ca3d2 draft

"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 7d8024bb5f0c425b5a2b37e389802ac250b73c60"
author chemteam
date Thu, 11 Mar 2021 19:54:32 +0000
parents
children 8740338fdff4
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/traj_select_and_merge.xml	Thu Mar 11 19:54:32 2021 +0000
@@ -0,0 +1,166 @@
+<tool id="traj_selections_and_merge" name="Trajectory select and merge" version="@TOOL_VERSION@+galaxy@GALAXY_VERSION@">
+    <description>- select specific molecules and merge multiple trajectories.</description>
+    <macros>
+        <import>macros.xml</import>
+        <token name="@GALAXY_VERSION@">0</token>
+    </macros>
+    <expand macro="requirements" />
+    <command detect_errors="exit_code"><![CDATA[
+    ln -s '$strin' str.${strin.ext} &&
+    #for $trj in $trajs:
+        ln -s '$trj' `basename '$trj'`.${select.traj_fmt} &&
+    #end for
+    python '$mdtraj_script'
+        --istr str.${strin.ext}
+        --itraj *.${select.traj_fmt}
+        --isele '$selection'
+        --o_str output.${strin.ext} 
+        --o_trj output.${select.traj_fmt} &&
+    mv output.${strin.ext} '$outputstr' &&
+    mv output.${select.traj_fmt} '$outputtraj'
+]]></command>
+    <configfiles>
+        <configfile name="mdtraj_script"><![CDATA[
+import mdtraj as md
+import sys
+import argparse
+
+def parse_command_line(argv):
+    parser = argparse.ArgumentParser()
+    parser.add_argument('--istr', help='input str')
+    parser.add_argument('--itraj', nargs='+', help='input traj')
+    parser.add_argument('--isele', help='selection')
+    parser.add_argument('--o_str', help='MDA Ramachandran plot')
+    parser.add_argument('--o_trj', help='Seaborn Ramachandran plot')
+    return parser.parse_args()
+
+args = parse_command_line(sys.argv)
+list_of_traj = []
+if args.itraj is not None:
+    list_of_traj.extend(args.itraj)
+
+try:
+    traj = md.load(list_of_traj, top=args.istr)
+except Exception as einstance:
+    print(type(einstance))
+    print(einstance.args)
+    print(einstance)
+topology = traj.topology
+try:
+    atoms_to_keep = topology.select(str(args.isele))
+except Exception as einstance:
+    print("Error: Check the selection is valid for the dataset chosen")
+    print(type(einstance))
+    print(einstance.args)
+    print(einstance)
+traj.restrict_atoms(atoms_to_keep)
+newstruct = traj.slice(1)
+newstruct.save(args.o_str)
+traj.save(args.o_trj)
+]]></configfile>
+    </configfiles>
+    <inputs>
+        <param format="pdb,gro" name="strin" type="data" label="PDB/GRO input" />
+        <conditional name="select">
+            <param name="traj_fmt" type="select" label="Trajectory format" help="Select the trajectory format to filter by">
+                <option selected="True" value="dcd">dcd</option>
+                <option value="xtc">xtc</option>
+                <option value="netcdf">netcdf</option>
+                <option value="trr">trr</option>
+            </param>
+            <when value="dcd">
+                <param name="trajs" multiple="True" type="data" format="dcd" label="trajectory file(s) input" />
+            </when>
+            <when value="xtc">
+                <param name="trajs" multiple="True" type="data" format="xtc" label="trajectory file(s) input" />
+            </when>
+            <when value="netcdf">
+                <param name="trajs" multiple="True" type="data" format="netcdf" label="trajectory file(s) input" />
+            </when>
+            <when value="trr">
+                <param name="trajs" multiple="True" type="data" format="trr" label="trajectory file(s) input" />
+            </when>
+        </conditional>
+        <param name="selection" type="text" value="not water and not segname POT and not segname CLA" label="selection to keep" help="A valid mdtraj style selection string that selects atoms to keep in structure and trajectory file output">
+            <validator type="regex" message="Maximum of 60 characters and space allowed.">^[a-zA-Z0-9 ]{1,60}$</validator>
+        </param>
+    </inputs>
+    <outputs>
+        <data name="outputstr" format_source="strin" />
+        <data name="outputtraj" format_source="trajs" />
+    </outputs>
+    <tests>
+        <test>
+            <param name="strin" value="test.pdb" ftype="pdb" />
+            <conditional name="select">
+                <param name="traj_fmt" value="dcd" />
+                <param name="trajs" value="test.dcd" />
+            </conditional>
+            <param name="selection" value="not water and not segname SOD and not segname CLA" />
+            <output name="outputstr">
+                <assert_contents>
+                    <has_text text="ATOM      1  C1  BGL A   1 " />
+                    <has_text text="ATOM     24  HO6 BGL A   1" />
+                </assert_contents>
+            </output>
+            <output name="outputtraj">
+                <assert_contents>
+                    <has_size value="4000" delta="100" />
+                </assert_contents>
+            </output>
+        </test>
+        <test>
+            <param name="strin" value="test.gro" ftype="gro" />
+            <conditional name="select">
+                <param name="traj_fmt" value="xtc" />
+                <param name="trajs" value="test.xtc" />
+            </conditional>
+            <param name="selection" value="resname BGLC" />
+            <output name="outputstr">
+                <assert_contents>
+                    <has_text text="    1BGLC    C1    1" />
+                    <has_text text="    1BGLC   HO6   24" />
+                </assert_contents>
+            </output>
+            <output name="outputtraj">
+                <assert_contents>
+                    <has_size value="1940" delta="100" />
+                </assert_contents>
+            </output>
+        </test>
+    </tests>
+    <help><![CDATA[
+.. class:: infomark
+
+**What it does**
+
+This tool is a filter and multijoin for trajectory files. You can select specific molecules (or atoms) and save out a new structure and trajectory file. If there are multiple trajectories selected, then these will all be combined into a single trajectory output.
+
+Use this tool to:
+  - reduce the size of trajectories for later analysis and help with selections where analysis tools may not have selection features that you need.
+  - combine trajectories for analysis, this is imperative for proper molecular dynamics analysis.
+
+_____
+
+
+.. class:: infomark
+
+**Input**
+
+       - Structure file (pdb,gro)
+       - Choose a format of trajectory file (trr,xtc, dcd, netcdf)
+       - Trajectory file(s) (the files displayed are filtered by the trajectory type chosen).
+       - A valid mdtraj selection for the system under consideration. For example: not water and segname CARA and not type H
+
+_____
+
+
+.. class:: infomark
+
+**Output**
+
+       - Structure file (same as input format)
+       - Trajectory file (same as input format)
+    ]]></help>
+    <expand macro="citations" />
+</tool>