comparison ob_convert.xml @ 0:edb576416262 draft

planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 01da22e4184a5a6f6a3dd4631a7b9c31d1b6d502
author bgruening
date Sat, 20 May 2017 08:37:48 -0400
parents
children a9df9aae60bb
comparison
equal deleted inserted replaced
-1:000000000000 0:edb576416262
1 <tool id="openbabel_compound_convert" name="Compound Convert" version="@VERSION@.0">
2 <description>Converts various chemistry and molecular modeling data files</description>
3 <!--<parallelism method="multi" split_inputs="infile" split_mode="to_size" split_size="10000" shared_inputs="" merge_outputs="outfile"></parallelism>
4 We can't use that currently, because a few output-datatypes, like the fastsearch index do not support merging. We need to patch galaxy to not abort in such a case
5 and run the job in non-multi mode.
6 -->
7 <macros>
8 <import>macros.xml</import>
9 </macros>
10 <expand macro="requirements"/>
11 <command detect_errors="aggressive">
12 <![CDATA[
13
14 #set $format = $oformat.oformat_opts_selector
15
16 #if $format == "fs":
17 ## For the fastsearch index we need to copy the original molecule files to the composite datatype of obfs.
18 ## Because openbabel likes file extensions, we give the molecule file a proper file extension.
19 mkdir $outfile.files_path;
20 cp "${infile}" ${os.path.join($outfile.files_path, 'molecule.%s' % $infile.ext )};
21 #end if
22
23 obabel -i "${infile.ext}"
24
25 #if $format == "fs":
26 ## the fs filetype need his own symlink path, all others can take the original ones
27 ${os.path.join($outfile.files_path, 'molecule.%s' % $infile.ext )}
28 -o "$format" -e
29 -O ${os.path.join($outfile.files_path,'molecule.fs')}
30 #if int($oformat.fs_fold) > 0:
31 -xN$oformat.fs_fold
32 #end if
33 ${oformat.fs_fptype}
34 #else:
35 "${infile}"
36 -o "${format}"
37 -O "${outfile}"
38 -e
39 #end if
40
41 #if $format == 'cml':
42 $oformat.cml_array
43 $oformat.cml_cml1
44 $oformat.cml_aromatic
45 $oformat.cml_hydrogen
46 $oformat.cml_metadata
47 $oformat.cml_omit
48 $oformat.cml_continuous
49 $oformat.cml_properties
50 $oformat.gen2d
51 $oformat.gen3d
52 #elif $format == 'inchi':
53 ## Ignore less import warnings
54 -w
55 #if $oformat.inchi_truncate:
56 #set $truncate = ''.join( str( $oformat.inchi_truncate ).split( ',' ) )
57 -xT ${truncate}
58 #end if
59
60 #if $oformat.inchi_additional:
61 #set $additional = ' '.join( str( $oformat.inchi_additional ).split( ',' ) )
62 -xX '${additional}'
63 #end if
64
65 $oformat.inchi_key
66 $oformat.inchi_name
67 $oformat.inchi_unique
68 $oformat.inchi_unique_sort
69 #elif $format == 'can':
70 $oformat.can_exp_h
71 $oformat.can_iso_chi
72 $oformat.can_rad
73 $oformat.can_atomclass_out
74 #elif $format == 'smi':
75 $oformat.smi_exp_h
76 $oformat.smi_iso_chi
77 $oformat.smi_rad
78 $oformat.smi_atomclass_out
79 $oformat.smi_can
80 $oformat.smi_coordinates
81 #elif $format == 'sdf':
82 $oformat.sdf_exp_h
83 $oformat.sdf_no_prop
84 $oformat.sdf_wedge_bonds
85 $oformat.sdf_alias_out
86 $oformat.gen2d
87 $oformat.gen3d
88 #elif $format == 'fpt':
89 $oformat.fpt_fptype
90 #if int($oformat.fpt_fold) > 0:
91 $oformat.fpt_fold
92 #end if
93 $oformat.fpt_hex_multiple
94 $oformat.fpt_hex
95 $oformat.fpt_set
96 $oformat.fpt_unset
97 #elif $format == 'mol2':
98 $oformat.mol2_ignore_res
99 $oformat.gen2d
100 $oformat.gen3d
101 #end if
102
103 ## Uniqueness according to stripped InChI's or canonical SMILES
104 #if str($unique.unique_opts_selector):
105 #if $unique.unique_opts_selector == 'inchi':
106 #if $unique.truncate:
107 #set $truncate = ''.join( str( $unique.truncate ).split( ',' ) )
108 --unique $truncate
109 #end if
110 #else
111 --unique $unique.unique_opts_selector
112 #end if
113 #end if
114
115 #if str($appendtotitle).strip():
116 --addtotitle '${appendtotitle}'
117 #end if
118
119 $remove_h
120 $dative_bonds
121
122 #if float($ph) >= 0:
123 -p $ph
124 #end if
125
126 ]]>
127 </command>
128 <inputs>
129 <expand macro="infile_all_types"/>
130 <conditional name="oformat">
131 <param name="oformat_opts_selector" type="select" label="Output format">
132 <option value="acr">Carine ASCI Crystal</option>
133 <option value="alc">Alchemy format</option>
134 <option value="bgf">MSI BGF format</option>
135 <option value="box">Dock 3.5 Box format</option>
136 <option value="bs">Ball and Stick format</option>
137 <option value="c3d1">Chem3D Cartesian 1 format</option>
138 <option value="c3d2">Chem3D Cartesian 2 format</option>
139 <option value="caccrt">Cacao Cartesian format</option>
140 <option value="cache">CAChe MolStruct format</option>
141 <option value="cacint">Cacao Internal format</option>
142 <option value="can" selected="True">Canonical SMILES format (can)</option>
143 <option value="cdxml">ChemDraw CDXML format</option>
144 <option value="cht">Chemtool format</option>
145 <option value="cif">Crystallographic Information File</option>
146 <option value="cml">Chemical Markup Language (CML)</option>
147 <option value="cmlr">CML Reaction format</option>
148 <option value="com">Gaussian 98/03 Cartesian Input</option>
149 <option value="copy">Copies raw text</option>
150 <option value="crk2d">Chemical Resource Kit 2D diagram format</option>
151 <option value="crk3d">Chemical Resource Kit 3D format</option>
152 <option value="csr">Accelrys/MSI Quanta CSR format</option>
153 <option value="cssr">CSD CSSR format</option>
154 <option value="ct">ChemDraw Connection Table format</option>
155 <option value="dmol">DMol3 coordinates format</option>
156 <!--<option value="ent">Protein Data Bank format</option>
157 <option value="fa">FASTA format</option>-->
158 <option value="fasta">FASTA format</option>
159 <option value="feat">Feature format</option>
160 <option value="fh">Fenske-Hall Z-Matrix format</option>
161 <option value="fix">SMILES FIX format</option>
162 <option value="fpt">Fingerprint format (fpt)</option>
163 <option value="fract">Free Form Fractional format</option>
164 <option value="fs">Open Babel FastSearching database (fs)</option>
165 <!--<option value="fsa">FASTA format</option>-->
166 <option value="gamin">GAMESS Input</option>
167 <option value="gau">Gaussian 98/03 Cartesian Input</option>
168 <!--<option value="gjc">Gaussian 98/03 Cartesian Input</option>
169 <option value="gjf">Gaussian 98/03 Cartesian Input</option>-->
170 <option value="gpr">Ghemical format</option>
171 <option value="gr96">GROMOS96 format</option>
172 <option value="hin">HyperChem HIN format</option>
173 <option value="inchi">IUPAC InChI</option>
174 <option value="inp">GAMESS Input</option>
175 <option value="jin">Jaguar input format</option>
176 <!--<option value="mdl">MDL MOL format (mol)</option>-->
177 <option value="mmd">MacroModel format</option>
178 <option value="mmod">MacroModel format</option>
179 <!--<option value="mol">MDL MOL format (mol)</option> use SDF-->
180 <option value="mol2">Sybyl Mol2 format (mol2)</option>
181 <option value="molreport">Open Babel molecule report</option>
182 <option value="mop">MOPAC Cartesian format</option>
183 <option value="mopcrt">MOPAC Cartesian format</option>
184 <option value="mopin">MOPAC Internal</option>
185 <option value="mpc">MOPAC Cartesian format</option>
186 <option value="mpd">Sybyl descriptor format</option>
187 <option value="mpqcin">MPQC simplified input format</option>
188 <option value="nw">NWChem input format</option>
189 <option value="pcm">PCModel format</option>
190 <option value="pdb">Protein Data Bank format (pdb)</option>
191 <option value="pov">POV-Ray input format</option>
192 <option value="pqs">Parallel Quantum Solutions format</option>
193 <option value="qcin">Q-Chem input format</option>
194 <option value="report">Open Babel report format</option>
195 <option value="rxn">MDL RXN format</option>
196 <!--<option value="sd">MDL MOL format</option>-->
197 <option value="sdf">MDL MOL format (sdf, mol)</option>
198 <option value="smi">SMILES format (smi)</option>
199 <!--<option value="sy2">Sybyl Mol2 format</option>-->
200 <option value="tdd">Thermo format</option>
201 <option value="test">Test format</option>
202 <option value="therm">Thermo format</option>
203 <option value="tmol">TurboMole Coordinate format</option>
204 <option value="txyz">Tinker MM2 format</option>
205 <option value="unixyz">UniChem XYZ format</option>
206 <option value="vmol">ViewMol format</option>
207 <option value="xed">XED format</option>
208 <option value="xyz">XYZ cartesian coordinates format</option>
209 <option value="yob">YASARA.org YOB format</option>
210 <option value="zin">ZINDO input format</option>
211 </param>
212 <when value="acr" />
213 <when value="alc" />
214 <when value="bgf" />
215 <when value="box" />
216 <when value="bs" />
217 <when value="c3d1" />
218 <when value="c3d2" />
219 <when value="caccrt" />
220 <when value="cache" />
221 <when value="cacint" />
222 <when value="can">
223 <param name="can_exp_h" type="boolean" label="Output explicit hydrogens as such (-xh)" truevalue="-xh" falsevalue="" checked="false" />
224 <param name="can_iso_chi" type="boolean" label="Do not include isotopic or chiral markings (-xi)" truevalue="-xi" falsevalue="" checked="false" />
225 <param name="can_rad" type="boolean" label="Radicals lower case eg ethyl is Cc (-xr)" truevalue="-xr" falsevalue="" checked="false" />
226 <param name="can_atomclass_out" type="boolean" label="Output atomclass like [C:2] (-xa)" truevalue="-xa" falsevalue="" checked="false" />
227 </when>
228 <when value="cdxml" />
229 <when value="cht" />
230 <when value="cif" />
231 <when value="cml">
232 <param name="cml_cml1" type="boolean" label="convert to CML 1 (rather than CML 2) (-x1)" truevalue="-x1" falsevalue="" checked="false" />
233 <param name="cml_array" type="boolean" label="write array format for atoms and bonds (-xa)" truevalue="-xa" falsevalue="" checked="false" />
234 <param name="cml_aromatic" type="boolean" label="write aromatic bonds as such, not Kekule form (-xA)" truevalue="-xA" falsevalue="" checked="false" />
235 <param name="cml_hydrogen" type="boolean" label="use hydrogen Count for all hydrogens (-xh)" truevalue="-xh" falsevalue="" checked="false" />
236 <param name="cml_metadata" type="boolean" label="write metadata (-xm)" truevalue="-xm" falsevalue="" checked="false" />
237 <param name="cml_omit" type="boolean" label="omit XML and namespace declarations (-xx)" truevalue="-xx" falsevalue="" checked="false" />
238 <param name="cml_continuous" type="boolean" label="continuous output: no formatting (-xc)" truevalue="-xc" falsevalue="" checked="false" />
239 <param name="cml_properties" type="boolean" label="write properties (-xp)" truevalue="-xp" falsevalue="" checked="false" />
240 <expand macro="2D_3D_opts" />
241 </when>
242 <when value="cmlr" />
243 <when value="com" />
244 <when value="copy" />
245 <when value="crk2d" />
246 <when value="crk3d" />
247 <when value="csr" />
248 <when value="cssr" />
249 <when value="ct" />
250 <when value="dmol" />
251 <when value="fasta" />
252 <when value="feat" />
253 <when value="fh" />
254 <when value="fix" />
255 <when value="fpt">
256 <param name="fpt_fptype" type="select" label="Fingerprint type">
257 <option value="-xfFP2" selected="True">FP2</option>
258 <option value="-xfFP3">FP3</option>
259 <option value="-xfFP4">FP4</option>
260 <option value="-xfMACCS">MACCS</option>
261 </param>
262 <param name="fpt_fold" type="integer" value="0" label="Fold fingerprint to the number of specifed bits (32, 64, 128, etc.)" help="Use zero for default">
263 <validator type="in_range" min="0" />
264 </param>
265 <param name="fpt_hex_multiple" type="boolean" label="hex output when multiple molecules (-xh)" truevalue="-xh" falsevalue="" checked="false" />
266 <param name="fpt_hex" type="boolean" label="hex output only (-xo)" truevalue="-xo" falsevalue="" checked="false" />
267 <param name="fpt_set" type="boolean" label="describe each set bit (-xs)" truevalue="-xs" falsevalue="" checked="false" />
268 <param name="fpt_unset" type="boolean" label="describe each unset bit (-xu)" truevalue="-xu" falsevalue="" checked="false" />
269 </when>
270 <when value="fract" />
271 <when value="fs">
272 <param name="fs_fptype" type="select" label="Fingerprint type">
273 <option value="-xfFP2" selected="True">FP2</option>
274 <option value="-xfFP3">FP3</option>
275 <option value="-xfFP4">FP4</option>
276 <option value="-xfMACCS">MACCS</option>
277 </param>
278 <param name="fs_fold" type="integer" value="0" label="Fold fingerprint to the number of specifed bits (32, 64, 128, etc.)" help="Use zero for default">
279 <validator type="in_range" min="0" />
280 </param>
281 </when>
282 <when value="gamin" />
283 <when value="gau" />
284 <when value="gpr" />
285 <when value="gr96" />
286 <when value="hin" />
287 <when value="inchi">
288 <param name="inchi_key" type="boolean" label="output InChIKey only (-xK)" truevalue="-xK" falsevalue="" checked="false" />
289 <param name="inchi_name" type="boolean" label="add molecule name after InChI (-xt)" truevalue="-xt" falsevalue="" checked="true" />
290 <param name="inchi_unique" type="boolean" label="output only unique molecules (-xu)" truevalue="-xu" falsevalue="" checked="false" />
291 <param name="inchi_unique_sort" type="boolean" label="output only unique molecules and sort them (-xU)" truevalue="-xU" falsevalue="" checked="false" />
292 <param name="inchi_truncate" type="select" multiple="True" display="checkboxes" label="truncate InChI according to various parameters">
293 <option value="/formula">formula only</option>
294 <option value="/connect">formula and connectivity only</option>
295 <option value="/nostereo">ignore E/Z and sp3 stereochemistry</option>
296 <option value="/sp3">ignore sp3 stereochemistry</option>
297 <option value="/noEZ">ignore E/Z steroeochemistry</option>
298 <option value="/nochg">ignore charge and protonation</option>
299 <option value="/noiso">ignore isotopes</option>
300 </param>
301
302 <param name="inchi_additional" type="select" multiple="True" display="checkboxes" label="Additional InChI options" help="For more information please see the InChI documentation (http://www.inchi-trust.org/fileadmin/user_upload/html/inchifaq/inchi-faq.html).">
303 <option value="NEWPSOFF">Narrow End of Wedge Points to Stereo is OFF (NEWPSOFF - stdInChI)</option>
304 <option value="DoNotAddH">Skip the addition of hydrogen atoms (DoNotAddH - stdInChI)</option>
305 <option value="SNon">Exclude stereo (SNon - stdInChI)</option>
306 <option value="SRel">Relative stereo (SRel)</option>
307 <option value="SRac">Racemic stereo (SRac)</option>
308 <option value="SUCF">Use Chiral Flag (SUCF)</option>
309 <option value="ChiralFlagON">Set Chiral Flag (ChrialFlagON)</option>
310 <option value="ChiralFlagOFF">Set Not-Chiral Flag (ChrialFlagOFF)</option>
311 <option value="SUU">Include omitted unknown/undefined stereo (SUU)</option>
312 <option value="SLUUD">Stereo labels for "unknown" and "undefined" are different, 'u' and '?', respectively (SLUUD) </option>
313 <option value="FixedH">Mobile H Perception Off (FixedH)</option>
314 <option value="RecMet">Include reconnected bond to metal results (RecMet)</option>
315 <option value="KET">Keto-enol tautomerism (KET)</option>
316 <option value="15T">1,5-tautomerism (15T)</option>
317 </param>
318 </when>
319 <when value="inp" />
320 <when value="jin" />
321 <when value="mmd" />
322 <when value="mmod" />
323 <when value="mol2">
324 <param name="mol2_ignore_res" type="boolean" label="Output ignores residue information for ligands" help="(-xl)"
325 truevalue="-xl" falsevalue="" checked="false" />
326 <expand macro="2D_3D_opts" />
327 </when>
328 <when value="molreport" />
329 <when value="mop" />
330 <when value="mopcrt" />
331 <when value="mopin" />
332 <when value="mpc" />
333 <when value="mpd" />
334 <when value="mpqcin" />
335 <when value="nw" />
336 <when value="pcm" />
337 <when value="pdb" />
338 <when value="pov" />
339 <when value="pqs" />
340 <when value="qcin" />
341 <when value="report" />
342 <when value="rxn" />
343 <when value="sdf">
344 <param name="sdf_exp_h" type="boolean" truevalue="-x3" falsevalue="" checked="false"
345 label="output V3000 not V2000 (used for >999 atoms/bonds)" help="(-x3)" />
346 <param name="sdf_no_prop" type="boolean" truevalue="-xm" falsevalue="" checked="false"
347 label="write no properties" help="(-xm)" />
348 <param name="sdf_wedge_bonds" type="boolean" truevalue="-xw" falsevalue="" checked="false"
349 label="use wedge and hash bonds from input (2D structures only)" help="(-xw)"/>
350 <param name="sdf_alias_out" type="boolean" truevalue="-xA" falsevalue="" checked="false"
351 label="output in Alias form, e.g. Ph" help="(-xA)" />
352 <expand macro="2D_3D_opts" />
353 </when>
354 <when value="smi">
355 <param name="smi_exp_h" type="boolean" label="Output explicit hydrogens as such" help="(-xh)"
356 truevalue="-xh" falsevalue="" checked="false" />
357 <param name="smi_iso_chi" type="boolean" label="Do not include isotopic or chiral markings" help="(-xi)"
358 truevalue="-xi" falsevalue="" checked="false" />
359 <param name="smi_rad" type="boolean" label="Radicals lower case eg ethyl is Cc" help="(-xr)" truevalue="-xr"
360 falsevalue="" checked="false" />
361 <param name="smi_atomclass_out" type="boolean" label="Output atomclass like [C:2]" help="(-xa)"
362 truevalue="-xa" falsevalue="" checked="false" />
363 <param name="smi_can" type="boolean" label="Output in canonical form" help="(-xc)"
364 truevalue="-xc" falsevalue="" checked="false" />
365 <param name="smi_coordinates" type="boolean" label="append X/Y coordinates in canonical-SMILES order" help="(-xx)"
366 truevalue="-xx" falsevalue="" checked="false" />
367 </when>
368 <when value="tdd" />
369 <when value="test" />
370 <when value="therm" />
371 <when value="tmol" />
372 <when value="txyz" />
373 <when value="unixyz" />
374 <when value="vmol" />
375 <when value="xed" />
376 <when value="xyz" />
377 <when value="yob" />
378 <when value="zin" />
379 </conditional>
380
381 <!-- Options for all formats.-->
382 <param name="remove_h" type="boolean" truevalue="-d" falsevalue=""
383 label="Delete hydrogen atoms, make all hydrogen implicit" help="(-d)" />
384 <param name="ph" type="float" value="-1" label="Add hydrogens appropriate for pH" help="-1 means deactivated (-p)"/>
385 <param name="dative_bonds" type="boolean" truevalue="-b" falsevalue=""
386 label="Convert dative bonds" help="e.g. [N+]([O-])=O to N(=O)=O (-b)" />
387 <param name="appendtotitle" type="text" value="" label="Append the specified text after each molecule title"/>
388
389 <!-- Uniqueness -->
390 <conditional name="unique">
391 <param name="unique_opts_selector" type="select" label="Uniqueness according to">
392 <option value="" selected="True">No unique filter</option>
393 <option value="inchi">InChI</option>
394 <option value="cansmi">canonical SMILES with stereochemical information</option>
395 <option value="cansmiNS">canonical SMILES without stereochemical information</option>
396 <option value="title">title</option>
397 </param>
398 <when value="" />
399 <when value="cansmi" />
400 <when value="cansmiNS" />
401 <when value="title" />
402 <when value="inchi">
403 <param name="truncate" type="select" multiple="True" display="checkboxes" label="Uniqueness defined as truncated InChI">
404 <option value="/formula">formula only</option>
405 <option value="/connect">formula and connectivity only</option>
406 <option value="/nostereo">ignore E/Z and sp3 stereochemistry</option>
407 <option value="/sp3">ignore sp3 stereochemistry</option>
408 <option value="/noEZ">ignore E/Z steroeochemistry</option>
409 <option value="/nochg">ignore charge and protonation</option>
410 <option value="/noiso">ignore isotopes</option>
411 </param>
412 </when>
413 </conditional>
414 </inputs>
415
416 <outputs>
417 <data name="outfile" format="text" label="Convert to ${oformat.oformat_opts_selector} from ${on_string}">
418 <change_format>
419 <when input="oformat.oformat_opts_selector" value="sdf" format="sdf"/>
420 <when input="oformat.oformat_opts_selector" value="can" format="smi"/>
421 <when input="oformat.oformat_opts_selector" value="smi" format="smi"/>
422 <when input="oformat.oformat_opts_selector" value="mol2" format="mol2"/>
423 <when input="oformat.oformat_opts_selector" value="inchi" format="inchi"/>
424 <when input="oformat.oformat_opts_selector" value="cml" format="cml"/>
425 <when input="oformat.oformat_opts_selector" value="mol" format="mol"/>
426 <when input="oformat.oformat_opts_selector" value="pdb" format="pdb"/>
427 <when input="oformat.oformat_opts_selector" value="fs" format="obfs"/>
428 </change_format>
429 </data>
430 </outputs>
431 <tests>
432 <test>
433 <param name="infile" ftype="sdf" value="CID_2244.sdf"/>
434 <param name="oformat_opts_selector" value="cml" />
435 <output name="outfile" ftype="cml" file="ob_convert_on_CID2244.cml" />
436 </test>
437 <test>
438 <param name="infile" ftype="sdf" value="CID_2244.sdf"/>
439 <param name="oformat_opts_selector" value="fs" />
440 <output name="outfile" compare="contains" file="ob_convert_on_CID2244_obfs.txt" ftype="obfs">
441 <extra_files type="file" value="molecule.sdf" name="molecule.sdf" />
442 <extra_files type="file" value="molecule.fs" name="molecule.fs" compare="sim_size" />
443 </output>
444 </test>
445 <test>
446 <param name="infile" ftype="sdf" value="CID_2244.sdf"/>
447 <param name="oformat_opts_selector" value="inchi" />
448 <output name="outfile" ftype="inchi" file="ob_convert_on_CID2244.inchi" />
449 </test>
450 <test>
451 <param name="infile" ftype="sdf" value="CID_2244.sdf"/>
452 <param name="oformat_opts_selector" value="pdb" />
453 <output name="outfile" ftype="pdb" file="ob_convert_on_CID2244.pdb" lines_diff="4" />
454 </test>
455 <test>
456 <param name="infile" ftype="sdf" value="CID_2244.sdf"/>
457 <param name="oformat_opts_selector" value="can" />
458 <output name="outfile" ftype="smi" file="ob_convert_on_CID2244.smi" />
459 </test>
460 <test>
461 <param name="infile" ftype="sdf" value="CID_2244.sdf"/>
462 <param name="oformat_opts_selector" value="sdf" />
463 <output name="outfile" ftype="sdf" file="ob_convert_on_CID2244.sdf" lines_diff="2"/>
464 </test>
465 </tests>
466 <help>
467 <![CDATA[
468
469 .. class:: infomark
470
471 **What this tool does**
472
473 The compound converter joins several `Open Babel`_ command prompt converters in an easy to use tool. It converts various chemistry and moleculare modeling data files.
474 The output format can be specified as well as several parameters. Some parameters are available for all tools (e.g. protonation state and pH)
475 others are specific for a given output format (e.g. exclude isotopes for conversion to canSMI).
476
477 -----
478
479 .. class:: infomark
480
481 **Output**
482
483 Can be specified manually.
484
485
486 ]]>
487 </help>
488 <expand macro="citations"/>
489 </tool>