diff smina.xml @ 2:958fa7ba4715 draft

planemo upload commit 489ad526806f22eefcb73e8d8efe44d648e8185e-dirty
author marpiech
date Wed, 14 Sep 2016 09:47:48 -0400
parents dc6fb5c5d4c8
children 8c2e85bb2ce9
line wrap: on
line diff
--- a/smina.xml	Mon Sep 12 06:00:34 2016 -0400
+++ b/smina.xml	Wed Sep 14 09:47:48 2016 -0400
@@ -5,237 +5,254 @@
     </stdio>
     <command>
         <![CDATA[ 
-        cat $receptor > receptor.pdbqt;
-        cat $ligand > ligand.pdbqt;
+        cat $input.receptor > receptor.pdbqt;
+        cat $input.ligand > ligand.pdbqt;
         $__tool_directory__/tools/smina/smina.static 
                                                     --receptor receptor.pdbqt 
                                                     --ligand ligand.pdbqt 
 
-                                                    #if $flex
-                                                    --flex $flex
+                                                    #if $input.flex
+                                                    --flex $input.flex
                                                     #end if
-                                                    #if $flexres
-                                                    --flexres $flexres
+                                                    #if $input.flexres
+                                                    --flexres $input.flexres
                                                     #end if
-                                                    #if $flexdist_ligand
-                                                    --flexdist_ligand $flexdist_ligand
+                                                    #if $input.flexdist_ligand
+                                                    --flexdist_ligand $input.flexdist_ligand
                                                     #end if
-                                                    #if $flexdist
-                                                    --flexdist $flexdist
+                                                    #if $input.flexdist
+                                                    --flexdist $input.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
+                                                    --center_x $search_space.center_x 
+                                                    --center_y $search_space.center_y
+                                                    --center_z $search_space.center_z 
+                                                    --size_x $search_space.size_x
+                                                    --size_y $search_space.size_y
+                                                    --size_z $search_space.size_z
 
-                                                    #if $autobox_ligand
-                                                    --autobox_ligand $autobox_ligand 
+                                                    #if $search_space.autobox_ligand
+                                                    --autobox_ligand $search_space.autobox_ligand 
                                                     #end if 
-                                                    #if $autobox_add 
-                                                    --autobox_add $autobox_add
+                                                    #if $search_space.autobox_add 
+                                                    --autobox_add $search_space.autobox_add
                                                     #end if
-                                                    #if $no_lig=="true"
+                                                    #if $search_space.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
+                                                    --out ligand_out.pdbqt
+                                                    #if $output_sect.out_flex=="true"
+                                                    --out_flex output_flex
+                                                    #end if                                                    
+                                                    #if $output_sect.log=="true"
+                                                    --log output_log
                                                     #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
+                                                    #if $output_sect.atom_terms=="true"
+                                                    --atom_terms output_atom_terms
                                                     #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"
+                                                    #if $output_sect.atom_term_data=="true"
                                                     --atom_term_data
                                                     #end if
 
-                                                    #if $seed
-                                                    --seed $seed
+                                                    --scoring $scoring_and_minimization.scoring 
+                                                    #if $scoring_and_minimization.custom_scoring
+                                                    --custom_scoring $scoring_and_minimization.custom_scoring
+                                                    #end if
+                                                    #if $scoring_and_minimization.custom_atoms
+                                                    --custom_atoms $scoring_and_minimization.custom_atoms 
+                                                    #end if
+                                                    #if $scoring_and_minimization.score_only=="true"
+                                                    --score_only 
+                                                    #end if
+                                                    #if $scoring_and_minimization.local_only=="true"
+                                                    --local_only 
                                                     #end if
-                                                    #if $exhaustiveness
-                                                    --exhaustiveness $exhaustiveness
+                                                    #if $scoring_and_minimization.minimize=="true"
+                                                    --minimize 
+                                                    #end if 
+                                                    #if $scoring_and_minimization.randomize_only=="true"    
+                                                    --randomize_only  
+                                                    #end if 
+                                                    --minimize_iters $scoring_and_minimization.minimize_iters 
+                                                    #if $scoring_and_minimization.accurate_line=="true"
+                                                    --accurate_line
+                                                    #end if
+                                                    #if $scoring_and_minimization.minimize_early_term=="true"
+                                                    --minimize_early_term
+                                                    #end if
+                                                    #if $scoring_and_minimization.approximation
+                                                    --approximation $scoring_and_minimization.approximation
                                                     #end if
-                                                    #if $num_modes
-                                                    --num_modes $num_modes
+                                                    #if $scoring_and_minimization.factor
+                                                    --factor $scoring_and_minimization.factor
+                                                    #end if
+                                                    #if $scoring_and_minimization.force_cap
+                                                    --force_cap $scoring_and_minimization.force_cap
+                                                    #end if
+                                                    #if $scoring_and_minimization.user_grid
+                                                    --user_grid $scoring_and_minimization.user_grid
+                                                    #end if
+                                                    --user_grid_lambda $scoring_and_minimization.user_grid_lambda
+                                                    #if $scoring_and_minimization.print_terms=="true"
+                                                    --print_terms
                                                     #end if
-                                                    #if $energy_range
-                                                    --energy_range $energy_range
+                                                    #if $scoring_and_minimization.print_atom_types=="true"
+                                                    --print_atom_types
+                                                    #end if
+
+                                                    #if $misc.cpu
+                                                    --cpu $misc.cpu
                                                     #end if
-                                                    #if $min_rmsd_filter
-                                                    --min_rmsd_filter $min_rmsd_filter
+                                                    #if $misc.seed
+                                                    --seed $misc.seed
                                                     #end if
-                                                    #if $addH=="false"
+                                                    --exhaustiveness $misc.exhaustiveness
+                                                    --num_modes $misc.num_modes
+                                                    --energy_range $misc.energy_range
+                                                    --min_rmsd_filter $misc.min_rmsd_filter
+                                                    #if $misc.addH=="false"
                                                     --addH false
                                                     #end if
+                                                    ;
+    #if $output_sect.out_flex=="true" # 
+        cat output_flex > $out_flex_output; 
+    #end if #    
+    #if $output_sect.log=="true" # 
+        cat output_log > $output_log; 
+    #end if #
+    #if $output_sect.atom_terms=="true" # 
+        cat output_atom_terms > $atom_terms_output; 
+    #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
+    cat ligand_out.pdbqt > $output
     ]]>
     </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)"/>
+        <section name="input" title="Input" expanded="True">
+            <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)"/>
+        </section>
+        <section name="search_space" title="Search space" expanded="True">
+            <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 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">Do not use this option</option>
+                <option value="true">Use this option</option>
+            </param>
+        </section>
+        <section name="output_sect" title="Output" >
+            <param name="out_flex" type="select" label="Write flexible receptor residues" help="(--out_flex)">
+                <option value="false" selected="true" >No </option>
+                <option value="true" >Yes </option>
+            </param>        
+            <param name="log" type="select" label="Write log file" help="(--log)">
+                <option value="false" selected="true" >No </option>
+                <option value="true" >Yes </option>
+            </param>        
+            <param name="atom_terms" type="select" label="Write per-atom interaction term values" help="(--atom_terms)">
+                <option value="false" selected="true" >No </option>
+                <option value="true" >Yes </option>
+            </param>
+            <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">Do not use this option</option>
+                <option value="true">Use this option</option>
+            </param>
+        </section>
+        <section name="scoring_and_minimization" title="Scoring and minimization options" >
+            <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="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>
-
+            <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">Do not 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">Do not 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">Do not 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">Do not use this option</option>
+                <option value="true">Use this option</option>
+            </param>
+            <param name="minimize_iters" type="integer" value="0" label="number iterations of steepest descent; default scales with rotors and usually isn't sufficient for convergence" help="(--minimize_iters)"/>    
+            <param name="accurate_line" type="select" label="use accurate line search" help="(--accurate_line)">
+                <option value="false" selected="true">Do not 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">Do not 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" value="-1" label="Scales user_grid and functional scoring"  help="(--user_grid_lambda)"/>
+            <param name="print_terms" type="select" label="Print all available terms with default parameterizations" help="(--print_terms)">
+                <option value="false" selected="true">Do not 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">Do not use this option</option>
+                <option value="true">Use this option</option>
+            </param>
+        </section>
+        <section name="misc" title="Misc" >
+            <param name="cpu" type="integer" label="the number of CPUs to use (the default is to try to detect the number of CPUs or, failing that, use 1)" optional="true" help="(--cpu)"/>
+            <param name="seed" type="float" label="explicit random seed" optional="true" help="(--seed)"/>
+            <param name="exhaustiveness" type="integer" value="8" label="exhaustiveness of the global search (roughly proportional to time)" help="(--exhaustiveness)"/>
+            <param name="num_modes" type="integer" value="9" label="exhaustiveness of the global search (roughly proportional to time)" help="(--num_modes)">
+                <validator type="in_range" min="1"/>
+            </param>
+            <param name="energy_range" type="float" value="3" label="maximum energy difference between the best binding mode and the worst one displayed (kcal/mol)" help="(--energy_range)"/>
+            <param name="min_rmsd_filter" type="float" value="1" label="rmsd value used to filter final poses to remove redundancy" help="(--min_rmsd_filter)"/>
+            <param name="addH" type="select" label="automatically add hydrogens in ligands (on by default)" help="(--addH)">
+                <option value="false" >Do not use this option</option>
+                <option value="true" selected="true">Use this option</option>
+            </param>
+        </section>
     </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" />
+        <data name="output" format="txt" />
+        <data name="out_flex_output" format="txt" label="smina: flexible receptor residues">
+            <filter>output_sect['out_flex']=="true"</filter>
+        </data>
+        <data name="output_log" format="txt" label="smina: log file">
+            <filter>output_sect['log']=="true"</filter>
+        </data>
+        <data name="atom_terms_output" format="txt" label="smima: per-atom interaction term values">
+            <filter>output_sect['atom_terms']=="true"</filter>
+        </data>
     </outputs>
     <tests>
         <test>
@@ -249,7 +266,7 @@
             <param name="size_z" value="28" />
             <output name="stand_output" >
                 <assert_contents>
-                    <has_text_matching expression="Using random seed" />
+                    <has_text_matching expression="END" />
                 </assert_contents>
             </output>
         </test>
@@ -335,7 +352,20 @@
     </help>
     <citations>
         <citation type="bibtex">
-            @misc{url = {https://sourceforge.net/projects/smina/}, }
+            @article{Koes2013,
+              doi = {10.1021/ci300604z},
+              url = {http://dx.doi.org/10.1021/ci300604z},
+              year  = {2013},
+              month = {aug},
+              publisher = {American Chemical Society ({ACS})},
+              volume = {53},
+              number = {8},
+              pages = {1893--1904},
+              author = {David Ryan Koes and Matthew P. Baumgartner and Carlos J. Camacho},
+              title = {Lessons Learned in Empirical Scoring with smina from the {CSAR} 2011 Benchmarking Exercise},
+              journal = {Journal of Chemical Information and Modeling}
+            }
+            @misc{url = {https://sourceforge.net/projects/smina/}}
         </citation>
     </citations>
 </tool>