view smina.xml @ 1:dc6fb5c5d4c8 draft

planemo upload commit 489ad526806f22eefcb73e8d8efe44d648e8185e
author marpiech
date Mon, 12 Sep 2016 06:00:34 -0400
parents 75f2b4087722
children 958fa7ba4715
line wrap: on
line source

<tool id="smina" name="smina" version="1.0">
    <description>Scoring and Minimization with AutoDock Vina</description>
    <stdio>
        <exit_code range="1:" />
    </stdio>
    <command>
        <![CDATA[ 
        cat $receptor > receptor.pdbqt;
        cat $ligand > ligand.pdbqt;
        $__tool_directory__/tools/smina/smina.static 
                                                    --receptor receptor.pdbqt 
                                                    --ligand ligand.pdbqt 

                                                    #if $flex
                                                    --flex $flex
                                                    #end if
                                                    #if $flexres
                                                    --flexres $flexres
                                                    #end if
                                                    #if $flexdist_ligand
                                                    --flexdist_ligand $flexdist_ligand
                                                    #end if
                                                    #if $flexdist
                                                    --flexdist $flexdist
                                                    #end if

                                                    --center_x $center_x 
                                                    --center_y $center_y
                                                    --center_z $center_z 
                                                    --size_x $size_x
                                                    --size_y $size_y
                                                    --size_z $size_z

                                                    #if $autobox_ligand
                                                    --autobox_ligand $autobox_ligand 
                                                    #end if 
                                                    #if $autobox_add 
                                                    --autobox_add $autobox_add
                                                    #end if
                                                    #if $no_lig=="true"
                                                    --no_lig
                                                    #end if 

                                                    --scoring $scoring 
                                                    #if $custom_scoring
                                                    --custom_scoring $custom_scoring
                                                    #end if
                                                    #if $custom_atoms
                                                    --custom_atoms $custom_atoms 
                                                    #end if
                                                    #if $score_only=="true"
                                                    --score_only 
                                                    #end if
                                                    #if $local_only=="true"
                                                    --local_only 
                                                    #end if
                                                    #if $minimize=="true"
                                                    --minimize 
                                                    #end if 
                                                    #if $randomize_only=="true"    
                                                    --randomize_only  
                                                    #end if 
                                                    #if $minimize_iters  
                                                    --minimize_iters $minimize_iters 
                                                    #end if
                                                    #if $accurate_line=="true"
                                                    --accurate_line
                                                    #end if
                                                    #if $minimize_early_term=="true"
                                                    --minimize_early_term
                                                    #end if
                                                    #if $approximation
                                                    --approximation $approximation
                                                    #end if
                                                    #if $factor
                                                    --factor $factor
                                                    #end if
                                                    #if $force_cap
                                                    --force_cap $force_cap
                                                    #end if
                                                    #if $user_grid
                                                    --user_grid $user_grid
                                                    #end if
                                                    #if $user_grid_lambda
                                                    --user_grid_lambda $user_grid_lambda
                                                    #end if
                                                    #if $print_terms=="true"
                                                    --print_terms
                                                    #end if
                                                    #if $print_atom_types=="true"
                                                    --print_atom_types
                                                    #end if

                                                    #if $out
                                                    --out $out
                                                    #end if
                                                    #if $out_flex
                                                    --out_flex $out_flex
                                                    #end if
                                                    #if $atom_terms
                                                    --atom_terms $atom_terms
                                                    #end if
                                                    #if $atom_term_data=="true"
                                                    --atom_term_data
                                                    #end if

                                                    #if $seed
                                                    --seed $seed
                                                    #end if
                                                    #if $exhaustiveness
                                                    --exhaustiveness $exhaustiveness
                                                    #end if
                                                    #if $num_modes
                                                    --num_modes $num_modes
                                                    #end if
                                                    #if $energy_range
                                                    --energy_range $energy_range
                                                    #end if
                                                    #if $min_rmsd_filter
                                                    --min_rmsd_filter $min_rmsd_filter
                                                    #end if
                                                    #if $addH=="false"
                                                    --addH false
                                                    #end if

                                                    > $stand_output;
    #if $out # cat $out > $out_output; #end if #
    #if $out_flex # cat $out_flex > $out_flex_output; #end if #
    #if $atom_terms # cat $atom_terms > $atom_terms_output; #end if #

    cat $stand_output > /tmp/ouput
    ]]>
    </command>
    <inputs>
        <param name="receptor" type="data" format="pdbqt" label="rigid part of the receptore" help="(--receptor)"/>
        <param name="ligand" type="data" format="data" label="ligand(s)" help="(--ligand)"/>

        <param name="flex" type="data" format="pdbqt" label="flexible side chains, if any" optional="true" help="(--flex"/>
        <param name="flexres" type="text" label="flexible side chains specified by comma separated list of chain:resid" optional="true" help="(--flexres)"/>
        <param name="flexdist_ligand" type="data" format="data" label="Ligand to use for flexdist" optional="true" help="(--flexdist_ligand)"/>
        <param name="flexdist" type="float" label="set all side chains within specified distance to flexdist_ligand to flexible" optional="true" help="(flexdist)"/>

        <param name="center_x" type="float" value="0" label="X coordinate of the center" help="(--center_x)"/>
        <param name="center_y" type="float" value="0" label="Y coordinate of the center" help="(--center_y)"/>
        <param name="center_z" type="float" value="0" label="Z coordinate of the center" help="(--center_z)"/>
        <param name="size_x" type="integer" value="1" label="size in the X dimension" help="(--size_x)"/>
        <param name="size_y" type="integer" value="1" label="size in the Y dimension" help="(--size_y)"/>
        <param name="size_z" type="integer" value="1" label="size in the Z dimension" help="(--size_z)"/>

        <param name="autobox_ligand" type="data" format="data" label="Ligand to use for autobox" optional="true" help="(--autobox_ligand)"/>
        <param name="autobox_add" type="float" label="Amount of buffer space to add to auto-generated box text(default +4 on all six sides)" optional="true" help="(autobox_add)"/>
        <param name="no_lig" type="select" label="no ligand; for sampling/minimizing flexible residues (Type true if you want to use it)" help="(no_lig)">
            <option value="false" selected="true">Don't use this option</option>
            <option value="true">Use this option</option>
        </param>

        <param name="scoring" type="select" label="specify alternative builtin scoring function" help="(--scoring)">
            <option value="default" selected="true">default</option>
            <option value="ad4_scoring">ad4_scoring</option>
            <option value="dkoes_fast">dkoes_fast</option>
            <option value="dkoes_scoring">dkoes_scoring</option>
            <option value="dkoes_scoring_old">dkoes_scoring_old</option>
            <option value="vina">vina</option>
            <option value="vinardo">vinardo</option>
        </param>
        <param name="custom_scoring" type="data" format="data" label="custom scoring function file" optional="true" help="(--custom_scoring)"/>
        <param name="custom_atoms" type="data" format="data" label="custom atom type parameters file" optional="true" help="(--custom_atoms)"/>
        <param name="score_only" type="select" label="score provided ligand pose" help="(--score_only)">
            <option value="false" selected="true">Don't use this option</option>
            <option value="true">Use this option</option>
            </param>
        <param name="local_only" type="select" label="local search only using autobox (you probably want to use --minimize)" help="(--local_only)">
            <option value="false" selected="true">Don't use this option</option>
            <option value="true">Use this option</option>
        </param>
        <param name="minimize" type="select" label="energy minimization" help="(--minimize)">
            <option value="false" selected="true">Don't use this option</option>
            <option value="true">Use this option</option>
        </param>
        <param name="randomize_only" type="select" label="generate random poses, attempting to avoid clashes" help="(--randomize_only)">
            <option value="false" selected="true">Don't use this option</option>
            <option value="true">Use this option</option>
        </param>
        <param name="minimize_iters" type="integer" label="number iterations of steepest descent; default scales with rotors and usually isn't sufficient for convergence" optional="true" help="(--minimize_iters)"/>    
        <param name="accurate_line" type="select" label="use accurate line search" help="(--accurate_line)">
            <option value="false" selected="true">Don't use this option</option>
            <option value="true">Use this option</option>
        </param>        
        <param name="minimize_early_term" type="select" label="Stop minimization before convergence conditions are fully met" help="(--minimize_early_term)">
            <option value="false" selected="true">Don't use this option</option>
            <option value="true">Use this option</option>
        </param>
        <param name="approximation" type="select" label="approximation (linear, spline, or exact) to use" optional="true" help="(--approximation)">
            <option value="linear">linear</option>
            <option value="spline">spline</option>
            <option value="exact">exact</option>
        </param>
        <param name="factor" type="float" label="approximation factor: higher results in a finer-grained approximation" optional="true" help="(--factor)">
            <validator type="in_range" min="0"/>
        </param>
        <param name="force_cap" type="float" label="max allowed force; lower values more gently minimize clashing structures" optional="true" help="(--force_cap)"/>
        <param name="user_grid" type="float" label="Autodock map file for user grid data based calculations" optional="true" help="(--user_grid)"/>
        <param name="user_grid_lambda" type="float" label="Scales user_grid and functional scoring" optional="true" help="(--user_grid)"/>
        <param name="print_terms" type="select" label="Print all available terms with default parameterizations" help="(--print_terms)">
            <option value="false" selected="true">Don't use this option</option>
            <option value="true">Use this option</option>
        </param>
        <param name="print_atom_types" type="select" label="Print all available atom types" help="(--print_atom_types)">
            <option value="false" selected="true">Don't use this option</option>
            <option value="true">Use this option</option>
        </param>

        <param name="out" type="text" label="output file name, format taken from file extension" optional="true" help="(--out)"/>
        <param name="out_flex" type="text" label="output file for flexible receptor residues" optional="true" help="(--out_flex)"/>
        <param name="atom_terms" type="text" label="output file for flexible receptor residues" optional="true" help="(--atom_terms)"/>
        <param name="atom_term_data" type="select" label="embedded per-atom interaction terms in output sd data" help="(--atom_term_data)">
            <option value="false" selected="true">Don't use this option</option>
            <option value="true">Use this option</option>
        </param>

        <param name="seed" type="float" label="explicit random seed" optional="true" help="(--seed)"/>
        <param name="exhaustiveness" type="integer" label="exhaustiveness of the global search (roughly proportional to time)" optional="true" help="(--exhaustiveness)"/>
        <param name="num_modes" type="integer" label="exhaustiveness of the global search (roughly proportional to time)" optional="true" help="(--num_modes)">
            <validator type="in_range" min="1"/>
        </param>
        <param name="energy_range" type="float" label="maximum energy difference between the best binding mode and the worst one displayed (kcal/mol)" optional="true" help="(--energy_range)"/>
        <param name="min_rmsd_filter" type="float" label="rmsd value used to filter final poses to remove redundancy" optional="true" help="(--min_rmsd_filter)"/>
        <param name="addH" type="select" label="automatically add hydrogens in ligands (on by default)" help="(--addH)">
            <option value="false" >Don't use this option</option>
            <option value="true" selected="true">Use this option</option>
        </param>

    </inputs>
    <outputs>
        <data name="stand_output" format="data" />
        <data name="out_output" format="data" />
        <data name="out_flex_output" format="data" />
        <data name="atom_terms_output" format="data" />
    </outputs>
    <tests>
        <test>
            <param name="receptor" value="smina/protein.pdbqt" />
            <param name="ligand" value="smina/ligand.pdbqt" />
            <param name="center_x" value="11" />
            <param name="center_y" value="90.5" />
            <param name="center_z" value="57.5" />
            <param name="size_x" value="22" />
            <param name="size_y" value="24" />
            <param name="size_z" value="28" />
            <output name="stand_output" >
                <assert_contents>
                    <has_text_matching expression="Using random seed" />
                </assert_contents>
            </output>
        </test>
    </tests>
    <help>
        <![CDATA[
************
Description
************

A fork of AutoDock Vina that is customized to better support scoring function development and high-performance energy minimization. smina is maintained by David Koes at the University of Pittsburgh and is not directly affiliated with the AutoDock project.

******
Help
******

 **Input**

 --receptor arg                             rigid part of the receptor (PDBQT)
 --flex arg                                flexible side chains, if any (PDBQT)
 --ligand arg                              ligand(s)
 --flexres arg                             flexible side chains specified by comma separated list of chain:resid
 --flexdist_ligand arg                     Ligand to use for flexdist
 --flexdist arg          set all side chains within 
                         specified distance to flexdist_ligand to flexible
    
 **Search space**

 --center_x arg         X coordinate of the center
 --center_y arg         Y coordinate of the center
 --center_z arg         Z coordinate of the center
 --size_x arg           size in the X dimension (Angstroms)
 --size_y arg           size in the Y dimension (Angstroms)
 --size_z arg           size in the Z dimension (Angstroms)
 --autobox_ligand arg   Ligand to use for autobox
 --autobox_add arg      Amount of buffer space to add 
                        to auto-generated box (default +4 on all six sides)
 --no_lig               no ligand; for 
                        sampling/minimizing flexible residues

 **Scoring and minimization options**

 --scoring arg                       specify alternative
                                     builtin scoring function
 --custom_scoring arg                 custom scoring function file
 --custom_atoms arg           custom atom type parameters file
 --score_only                 score provided ligand pose
 --local_only                 local search only using autobox (you probably want to use --minimize)
 --minimize                   energy minimization
 --randomize_only             generate random poses, attempting to avoid clashes
 --minimize_iters arg         number iterations of steepest descent; 
                              default scales with rotors and usually isn't
                              sufficient for convergence
 --accurate_line              use accurate line search  
 --minimize_early_term        Stop minimization before convergence conditions are fully met.
 --approximation arg          approximation (linear, spline, or exact) to use
 --factor arg                 approximation factor: higher results in a finer-grained approximation
 --force_cap arg              max allowed force; lower values more gently minimize clashing structures
 --user_grid arg              Autodock map file for user grid data based calculations
 --user_grid_lambda arg       Scales user_grid and functional scoring
 --print_terms                Print all available terms with default parameterizations
 --print_atom_types           Print all available atom types  

 **Output**

 --out arg      output file name, format taken from file extension
 --out_flex arg        output file for flexible receptor residues
 --atom_terms arg      optionally write per-atom interaction term values
 --atom_term_data      embedded per-atom 
                       interaction terms in output sd data

 **Misc**

 --seed arg                  explicit random seed
 --exhaustiveness arg        exhaustiveness of the global search (roughly proportional to time)
 --num_modes arg             maximum number of binding modes to generate
 --energy_range arg          maximum energy difference between the best binding mode and the worst one displayed (kcal/mol)
 --min_rmsd_filter arg      rmsd value used to filter final poses to remove redundancy
 --addH arg                 automatically add hydrogens 
                            in ligands (on by default)

        ]]>
    </help>
    <citations>
        <citation type="bibtex">
            @misc{url = {https://sourceforge.net/projects/smina/}, }
        </citation>
    </citations>
</tool>