0
|
1 <tool id="packmol_daimoners" name="PACKMOL daimoners version" version="18.169.1">
|
|
2 <description>- initial configurations for molecular dynamics simulations by packing optimization</description>
|
|
3 <macros>
|
|
4 <import>macros_packmol.xml</import>
|
|
5 </macros>
|
|
6 <requirements>
|
|
7 <requirement type="package" version="18.169">packmol</requirement>
|
|
8 </requirements>
|
|
9 <command detect_errors="exit_code">
|
|
10 <![CDATA[
|
|
11 python3 '$packmol_script' '$inputs' &&
|
|
12 packmol < '$parameteroutfile'
|
|
13 ]]>
|
|
14 </command>
|
|
15 <configfiles>
|
|
16 <inputs name="inputs" />
|
|
17 <configfile name="packmol_script"><![CDATA[
|
|
18
|
|
19 import os
|
|
20 import sys
|
|
21 import json
|
|
22
|
|
23 from jinja2 import Environment, FileSystemLoader
|
|
24
|
|
25 input_json_path = sys.argv[1]
|
|
26 params = json.load(open(input_json_path, "r"))
|
|
27
|
|
28 # get the inputs
|
|
29 input_iter = []
|
|
30 #for $i, $s in enumerate( $packmol_inputs ) ## enumerate( $packmol_format.packmol_inputs )
|
|
31 pmfile_index = $i
|
|
32 pmfile_path = "${s.input.file_name}"
|
|
33 input_iter.append(pmfile_path)
|
|
34 params["packmol_inputs"][pmfile_index]["file"] = pmfile_path ## params["packmol_format"]["packmol_inputs"]
|
|
35 params["packmol_inputs"][pmfile_index]["datasetname"] = "${s.input.name}" ## params["packmol_format"]["packmol_inputs"]
|
|
36 #end for
|
|
37
|
|
38 params["outfile"] = "$outfile"
|
|
39
|
|
40 currentpath = "$__tool_directory__" # should work generally
|
|
41 template_environment = Environment(loader=FileSystemLoader(currentpath),lstrip_blocks=True, trim_blocks=True)
|
|
42 template = template_environment.get_template('template.j2')
|
|
43 print(params)
|
|
44
|
|
45 with open("$parameteroutfile",'w+') as f:
|
|
46 f.write(template.render(params))
|
|
47
|
|
48 ]]>
|
|
49 </configfile>
|
|
50 </configfiles>
|
|
51 <inputs>
|
|
52
|
|
53 <!-- <conditional name="packmol_format">
|
|
54 <param name="selected_format" type="select" label="Select a file format:">
|
|
55 <option value="pdb" selected="true">pdb</option>
|
|
56 <option value="xyz">xyz</option>
|
|
57 <option value="tinker">tinker</option>
|
|
58 <option value="moldy">moldy</option>
|
|
59 </param>
|
|
60 <when value="pdb">
|
|
61 <expand macro="multiple_input" name="packmol_inputs" format="pdb" label="pdb input with molecule type" help_text="Select a pdb file in .pdb format"/>
|
|
62 </when>
|
|
63 <when value="xyz">
|
|
64 <expand macro="multiple_input" name="packmol_inputs" format="xyz" label="xyz input with molecule type" help_text="Select a xyz file in .xyz format"/>
|
|
65 </when>
|
|
66 <when value="tinker">
|
|
67 <expand macro="multiple_input" name="packmol_inputs" format="tinker" label="tinker input with molecule type" help_text="Select a tinker file in .tinker format"/>
|
|
68 </when>
|
|
69 <when value="moldy">
|
|
70 <expand macro="multiple_input" name="packmol_inputs" format="moldy" label="moldy input with molecule type" help_text="Select a moldy file in .moldy format"/>
|
|
71 </when>
|
|
72 </conditional> -->
|
|
73 <expand macro="multiple_input" name="packmol_inputs" format="pdb" label="PDB input with molecule type" help_text="Select a PDB file in .pdb format"/>
|
|
74 <section name="allparams" title="General parameters" expanded="false">
|
|
75 <param name="tolerance" type="float" value="2.0" label="Distance tolerance" min="0.0" max="100.0"/>
|
|
76 <param name="nloop" type="integer" value="20" label="Maximum number of optimisation loops" min="1" max="10000"/>
|
|
77 <param name="maxit" type="integer" value="20" label="Maximum number of gencan iterations per loop" min="1" max="10000"/>
|
|
78 <param name="seed" type="integer" value="-1" label="Random number generator seed, default of -1 uses the computer time to set the seed" />
|
|
79 </section>
|
|
80 </inputs>
|
|
81 <outputs>
|
|
82 <data format="pdb" name="outfile" label="${tool.name}: structure output">
|
|
83 <!-- <change_format>
|
|
84 <when input="selected_format" value="pdb" format="pdb"/>
|
|
85 <when input="selected_format" value="xyz" format="xyz"/>
|
|
86 <when input="selected_format" value="tinker" format="tinker"/>
|
|
87 <when input="selected_format" value="moldy" format="moldy"/>
|
|
88 </change_format> -->
|
|
89 </data>
|
|
90 <data format="txt" name="parameteroutfile" label="${tool.name}: parameter output"/>
|
|
91 </outputs>
|
|
92 <tests>
|
|
93 <test>
|
|
94 <param name="selected_format" value="pdb"/>
|
|
95 <param name="packmol_inputs_0|input" value="water.pdb" ftype="pdb"/>
|
|
96 <param name="allparams.seed" value="101"/>
|
|
97 <output name="outfile" file="packmol_outfile1.pdb" compare="sim_size" delta="100000">
|
|
98 <assert_contents>
|
|
99 <has_text text="HETATM 300 O HOH"/>
|
|
100 </assert_contents>
|
|
101 </output>
|
|
102 <output name="parameteroutfile" file="packmol_parameteroutfile_1.txt" compare="diff" lines_diff="6"/>
|
|
103 </test>
|
|
104 <test>
|
|
105 <param name="selected_format" value="pdb"/>
|
|
106 <param name="packmol_inputs_0|input" value="water.pdb" ftype="pdb"/>
|
|
107 <param name="packmol_inputs_1|input" value="urea.pdb" ftype="pdb"/>
|
|
108 <param name="packmol_inputs_0|structureparams|number" value="1000"/>
|
|
109 <param name="packmol_inputs_1|structureparams|number" value="400"/>
|
|
110 <param name="packmol_inputs_0|structureparams|constraints_repeat_0|constraints|constraint" value="box"/>
|
|
111 <param name="packmol_inputs_0|structureparams|constraints_repeat_0|constraints|xmax" value="40.0"/>
|
|
112 <param name="packmol_inputs_0|structureparams|constraints_repeat_0|constraints|ymax" value="40.0"/>
|
|
113 <param name="packmol_inputs_0|structureparams|constraints_repeat_0|constraints|zmax" value="40.0"/>
|
|
114 <param name="packmol_inputs_1|structureparams|constraints_repeat_0|constraints|constraint" value="box"/>
|
|
115 <param name="packmol_inputs_1|structureparams|constraints_repeat_0|constraints|xmax" value="40.0"/>
|
|
116 <param name="packmol_inputs_1|structureparams|constraints_repeat_0|constraints|ymax" value="40.0"/>
|
|
117 <param name="packmol_inputs_1|structureparams|constraints_repeat_0|constraints|zmax" value="40.0"/>
|
|
118 <param name="allparams.seed" value="-1"/>
|
|
119 <output name="outfile" file="packmol_outfile2.pdb" compare="sim_size" delta="100000">
|
|
120 <assert_contents>
|
|
121 <has_text text="HETATM 3000 O HOH"/>
|
|
122 <has_text text="HETATM 6200 H 2 B"/>
|
|
123 </assert_contents>
|
|
124 </output>
|
|
125 <output name="parameteroutfile" file="packmol_parameteroutfile_2.txt" compare="diff" lines_diff="6"/>
|
|
126 </test>
|
|
127 </tests>
|
|
128 <help><![CDATA[
|
|
129 .. class:: infomark
|
|
130
|
|
131 **What it does**
|
|
132
|
|
133 Packmol creates initial MD configurations from input molecules - for example, creating a water and urea mixture.
|
|
134
|
|
135 .. class:: infomark
|
|
136
|
|
137 **How it works**
|
|
138
|
|
139 - Select a molecule file type e.g. pdb, xyz
|
|
140 - Select a single molecule from your history (can select multiple)
|
|
141 - For each molecule:
|
|
142 - choose how many molecules to create (number variable)
|
|
143 - optionally choose:
|
|
144 - molecular radius
|
|
145 - how to number the molecules (resnumber variable)
|
|
146 - choose one or more placement constraint(s). Each constraint has different parameters:
|
|
147 - for example, specify placement inside a cube of size 40 Angstroms placed at the origin
|
|
148 - all units are in Angstroms for distances and degrees for angles
|
|
149
|
|
150 .. class:: infomark
|
|
151
|
|
152 **Outputs created**
|
|
153
|
|
154 - A pdb file; view this in Galaxy by clicking on the 'visualize' icon and choosing a viewer. The NGLViewer works well for small molecules.
|
|
155 - A packmol input script (for debugging and repeatability)
|
|
156
|
|
157 .. class:: infomark
|
|
158
|
|
159 **User guide and documentation**
|
|
160
|
|
161 - Packmol `userguide`_
|
|
162 - Calculating the number of molecules using the `volume guesser`_
|
|
163
|
|
164 .. class:: infomark
|
|
165
|
|
166 **Known issues**
|
|
167
|
|
168 - fixed constraint only allows 1 atom but this is not set for the user. The user has to set this parameter. The job may fail.
|
|
169
|
|
170 .. _`userguide`: http://m3g.iqm.unicamp.br/packmol/userguide.shtml#more
|
|
171 .. _`volume guesser`: http://m3g.iqm.unicamp.br/packmol/utilities.shtml
|
|
172
|
|
173 ]]>
|
|
174 </help>
|
|
175 <citations>
|
|
176 <citation type="doi">10.1002/jcc.21224</citation>
|
|
177 </citations>
|
|
178 </tool>
|