view rbdock.xml @ 0:35ee2e002bb0 draft

"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/rxdock commit bb19570293b920983b6856b30b42203a09543bc5"
author bgruening
date Sat, 04 Apr 2020 15:00:22 -0400
parents
children 07309bad01df
line wrap: on
line source

<tool id="rxdock_rbdock" name="rxDock docking" version="0.1.3" profile="19.01">
    <description>- perform protein-ligand docking with rxDock</description>
    <macros>
        <import>rdock_macros.xml</import>
    </macros>
    <expand macro="requirements"/>
    <command><![CDATA[
ln -s '$active_site' receptor.as &&
ln -s '$receptor' receptor.mol2 &&
ln -s $receptor_prm receptor.prm &&
#if $name == 'Y':
  sdmodify -f_REC '$ligands' > ligands.sdf &&
#else
  ln -s '$ligands' ligands.sdf &&
#end if

python '$__tool_directory__/rbdock.py'
    -n '$num'
    #if $seed:
        -s '$seed'
    #end if
    &&

cat rdock_output.sd 

#if $filter.filter_select == "filter":
    #if $filter.score:
        | sdfilter -f'\$SCORE <= ${filter.score}'
    #end if
    #if $filter.nscore:
        | sdfilter -f'\$SCORE.norm <= ${filter.nscore}'
    #end if
    #if $filter.top
        | sdsort -n -s -fSCORE | sdfilter -f'\$_COUNT <= $filter.top'
    #end if
#end if

 > '$output'

    ]]></command>

    <configfiles>
        <configfile name="receptor_prm">RBT_PARAMETER_FILE_V1.00
RECEPTOR_FILE receptor.mol2
RECEPTOR_FLEX 3.0
        </configfile>
    </configfiles>

    <inputs>
        <param type="data" name="receptor" format="mol2" label="Receptor" help="Select a receptor (mol2 format)."/>
        <param type="data" name="active_site" format="rdock_as" label="Active site" help="Active site file"/>
        <param type="data" name="ligands" format="sdf,mol" label="Ligands" help="Ligands in SDF format (or single ligand in MOL format)"/>
        <param name="num" type="integer" value="10" label="Number of dockings" help="Number of poses to generate"/>
        <conditional name="filter">
            <param name="filter_select" type="select" label="Filter the docking results" help="Using sdfilter">
                <option value="filter">Show filter options</option>
                <option value="no_filter">No filtering</option>
            </param>
            <when value="filter">
                <param name="score" type="float" optional="true" label="Score filter"
                   help="Exclude poses with score greater than this value"/>
                <param name="nscore" type="float" optional="true" label="Normalised score filter"
                    help="Exclude poses with normalised score greater than this value"/>
                <param name="top" type="integer" value="1" optional="true" min="1" label="Number of best poses"
                    help="Number of best scoring poses to keep"/>
            </when>
            <when value="no_filter"/>
        </conditional>
        <param name="name" type="boolean" label="Generate name field" truevalue="Y" falsevalue="N" checked="false"
               help="Generate the name field (first line) for cases where this is empty"/>
        <param argument="-seed" type="integer" optional="true" label="Random seed" help=""/>
    </inputs>
    <outputs>
        <data name="output" format="sdf" label="rxDock on ${on_string}"/>
    </outputs>
    <tests>
        <!-- broken ligand test -->
        <test expect_failure="true" expect_exit_code="23">
            <param name="receptor" value="receptor.mol2"/>
            <param name="ligands" value="broken_ligand.sdf"/>
            <param name="active_site" value="receptor.as"/>
            <param name="num" value="3"/>
            <param name="seed" value="3"/>
            <conditional name="filter">
                <param name="filter_select" value="filter"/>
                <param name="top" value="1"/>
            </conditional>
            <param name="name" value="false"/>
        </test>
        <test>
            <param name="receptor" value="receptor.mol2"/>
            <param name="ligands" value="ligands_names.sdf"/>
            <param name="active_site" value="receptor.as"/>
            <param name="num" value="3"/>
            <param name="seed" value="3"/>
            <conditional name="filter">
                <param name="filter_select" value="filter"/>
                <param name="top" value="1"/>
            </conditional>
            <param name="name" value="false"/>
            <output name="output">
                <assert_contents>
                    <has_text text="Rbt.Current_Directory"/>
                    <has_n_lines n="355"/>
                </assert_contents>
            </output>
        </test>
        <test>
            <param name="receptor" value="receptor.mol2"/>
            <param name="ligands" value="ligands_nonames.sdf"/>
            <param name="active_site" value="receptor.as"/>
            <param name="num" value="3"/>
            <param name="seed" value="3"/>
            <conditional name="filter">
                <param name="filter_select" value="filter"/>
                <param name="top" value="1"/>
            </conditional>
            <param name="name" value="true"/>
            <output name="output">
                <assert_contents>
                    <has_text text="Rbt.Current_Directory"/>
                     <has_n_lines n="355"/>
                </assert_contents>
            </output>
        </test>
        <!-- no filter test -->
        <test>
            <param name="receptor" value="receptor.mol2"/>
            <param name="ligands" value="ligands_nonames.sdf"/>
            <param name="active_site" value="receptor.as"/>
            <param name="num" value="3"/>
            <param name="seed" value="3"/>
            <conditional name="filter">
                <param name="filter_select" value="no_filter"/>
            </conditional>
            <param name="name" value="true"/>
            <output name="output">
                <assert_contents>
                    <has_text text="Rbt.Current_Directory"/>
                    <has_n_lines n="1059"/>
                </assert_contents>
            </output>
        </test>
        <test>
            <param name="receptor" value="receptor.mol2"/>
            <param name="ligands" value="ligands_names.sdf"/>
            <param name="active_site" value="receptor.as"/>
            <param name="num" value="1"/>
            <param name="seed" value="3"/>
            <conditional name="filter">
                <param name="filter_select" value="filter"/>
                <param name="score" value="10"/>
                <param name="nscore" value="1"/>
            </conditional>
            <param name="name"/>
            <output name="output">
                <assert_contents>
                    <has_text text="Rbt.Current_Directory"/>
                     <has_n_lines n="355"/>
                </assert_contents>
            </output>
        </test>
    </tests>
    <help><![CDATA[

.. class:: infomark

This tool performs protein-ligand docking using the rxDock program.
See https://www.rxdock.org for more details about rxDock and associated programs.

-----

.. class:: infomark

**Inputs**

1. The protein receptor to dock into as a file in Mol2 format.
2. The active site definition as a file as generated by the rbcavity tool.
3. A set of ligands (collection or single file) to dock as a file in SDF format.
4. The number of docking poses to generate (integer).
5. The number of best scoring dockings to keep (integer).
6. The max score that is allowed. Poses with scores greater than this are excluded (float, optional).
7. The max normalised score (the score normalised by the number of heavy atoms) that is allowed.
   Poses with normalised scores greater than this are excluded (float, optional).
8. Optionally generate the name field in the ligands SDF (this is the first line in the entry).
   This field must be present and be unique for sorting and filtering to work. If your results contain only one record
   then the name field is probably absent and must be generated.

You will need to perform some test dockings to establish suitable values for the score filters.
The score is a number with lower values being better. Values can be negative.

-----

.. class:: infomark

**Outputs**

An SDF file is produced as output. The binding affinity scores are contained within the SDF file.::

    1-pyrimethamine
    rDOCK(R)          3D
    libRbt.so/2013.1/901 2013/11/27
    21 22  0  0  0  0  0  0  0  0999 V2000
    -5.1897   17.8912   17.9590 N   0  0  0  0  0  0
    -3.9121   17.9973   18.3210 C   0  0  0  0  0  0
    -3.2404   19.1465   18.3804 N   0  0  0  0  0  0
    -3.8989   20.2829   18.0453 C   0  0  0  0  0  0
    -5.2389   20.2802   17.6553 C   0  0  0  0  0  0
    -5.8448   19.0235   17.6464 C   0  0  0  0  0  0
    -5.9601   21.5065   17.2850 C   0  0  0  0  0  0
    -6.2108   22.5074   18.2382 C   0  0  0  0  0  0
    -6.8903   23.6771   17.8851 C   0  0  0  0  0  0
    -7.3267   23.8556   16.5746 C   0  0  0  0  0  0
    -7.0903   22.8744   15.6151 C   0  0  0  0  0  0
    -6.4107   21.7051   15.9695 C   0  0  0  0  0  0
    -3.2455   16.8582   18.6507 N   0  0  0  0  0  0
    -7.1550   18.8446   17.2393 N   0  0  0  0  0  0
    -8.1626   25.2957   16.1391 Cl  0  0  0  0  0  0
    -2.9891   22.1828   19.5033 C   0  0  0  0  0  0
    -3.1112   21.5771   18.1096 C   0  0  0  0  0  0
    -2.2766   16.9101   18.9273 H   0  0  0  0  0  0
    -3.7237   15.9703   18.6154 H   0  0  0  0  0  0
    -7.8809   19.3992   17.6807 H   0  0  0  0  0  0
    -7.4159   17.8951   16.9940 H   0  0  0  0  0  0
    1  2  2  0  0  0
    1  6  1  0  0  0
    2  3  1  0  0  0
    2 13  1  0  0  0
    3  4  2  0  0  0
    4  5  1  0  0  0
    4 17  1  0  0  0
    5  6  2  0  0  0
    5  7  1  0  0  0
    6 14  1  0  0  0
    7  8  2  0  0  0
    7 12  1  0  0  0
    8  9  1  0  0  0
    9 10  2  0  0  0
    10 11  1  0  0  0
    10 15  1  0  0  0
    11 12  2  0  0  0
    13 18  1  0  0  0
    13 19  1  0  0  0
    14 20  1  0  0  0
    14 21  1  0  0  0
    16 17  1  0  0  0
    M  END
    >  <CHROM.0>
    -177.71086620,1.45027861,170.39044546,46.02877151,68.76956623,70.55425150

    >  <CHROM.1>
    -81.34718191,-65.90186149,129.45748660,-5.61305786,21.23281353,17.50152835
    0.96119776,0.49809360,-3.12917831

    >  <Rbt.Current_Directory>
    /home/timbo/github/im/docking-validation/targets/dhfr/expts/vs-simple-rdock

    >  <Rbt.Executable>
    rbdock ($Id: //depot/dev/client3/rdock/2013.1/src/exe/rbdock.cxx#4 $)

    >  <Rbt.Library>
    libRbt.so (2013.1, Build901 2013/11/27)

    >  <Rbt.Parameter_File>
    /rDock_2013.1/data/scripts/dock.prm

    >  <Rbt.Receptor>
    receptor.prm

    >  <SCORE>
    0.445364

    >  <SCORE.INTER>
    8.4

    >  <SCORE.INTER.CONST>
    1

    >  <SCORE.INTER.POLAR>
    0

    >  <SCORE.INTER.REPUL>
    0

    >  <SCORE.INTER.ROT>
    3

    >  <SCORE.INTER.VDW>
    0

    >  <SCORE.INTER.norm>
    0.494118

    >  <SCORE.INTRA>
    -1.38672

    >  <SCORE.INTRA.DIHEDRAL>
    -0.818539

    >  <SCORE.INTRA.DIHEDRAL.0>
    6.01924

    >  <SCORE.INTRA.POLAR>
    0

    >  <SCORE.INTRA.POLAR.0>
    0

    >  <SCORE.INTRA.REPUL>
    0

    >  <SCORE.INTRA.REPUL.0>
    0

    >  <SCORE.INTRA.VDW>
    -0.977448

    >  <SCORE.INTRA.VDW.0>
    -1.0079

    >  <SCORE.INTRA.norm>
    -0.0815716

    >  <SCORE.RESTR>

    >  <SCORE.RESTR.norm>
    0

    >  <SCORE.SYSTEM>
    -6.56792

    >  <SCORE.SYSTEM.CONST>
    0

    >  <SCORE.SYSTEM.DIHEDRAL>
    1.50415

    >  <SCORE.SYSTEM.POLAR>
    -2.3289

    >  <SCORE.SYSTEM.VDW>
    0.59827

    >  <SCORE.SYSTEM.norm>
    -0.386348

    >  <SCORE.heavy>
    17

    >  <SCORE.norm>
    0.0261979

    $$$$

    ]]></help>
    <expand macro="citations"/>
</tool>