diff dpocket.xml @ 3:4cc9d85c3bae draft default tip

"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/fpocket/ commit 06eccf2513b3394e79606f320e019be4793386b9"
author bgruening
date Fri, 10 Sep 2021 08:20:08 +0000
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dpocket.xml	Fri Sep 10 08:20:08 2021 +0000
@@ -0,0 +1,183 @@
+<tool id="dpocket" name="dpocket" version="@TOOL_VERSION@+galaxy@GALAXY_VERSION@">
+    <description>to calculate descriptors for protein pockets</description>
+    <macros>
+        <import>macros.xml</import>
+        <token name="@GALAXY_VERSION@">0</token>
+    </macros>
+    <expand macro="requirements" />
+    <command detect_errors="exit_code"><![CDATA[
+        ## create config file
+        #for i in $input:
+            ln -s '$i' $i.name.replace(' ', '_') &&
+            echo $i.name.replace(' ', '_') >> pdbs.txt &&
+        #end for
+        paste pdbs.txt '$ligs' > dp_conf.txt &&
+
+        ## run dpocket
+        dpocket
+            -f dp_conf.txt
+
+            ## pocket definition params common with fpocket
+            #if $inp.pocket_type == 'channel':
+                --min_alpha_size 2.8 --max_alpha_size 5.5 --min_spheres_per_pocket 30
+            #elif $inp.pocket_type == 'external':
+                --min_alpha_size 3.5 --max_alpha_size 10 --min_spheres_per_pocket 30
+            #elif $inp.pocket_type == 'custom':
+                --min_alpha_size '$inp.min'
+                --max_alpha_size '$inp.max'
+                --min_spheres_per_pocket '$inp.i'
+                --clustering_distance '$inp.D'
+                --clustering_method '$inp.C'
+                ##--clustering_measure $inp.e
+            #end if
+
+            ## specific params for explicit pocket definition
+            #if $explicit_output.output == "true":
+                $explicit_output.interface_definition
+                -d $explicit_output.dist
+            #end if
+
+            &&
+        ## reformat output files to match Galaxy tabular
+        sed -e "s/\s\+/\t/g" dpout_fpocketp.txt > $fpocketp &&
+        sed -e "s/\s\+/\t/g" dpout_fpocketnp.txt > $fpocketnp
+        #if $explicit_output.output:
+            &&
+            sed -e "s/\s\+/\t/g" dpout_explicitp.txt > $explicitp
+        #end if
+
+    ]]></command>
+    <inputs>
+        <param name="input" type="data" format="pdb" multiple="true" label="Input file" help="Protein structure file(s) (PDB) to search."/>
+        <param name="ligs" type="data" format="txt" label="Ligand codes" help="List of ligand codes (as provided in the PDB files), one per line. The number of codes must match the number of input PDB files."/>
+        <expand macro="inputs" />
+        <!-- <param name="outputs" type="select" display="checkboxes" multiple="true" label="Output files">
+            <option value="fpocketp" selected="true">Pockets which match the ligand position</option>
+            <option value="fpocketnp">Pockets which do NOT match the ligand position</option>
+            <option value="explicitp">Define pocket explicitly as all vertices/atoms within a given distance from the ligand, regardless of what fpocket found. </option>
+        </param> -->
+        <conditional name="explicit_output">
+            <param name="output" type="select" label="Calculate explicit pocket?" help="Define pocket explicitly as all vertices/atoms within a given distance from the ligand, regardless of what fpocket found.">
+                <option value="true" selected="true">Yes</option>
+                <option value="false">No</option>
+            </param>
+            <when value="false" />
+            <when value="true">
+                <param name="interface_definition" type="select" label="Definition of the explicit pocket" help="Protein-ligand explicit interface definition">
+                    <option value="-e" selected="true">All atoms in contact with alpha spheres within a distance threshold from any ligand atom</option>
+                    <option value="-E">All atoms within a distance threshold from any ligand atom</option>
+                </param>
+                <param name="dist" type="float" value="4.0" min="0" label="Distance threshold for explicit pocket definition (angstroms)" />
+            </when>
+
+        </conditional>
+    </inputs>
+
+    <outputs>
+        <data name="fpocketp" format="tabular" label="Pockets matching the submitted ligands"/>
+        <data name="fpocketnp" format="tabular" label="Pockets NOT matching the submitted ligands"/>
+        <data name="explicitp" format="tabular" label="Pockets defined explicitly based on the submitted ligands">
+            <filter>explicit_output['output'] == "true"</filter>
+        </data>
+    </outputs>
+
+    <tests>
+        <test expect_num_outputs="3">
+            <param name="input" ftype="pdb" value="2brc.pdb"/>
+            <param name="ligs" ftype="txt" value="ligs.txt"/>
+            <param name='pocket_type' value='custom' />
+            <param name="min" value="4.0"/>
+            <param name="max" value="7.0"/>
+            <param name="i" value="20" />
+            <param name="D" value="2.0"/>
+            <param name="C" value="s" />
+            <param name="interface_definition" value="-E" />
+            <param name="dist" value="5" />
+            <param name='explicit_output' value='true' />
+            <output name="fpocketp" ftype="tabular">
+                <assert_contents>
+                    <has_n_columns n="57" />
+                    <has_n_lines n="2" />
+                    <has_text_matching expression="2brc.pdb\s+CT5\s+31.15\s+1\s+1.07\s+0.77\s+1.00\s+1\s+1.54"/>
+                    <has_text_matching expression="6.50\s+0.96\s+0.44\s+14.39\s+23.64\s+12.20\s+42.27\s+15.29\s+2\s+1\s+0\s+2"/>
+                </assert_contents>
+            </output>
+            <output name="fpocketnp" ftype="tabular">
+                <assert_contents>
+                    <has_n_columns n="57" />
+                    <has_n_lines n="2" />
+                    <has_text_matching expression="2brc.pdb\s+CT5\s+0.00\s+0\s+17.62\s+0.00\s+0.00\s+0\s+-1.25"/>
+                    <has_text_matching expression="4.36\s+0.69\s+0.00\s+4.37\s+31.43\s+42.10\s+33.81\s+17.20\s+5\s+0\s+1\s+1"/>
+                </assert_contents>
+            </output>
+            <output name="explicitp" ftype="tabular">
+                <assert_contents>
+                    <has_n_columns n="57" />
+                    <has_n_lines n="2" />
+                    <has_text_matching expression="2brc.pdb\s+CT5\s+100.00\s+1\s+0.00\s+1.00\s+1.00\s+1\s+2.00"/>
+                    <has_text_matching expression="11.97\s+0.00\s+0.00\s+107.35\s+56.94\s+61.01\s+57.97\s+34.40\s+3\s+2\s+0\s+2"/>
+                </assert_contents>
+            </output>
+        </test>
+        <test expect_num_outputs="3">
+            <param name="input" ftype="pdb" value="2brc.pdb,1L83.pdb"/>
+            <param name="ligs" ftype="txt" value="ligs2.txt"/>
+            <param name='pocket_type' value='small_mol' />
+            <param name='explicit_output' value='false' />
+            <output name="fpocketp" ftype="tabular">
+                <assert_contents>
+                    <has_n_columns n="57" />
+                    <has_n_lines n="3" />
+                    <has_text_matching expression="2brc.pdb\s+CT5\s+38.60\s+1\s+0.54\s+0.46\s+0.80\s+0\s+0.67"/>
+                    <has_text_matching expression="1L83.pdb\s+BNZ\s+100.00\s+1\s+0.83\s+1.00\s+0.85\s+1\s+1.81"/>
+                </assert_contents>
+            </output>
+            <output name="fpocketnp" ftype="tabular">
+                <assert_contents>
+                    <has_n_columns n="57" />
+                    <has_n_lines n="19" />
+                    <has_text_matching expression="2brc.pdb\s+CT5\s+0.00\s+0\s+17.15\s+0.00\s+0.00\s+0\s+-1.25"/>
+                    <has_text_matching expression="29.17\s+4.03\s+0.65\s+11.05\s+0.65\s+0.14\s+13.17\s+29.13\s+19.24"/>
+                </assert_contents>
+            </output>
+        </test>
+    </tests>
+    <help><![CDATA[
+
+Calculate descriptors (i.e. featurize) 'pockets' in a protein structure, using the
+dpocket module of the fpocket software.
+
+To use, upload one or more protein structures in PDB format and select the type of pocket to 
+detect. 'Custom options' can also be selected - this exposes all internal fpocket 
+parameters. Using this option requires some knowledge of the fpocket prediction 
+algorithm. Please consult the cited publications for more details.
+
+In addition, a list of ligand identifiers should be provided as a text file, one per line and
+one for each of the protein structures.
+
+
+-----
+
+.. class:: infomark
+
+**Input**
+
+- One or more protein structures in PDB format. If using multiple structures, submitting them as a dataset collection is recommended to ensure ordering is preserved.
+- Text file with ligand identifiers, matching the ligand code in the PDB files. One identifier should be listed per line and one per PDB file. 
+
+-----
+
+.. class:: infomark
+
+**Output**
+
+- Tabular file with descriptors of pockets matching the positions of the input ligands.
+- Tabular file with descriptors of pockets which do NOT match the positions of the input ligands.
+- (Optional) Tabular file with descriptors of pockets which are explicitly defined by the positions of the input ligands.
+
+Each tabular file contains 57 columns (55 descriptors, plus protein and ligand names), a header line, and
+one row per pocket found.
+
+]]></help>
+    <expand macro="citations" />
+</tool>