diff tleap.xml @ 0:3de1359b86cc draft default tip

"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit def3e8d4a983ab47ceedde678f585b54c79bb8d1"
author chemteam
date Thu, 27 Jan 2022 17:17:54 +0000
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tleap.xml	Thu Jan 27 17:17:54 2022 +0000
@@ -0,0 +1,1981 @@
+<tool id="tleap" name="Build tLEaP" version="@TOOL_VERSION@+galaxy@GALAXY_VERSION@">
+     <description>interactively build and run tLEaP files to set up systems with AmberTools</description>
+     <macros>
+          <import>macros.xml</import>
+          <token name="@GALAXY_VERSION@">0</token>
+     </macros>
+     <expand macro="requirements" />
+     <version_command>tleap -h</version_command>
+     <command detect_errors="exit_code"><![CDATA[
+        cp '${tleap_in}' '${output_tleap_in}' && mkdir out && tleap -f '${tleap_in}' > '${output_tleap}'
+    ]]>     </command>
+     <configfiles>
+          <configfile name="tleap_in"><![CDATA[#for $i, $cmd in $enumerate($tleap_cmds):
+#if $cmd.tleap_cond.tleap_cmd == "add":
+add ${cmd.tleap_cond.arg_a} ${cmd.tleap_cond.arg_b}
+#elif $cmd.tleap_cond.tleap_cmd == "addAtomTypes":
+addAtomTypes {
+#for $atmvars in $cmd.tleap_cond.atomtypevars:
+             { "${atmvars.arg_addAtomTypes_var1}" "${atmvars.arg_addAtomTypes_var2}" "${atmvars.arg_addAtomTypes_var3}" }
+#end for
+             }
+#elif $cmd.tleap_cond.tleap_cmd == "addH":
+addH ${cmd.tleap_cond.arg_obj}
+#elif $cmd.tleap_cond.tleap_cmd == "addIons":
+addIons ${cmd.tleap_cond.arg_variable} ${cmd.tleap_cond.arg_ion1} ${cmd.tleap_cond.arg__ion1}
+addIons ${cmd.tleap_cond.arg_variable} ${cmd.tleap_cond.arg_ion2} ${cmd.tleap_cond.arg__ion2}
+#elif $cmd.tleap_cond.tleap_cmd == "addIons2":
+addIons2 ${cmd.tleap_cond.arg_variable} ${cmd.tleap_cond.arg_ion1} ${cmd.tleap_cond.arg__ion1} ${cmd.tleap_cond.arg_ion2} ${cmd.tleap_cond.arg__ion2}
+#elif $cmd.tleap_cond.tleap_cmd == "addIonsRand":
+addIonsRand ${cmd.tleap_cond.arg_variable} ${cmd.tleap_cond.arg_ion1} ${cmd.tleap_cond.arg__ion1} ${cmd.tleap_cond.arg_ion2} ${cmd.tleap_cond.arg__ion2} ${cmd.tleap_cond.arg_separation}
+#elif $cmd.tleap_cond.tleap_cmd == "addPath":
+addPath ${cmd.tleap_cond.arg_path}
+#elif $cmd.tleap_cond.tleap_cmd == "addPdbAtomMap":
+addPdbAtomMap {
+#for $atmmapvars in $cmd.tleap_cond.AtomMapList:
+             {$atmmapvars.oddpdbname $atmmapvars.libpdbname}
+#end for
+             }
+#elif $cmd.tleap_cond.tleap_cmd == "addPdbResMap":
+addPdbResMap {
+#for $atmresmapvars in $cmd.tleap_cond.resmap:
+             {$atmresmapvars.terminalflag "$atmresmapvars.pdbname" "$atmresmapvars.leapvar"}
+#end for
+             }
+#elif $cmd.tleap_cond.tleap_cmd == "alignAxes":
+alignAxes ${cmd.tleap_cond.arg_unit}
+#elif $cmd.tleap_cond.tleap_cmd == "bond":
+bond ${cmd.tleap_cond.arg_atom1} ${cmd.tleap_cond.arg_atom2} ${cmd.tleap_cond.arg_order}
+#elif $cmd.tleap_cond.tleap_cmd == "bondByDistance":
+bondByDistance ${cmd.tleap_cond.arg_container} ${cmd.tleap_cond.arg_maxBond}
+#elif $cmd.tleap_cond.tleap_cmd == "center":
+center ${cmd.tleap_cond.arg_container}
+#elif $cmd.tleap_cond.tleap_cmd == "charge":
+charge ${cmd.tleap_cond.arg_container}
+#elif $cmd.tleap_cond.tleap_cmd == "check":
+check ${cmd.tleap_cond.arg_unit} ${cmd.tleap_cond.arg_parmset} 
+#elif $cmd.tleap_cond.tleap_cmd == "clearPdbAtomMap":
+clearPdbAtomMap
+#elif $cmd.tleap_cond.tleap_cmd == "clearPdbResMap":
+clearPdbResMap
+#elif $cmd.tleap_cond.tleap_cmd == "clearVariables":
+clearVariables { ${cmd.tleap_cond.arg_list} }
+#elif $cmd.tleap_cond.tleap_cmd == "combine":
+#if $cmd.tleap_cond.combine_assign:
+${cmd.tleap_cond.combine_assign} = combine { ${cmd.tleap_cond.arg_list} }h
+#else:
+combine ${cmd.tleap_cond.arg_list}
+#end if
+#elif $cmd.tleap_cond.tleap_cmd == "copy":
+#if $cmd.tleap_cond.copy_assign:
+${cmd.tleap_cond.copy_assign} = copy ${cmd.tleap_cond.arg_variable}
+#else:
+copy ${cmd.tleap_cond.arg_variable}
+#end if
+#elif $cmd.tleap_cond.tleap_cmd == "createAtom":
+#if $cmd.tleap_cond.createVar_assign:
+${cmd.tleap_cond.createVar_assign} = createAtom ${cmd.tleap_cond.arg_name} ${cmd.tleap_cond.arg_type} ${cmd.tleap_cond.arg_charge}
+#else:
+createAtom ${cmd.tleap_cond.arg_name} ${cmd.tleap_cond.arg_type} ${cmd.tleap_cond.arg_charge}
+#end if
+#elif $cmd.tleap_cond.tleap_cmd == "createParmset":
+#if $cmd.tleap_cond.createVar_assign:
+${cmd.tleap_cond.createVar_assign} = createParmset ${cmd.tleap_cond.arg_name}
+#else:
+createParmset ${cmd.tleap_cond.arg_name}
+#end if
+#elif $cmd.tleap_cond.tleap_cmd == "createResidue":
+#if $cmd.tleap_cond.createVar_assign:
+${cmd.tleap_cond.createVar_assign} = createResidue ${cmd.tleap_cond.arg_name}
+#else:
+createResidue ${cmd.tleap_cond.arg_name}
+#end if
+#elif $cmd.tleap_cond.tleap_cmd == "createUnit":
+#if $cmd.tleap_cond.createVar_assign:
+${cmd.tleap_cond.createVar_assign} = createUnit ${cmd.tleap_cond.arg_name}
+#else:
+createUnit ${cmd.tleap_cond.arg_name}
+#end if
+#elif $cmd.tleap_cond.tleap_cmd == "crossLink":
+crossLink ${cmd.tleap_cond.arg_res1} ${cmd.tleap_cond.arg_conn1} ${cmd.tleap_cond.arg_res2} ${cmd.tleap_cond.arg_conn2}
+#elif $cmd.tleap_cond.tleap_cmd == "debugOff":
+debugOff ${cmd.tleap_cond.arg_filename}
+#elif $cmd.tleap_cond.tleap_cmd == "debugOn":
+debugOn ${cmd.tleap_cond.arg_filename}
+#elif $cmd.tleap_cond.tleap_cmd == "debugStatus":
+debugStatus
+#elif $cmd.tleap_cond.tleap_cmd == "deleteBond":
+deleteBond ${cmd.tleap_cond.arg_atom1} ${cmd.tleap_cond.arg_atom2}
+#elif $cmd.tleap_cond.tleap_cmd == "deleteOffLibEntry":
+deleteOffLibEntry ${cmd.tleap_cond.arg_library} ${cmd.tleap_cond.arg_entry}
+#elif $cmd.tleap_cond.tleap_cmd == "deleteRestraint":
+deleteRestraint ${cmd.tleap_cond.arg_unit} ${cmd.tleap_cond.arg_a} ${cmd.tleap_cond.arg_b} ${cmd.tleap_cond.arg_c} ${cmd.tleap_cond.arg_d}
+#elif $cmd.tleap_cond.tleap_cmd == "desc":
+desc ${cmd.tleap_cond.arg_unit}
+#elif $cmd.tleap_cond.tleap_cmd == "deSelect":
+deSelect ${cmd.tleap_cond.arg_obj}
+#elif $cmd.tleap_cond.tleap_cmd == "displayPdbAtomMap":
+displayPdbAtomMap
+#elif $cmd.tleap_cond.tleap_cmd == "displayPdbResMap":
+displayPdbResMap
+#elif $cmd.tleap_cond.tleap_cmd == "edit":
+edit ${cmd.tleap_cond.arg_unit_parmset}
+#elif $cmd.tleap_cond.tleap_cmd == "flip":
+flip ${cmd.tleap_cond.arg_obj}
+#elif $cmd.tleap_cond.tleap_cmd == "groupSelectedAtoms":
+groupSelectedAtoms ${cmd.tleap_cond.arg_unit} ${cmd.tleap_cond.arg_name}
+#elif $cmd.tleap_cond.tleap_cmd == "help":
+help ${cmd.tleap_cond.arg_string}
+#elif $cmd.tleap_cond.tleap_cmd == "impose":
+impose ${cmd.tleap_cond.arg_unit} { ${cmd.tleap_cond.arg_seqlist} } { { "$cmd.tleap_cond.arg_internals_atom1" "$cmd.tleap_cond.arg_internals_atom2" $cmd.tleap_cond.arg_internals_displacement} }
+#elif $cmd.tleap_cond.tleap_cmd == "list":
+list
+#elif $cmd.tleap_cond.tleap_cmd == "listOff":
+listOff ${cmd.tleap_cond.arg_library}
+#elif $cmd.tleap_cond.tleap_cmd == "loadAmberParams":
+#if $cmd.tleap_cond.loadAmberParams_assign:
+${cmd.tleap_cond.loadAmberParams_assign} = loadAmberParams ${cmd.tleap_cond.file_source.arg_filename}
+#else:
+loadAmberParams ${cmd.tleap_cond.file_source.arg_filename}
+#end if
+#elif $cmd.tleap_cond.tleap_cmd == "loadAmberPrep":
+loadAmberPrep ${cmd.tleap_cond.file_source.arg_filename} ${cmd.tleap_cond.arg_prefix}
+#elif $cmd.tleap_cond.tleap_cmd == "loadMol2":
+#if $cmd.tleap_cond.loadMol2_assign:
+${cmd.tleap_cond.loadMol2_assign} = loadMol2 ${cmd.tleap_cond.arg_filename}
+#else:
+loadMol2 ${cmd.tleap_cond.arg_filename}
+#end if
+#elif $cmd.tleap_cond.tleap_cmd == "loadMol3":
+#if $cmd.tleap_cond.loadMol3_assign:
+${cmd.tleap_cond.loadMol3_assign} = loadMol3 ${cmd.tleap_cond.arg_filename}
+#else:
+loadMol3 ${cmd.tleap_cond.arg_filename}
+#end if
+#elif $cmd.tleap_cond.tleap_cmd == "loadOff":
+loadOff ${cmd.tleap_cond.arg_filename}
+#elif $cmd.tleap_cond.tleap_cmd == "loadPdb":
+#if $cmd.tleap_cond.loadPdb_assign:
+${cmd.tleap_cond.loadPdb_assign} = loadPdb ${cmd.tleap_cond.arg_filename}
+#else:
+loadPdb ${cmd.tleap_cond.arg_filename}
+#end if
+#elif $cmd.tleap_cond.tleap_cmd == "loadPdbUsingSeq":
+loadPdbUsingSeq ${cmd.tleap_cond.arg_filename} { ${cmd.tleap_cond.arg_unitlist} }
+#elif $cmd.tleap_cond.tleap_cmd == "logFile":
+logFile ${cmd.tleap_cond.arg_filename}
+#elif $cmd.tleap_cond.tleap_cmd == "matchVariables":
+#if $cmd.tleap_cond.matchVariables_assign:
+${cmd.tleap_cond.matchVariables_assign} = matchVariables ${cmd.tleap_cond.arg_string}
+#else:
+matchVariables ${cmd.tleap_cond.arg_string}
+#end if
+#elif $cmd.tleap_cond.tleap_cmd == "measureGeom":
+measureGeom ${cmd.tleap_cond.arg_atom1} ${cmd.tleap_cond.arg_atom2} ${cmd.tleap_cond.arg_atom3} ${cmd.tleap_cond.arg_atom4} 
+#elif $cmd.tleap_cond.tleap_cmd == "relax":
+relax ${cmd.tleap_cond.arg_obj}
+#elif $cmd.tleap_cond.tleap_cmd == "remove":
+remove ${cmd.tleap_cond.arg_a} ${cmd.tleap_cond.arg_b}
+#elif $cmd.tleap_cond.tleap_cmd == "restrainAngle":
+restrainAngle ${cmd.tleap_cond.arg_unit} ${cmd.tleap_cond.arg_a} ${cmd.tleap_cond.arg_b} ${cmd.tleap_cond.arg_c} ${cmd.tleap_cond.arg_force} ${cmd.tleap_cond.arg_angle}
+#elif $cmd.tleap_cond.tleap_cmd == "restrainBond":
+restrainBond ${cmd.tleap_cond.arg_unit} ${cmd.tleap_cond.arg_a} ${cmd.tleap_cond.arg_b} ${cmd.tleap_cond.arg_force} ${cmd.tleap_cond.arg_length}
+#elif $cmd.tleap_cond.tleap_cmd == "restrainTorsion":
+restrainTorsion ${cmd.tleap_cond.arg_unit} ${cmd.tleap_cond.arg_a} ${cmd.tleap_cond.arg_b} ${cmd.tleap_cond.arg_c} ${cmd.tleap_cond.arg_d} ${cmd.tleap_cond.arg_force} ${cmd.tleap_cond.arg_phi} ${cmd.tleap_cond.arg_multiplicity}
+#elif $cmd.tleap_cond.tleap_cmd == "saveAmberParm":
+saveAmberParm ${cmd.tleap_cond.arg_unit} out/saveAmberParm_topologyfilename_${i}_1.prmtop out/saveAmberParm_coordinatefilename_${i}_2.inpcrd
+#elif $cmd.tleap_cond.tleap_cmd == "saveAmberParmNetcdf":
+saveAmberParmNetcdf ${cmd.tleap_cond.arg_unit} out/saveAmberParmNetcdf_topologyfilename_${i}_1.top out/saveAmberParmNetcdf_coordinatefilename_${i}_2.coord
+#elif $cmd.tleap_cond.tleap_cmd == "saveAmberParmPert":
+saveAmberParmPert ${cmd.tleap_cond.arg_unit} out/saveAmberParmPert_topologyfilename_${i}_1.top out/saveAmberParmPert_coordinatefilename_${i}_2.coord
+#elif $cmd.tleap_cond.tleap_cmd == "saveAmberParmPol":
+saveAmberParmPol ${cmd.tleap_cond.arg_unit} out/saveAmberParmPol_topologyfilename_${i}_1.top out/saveAmberParmPol_coordinatefilename_${i}_2.coord
+#elif $cmd.tleap_cond.tleap_cmd == "saveAmberParmPolPert":
+saveAmberParmPolPert ${cmd.tleap_cond.arg_unit} out/saveAmberParmPolPert_topologyfilename_${i}_1.top out/saveAmberParmPolPert_coordinatefilename_${i}_2.coord
+#elif $cmd.tleap_cond.tleap_cmd == "saveAmberPrep":
+saveAmberPrep ${cmd.tleap_cond.arg_unit} out/saveAmberPrep_filename_${i}_1.txt
+#elif $cmd.tleap_cond.tleap_cmd == "saveMol2":
+saveMol2 ${cmd.tleap_cond.arg_unit} out/saveMol2_filename_${i}_1.mol2 ${cmd.tleap_cond.arg_option}
+#elif $cmd.tleap_cond.tleap_cmd == "saveMol3":
+saveMol3 ${cmd.tleap_cond.arg_unit} out/saveMol3_filename_${i}_1.mol3 ${cmd.tleap_cond.arg_option}
+#elif $cmd.tleap_cond.tleap_cmd == "saveOff":
+saveOff ${cmd.tleap_cond.arg_obj} out/saveOff_filename_${i}_1.txt
+#elif $cmd.tleap_cond.tleap_cmd == "savePdb":
+savePdb ${cmd.tleap_cond.arg_unit} out/savePdb_filename_${i}_1.pdb
+#elif $cmd.tleap_cond.tleap_cmd == "scaleCharges":
+scaleCharges ${cmd.tleap_cond.arg_container} ${cmd.tleap_cond.arg_scale_factor}
+#elif $cmd.tleap_cond.tleap_cmd == "select":
+select ${cmd.tleap_cond.arg_obj}
+#elif $cmd.tleap_cond.tleap_cmd == "sequence":
+#if $cmd.tleap_cond.sequence_assign:
+${cmd.tleap_cond.sequence_assign} = sequence { ${cmd.tleap_cond.arg_list} }
+#else:
+sequence { ${cmd.tleap_cond.arg_list} }
+#end if
+#elif $cmd.tleap_cond.tleap_cmd == "set":
+set ${cmd.tleap_cond.arg_variable} ${cmd.tleap_cond.arg_container} ${cmd.tleap_cond.arg_dim}
+#elif $cmd.tleap_cond.tleap_cmd == "set_default":
+#for $setdefaultsvar in $cmd.tleap_cond.defaults:
+set default ${setdefaultsvar.settingsvariable} ${setdefaultsvar.usersetting}
+#end for 
+#elif $cmd.tleap_cond.tleap_cmd == "setBox":
+setBox ${cmd.tleap_cond.arg_unit} ${cmd.tleap_cond.arg_enclosure} ${cmd.tleap_cond.arg_buffer} 
+#elif $cmd.tleap_cond.tleap_cmd == "showdefault":
+showdefault
+#elif $cmd.tleap_cond.tleap_cmd == "solvateBox":
+solvateBox ${cmd.tleap_cond.arg_solute} ${cmd.tleap_cond.arg_solvent} ${cmd.tleap_cond.arg_buffer} ${cmd.tleap_cond.arg_iso} ${cmd.tleap_cond.arg_closeness}
+#elif $cmd.tleap_cond.tleap_cmd == "solvateCap":
+solvateCap ${cmd.tleap_cond.arg_solute} ${cmd.tleap_cond.arg_solvent} ${cmd.tleap_cond.arg_position} ${cmd.tleap_cond.arg_radius} ${cmd.tleap_cond.arg_closeness} 
+#elif $cmd.tleap_cond.tleap_cmd == "solvateDontClip":
+solvateDontClip ${cmd.tleap_cond.arg_solute} ${cmd.tleap_cond.arg_solvent} ${cmd.tleap_cond.arg_buffer} ${cmd.tleap_cond.arg_closeness}
+#elif $cmd.tleap_cond.tleap_cmd == "solvateOct":
+solvateOct ${cmd.tleap_cond.arg_solute} ${cmd.tleap_cond.arg_solvent} ${cmd.tleap_cond.arg_buffer} ${cmd.tleap_cond.arg_iso} ${cmd.tleap_cond.arg_closeness}
+#elif $cmd.tleap_cond.tleap_cmd == "solvateShell":
+solvateShell ${cmd.tleap_cond.arg_solute} ${cmd.tleap_cond.arg_solvent} ${cmd.tleap_cond.arg_thickness} ${cmd.tleap_cond.arg_closeness}
+#elif $cmd.tleap_cond.tleap_cmd == "source":
+source ${cmd.tleap_cond.arg_filename}
+#elif $cmd.tleap_cond.tleap_cmd == "transform":
+transform ${cmd.tleap_cond.arg_atoms} {
+     { ${cmd.tleap_cond.arg_matrix_row1} }
+     { ${cmd.tleap_cond.arg_matrix_row2} }
+     { ${cmd.tleap_cond.arg_matrix_row3} }
+     { 0 0 0 1 } 
+     }
+#elif $cmd.tleap_cond.tleap_cmd == "translate":
+translate ${cmd.tleap_cond.arg_atoms} { ${cmd.tleap_cond.arg_direction} }
+#elif $cmd.tleap_cond.tleap_cmd == "verbosity":
+verbosity ${cmd.tleap_cond.arg_level}
+#elif $cmd.tleap_cond.tleap_cmd == "zMatrix":
+zMatrix ${cmd.tleap_cond.arg_obj} ${cmd.tleap_cond.arg_zmatrix}
+#end if
+#end for]]>
+quit
+          </configfile>
+     </configfiles>
+
+     <inputs>
+
+          <repeat name="tleap_cmds" title="Add tLEaP command" min="1">
+               <conditional name="tleap_cond">
+                    <param type="select" name="tleap_cmd" label="Choose tLEaP command">
+                         <option value="add">add</option>
+                         <option value="addAtomTypes">addAtomTypes</option>
+                         <option value="addH">addH</option>
+                         <option value="addIons">addIons</option>
+                         <option value="addIons2">addIons2</option>
+                         <option value="addIonsRand">addIonsRand</option>
+                         <option value="addPath">addPath</option>
+                         <option value="addPdbAtomMap">addPdbAtomMap</option>
+                         <option value="addPdbResMap">addPdbResMap</option>
+                         <option value="alignAxes">alignAxes</option>
+                         <option value="bond">bond</option>
+                         <option value="bondByDistance">bondByDistance</option>
+                         <option value="center">center</option>
+                         <option value="charge">charge</option>
+                         <option value="check">check</option>
+                         <option value="clearPdbAtomMap">clearPdbAtomMap</option>
+                         <option value="clearPdbResMap">clearPdbResMap</option>
+                         <option value="clearVariables">clearVariables</option>
+                         <option value="combine">combine</option>
+                         <option value="copy">copy</option>
+                         <option value="createAtom">createAtom</option>
+                         <option value="createParmset">createParmset</option>
+                         <option value="createResidue">createResidue</option>
+                         <option value="createUnit">createUnit</option>
+                         <option value="crossLink">crossLink</option>
+                         <option value="debugOff">debugOff</option>
+                         <option value="debugOn">debugOn</option>
+                         <option value="debugStatus">debugStatus</option>
+                         <option value="deleteBond">deleteBond</option>
+                         <option value="deleteOffLibEntry">deleteOffLibEntry</option>
+                         <option value="deleteRestraint">deleteRestraint</option>
+                         <option value="desc">desc</option>
+                         <option value="deSelect">deSelect</option>
+                         <option value="displayPdbAtomMap">displayPdbAtomMap</option>
+                         <option value="displayPdbResMap">displayPdbResMap</option>
+                         <option value="edit">edit</option>
+                         <option value="flip">flip</option>
+                         <option value="groupSelectedAtoms">groupSelectedAtoms</option>
+                         <option value="help">help</option>
+                         <option value="impose">impose</option>
+                         <option value="list">list</option>
+                         <option value="listOff">listOff</option>
+                         <option value="loadAmberParams">loadAmberParams</option>
+                         <option value="loadAmberPrep">loadAmberPrep</option>
+                         <option value="loadMol2">loadMol2</option>
+                         <option value="loadMol3">loadMol3</option>
+                         <option value="loadOff">loadOff</option>
+                         <option value="loadPdb">loadPdb</option>
+                         <option value="loadPdbUsingSeq">loadPdbUsingSeq</option>
+                         <option value="logFile">logFile</option>
+                         <option value="matchVariables">matchVariables</option>
+                         <option value="measureGeom">measureGeom</option>
+                         <option value="relax">relax</option>
+                         <option value="remove">remove</option>
+                         <option value="restrainAngle">restrainAngle</option>
+                         <option value="restrainBond">restrainBond</option>
+                         <option value="restrainTorsion">restrainTorsion</option>
+                         <option value="saveAmberParm">saveAmberParm</option>
+                         <option value="saveAmberParmNetcdf">saveAmberParmNetcdf</option>
+                         <option value="saveAmberParmPert">saveAmberParmPert</option>
+                         <option value="saveAmberParmPol">saveAmberParmPol</option>
+                         <option value="saveAmberParmPolPert">saveAmberParmPolPert</option>
+                         <option value="saveAmberPrep">saveAmberPrep</option>
+                         <option value="saveMol2">saveMol2</option>
+                         <option value="saveMol3">saveMol3</option>
+                         <option value="saveOff">saveOff</option>
+                         <option value="savePdb">savePdb</option>
+                         <option value="scaleCharges">scaleCharges</option>
+                         <option value="select">select</option>
+                         <option value="sequence">sequence</option>
+                         <option value="set">set</option>
+                         <option value="set_default">set_default</option>
+                         <option value="setBox">setBox</option>
+                         <option value="showdefault">showdefault</option>
+                         <option value="solvateBox">solvateBox</option>
+                         <option value="solvateCap">solvateCap</option>
+                         <option value="solvateDontClip">solvateDontClip</option>
+                         <option value="solvateOct">solvateOct</option>
+                         <option value="solvateShell">solvateShell</option>
+                         <option value="source">source</option>
+                         <option value="transform">transform</option>
+                         <option value="translate">translate</option>
+                         <option value="verbosity">verbosity</option>
+                         <option value="zMatrix">zMatrix</option>
+                    </param>
+                    <when value="add">
+                         <param name="arg_a" label="a value" type="text" value="" help="UNIT/RESIDUE/ATOM"/>
+                         <param name="arg_b" label="b value" type="text" value="" help="UNIT/RESIDUE/ATOM"/>
+                    </when>
+                    <when value="addAtomTypes">
+                         <repeat name="atomtypevars" title="new atom type parameters" min="1">
+                              <param name="arg_addAtomTypes_var1" label="name" type="text" value="" help="designated name in the force field"/>
+                              <param name="arg_addAtomTypes_var2" label="element" type="text" value="" help="atom name as it appear in the periodic table"/>
+                              <param name="arg_addAtomTypes_var3" label="hybridization state" type="text" value="" help="sp2, sp3, etc."/>
+                         </repeat>
+                    </when>
+                    <when value="addH">
+                         <param name="arg_obj" label="Assign to UNIT with variable name:" type="text" value="" help="this should be the same variable given to a previously loaded target structure"/>
+                    </when>
+                    <when value="addIons">
+                         <expand macro="addingions" />
+                    </when>
+                    <when value="addIons2">
+                         <expand macro="addingions" />
+                    </when>
+                    <when value="addIonsRand">
+                         <expand macro="addingions" />
+                         <param name="arg_separation" label="separation value" type="text" value="" help="This value guarantees a minimum distance between inserted ions, in angstsroms."/>
+                    </when>
+                    <when value="addPath">
+                         <param name="arg_path" label="path to directory" type="text" value="" help="Specify additional paths for leap to search for files when executing commands."/>
+                    </when>
+                    <when value="addPdbAtomMap">
+                         <repeat name="AtomMapList" title="Add atom name from a pdb file to a list" min="1">
+                              <param name="oddpdbname" label="Odd atom type from pdb file" type="text" value="" help=""/>
+                              <param name="libpdbname" label="Atom type to reference in the library" type="text" value="" help=""/>
+                         </repeat>
+                    </when>
+                    <when value="addPdbResMap">
+                         <repeat name="resmap" title="Add atom name from a pdb file to a residue map in LEaP" min="1">
+                              <param name="terminalflag" label="If terminal atom, select type:" type="text" value="" help="select 0 for beginning residues (N-terminal for proteins, 5' for nucleic acids) and 1 for ending residues (C-terminal for proteins, 3' for nucleic acids). Leave blank if neither. "/>
+                              <param name="pdbname" label="atom name in pdb file" type="text" value="" help=""/>
+                              <param name="leapvar" label="variable name within leap to map onto" type="text" value="" help=""/>
+                         </repeat>
+                    </when>
+                    <when value="alignAxes">
+                         <expand macro="unitvariable" />
+                    </when>
+                    <when value="bond">
+                         <param name="arg_atom1" label="Bonding atom 1" type="text" value="" help="Each atom is defined as 'UNITvariable.residuenumber.atomtype', where the assigned UNITvariable is the same one used to define your structure in loadPdb, saveAmberParm, savePdb, and other commands in your tleap script. For example, typing 'mol.5.SG' tells tleap that the bonding atom is assigned to the variable 'mol', in residue number 5, and is the atom type 'SG'. "/>
+                         <param name="arg_atom2" label="Bonding atom 2" type="text" value="" help="Each atom is defined as 'UNITvariable.residuenumber.atomtype', where the assigned UNITvariable is the same one used to define your structure in loadPdb, saveAmberParm, savePdb, and other commands in your tleap script. For example, typing 'mol.5.SG' tells tleap that the bonding atom is assigned to the variable 'mol', in residue number 5, and is the atom type 'SG'. "/>
+                         <param name="arg_order" label="order value" type="select" value="" help="Choose 'S' for single bond, 'D' for double bond, 'T' for triple bond, or 'A' for aromatic bond. The default value is 'S' if left blank.">
+                              <option value="">default</option>
+                              <option value="S">single bond</option>
+                              <option value="D">double bond</option>
+                              <option value="T">triple bond</option>
+                              <option value="A">aromatic bond</option>
+                         </param>
+                    </when>
+                    <when value="bondByDistance">
+                         <expand macro="container" />
+                         <param name="arg_maxBond" label="maxBond value" type="text" value="" help="maximum distance, in angstroms"/>
+                    </when>
+                    <when value="center">
+                         <expand macro="container"/>
+                    </when>
+                    <when value="charge">
+                         <expand macro="container"/>
+                    </when>
+                    <when value="check">
+                         <expand macro="unitvariable" />
+                         <param name="arg_parmset" label="parmset value" type="text" value="" help="PARMSET/STRING where all mising parameters are placed. This is optional."/>
+                    </when>
+                    <when value="clearPdbAtomMap">
+                    </when>
+                    <when value="clearPdbResMap">
+                    </when>
+                    <when value="clearVariables">
+                         <param name="arg_list" label="list of variables to clear" type="text" value="" help="This is optional. Use only if a specific set of variables need to be cleared. If left empty, all variables will be cleared by default."/>
+                    </when>
+                    <when value="combine">
+                         <param name="combine_assign" label="Name of the new combined list of variables" type="text" value=""/>
+                         <param name="arg_list" label="list of variables" type="text" value="" help="Write the name of previously defined variables that you'd like to combine into this new list. "/>
+                    </when>
+                    <when value="copy">
+                         <param name="copy_assign" label="Name of the newly copied variable:" type="text" value=""/>
+                         <param name="arg_variable" label="Variable you are making a copy of:" type="text" value="" help=""/>
+                    </when>
+                    <when value="createAtom">
+                         <expand macro="create" />
+                         <param name="arg_type" label="new atom type" type="text" value="" help="STRING"/>
+                         <param name="arg_charge" label="atomic charge" type="text" value="" help="NUMBER"/>
+                    </when>
+                    <when value="createParmset">
+                         <expand macro="create" />
+                    </when>
+                    <when value="createResidue">
+                         <expand macro="create" />
+                    </when>
+                    <when value="createUnit">
+                         <expand macro="create" />
+                    </when>
+                    <when value="crossLink">
+                         <param name="arg_res1" label="res1 value" type="text" value="" help="Residue 1"/>
+                         <param name="arg_conn1" label="conn1 value" type="text" value="" help="connecting atom on residue 1"/>
+                         <param name="arg_res2" label="res2 value" type="text" value="" help="Residue 2"/>
+                         <param name="arg_conn2" label="conn2 value" type="text" value="" help="connecting atom on residue 2"/>
+                    </when>
+                    <when value="debugOff">
+                         <expand macro="builtin_amberfiles" />
+                    </when>
+                    <when value="debugOn">
+                         <expand macro="builtin_amberfiles" />
+                    </when>
+                    <when value="debugStatus">
+                    </when>
+                    <when value="deleteBond">
+                         <param name="arg_atom1" label="Bonding atom 1" type="text" value="" help="Each atom is defined as 'UNITvariable.residuenumber.atomtype', where the assigned UNITvariable is the same one used to define your structure in loadPdb, saveAmberParm, savePdb, and other commands in your tleap script. For example, typing 'mol.5.SG' tells tleap that the bonding atom is assigned to the variable 'mol', in residue number 5, and is the atom type 'SG'. "/>
+                         <param name="arg_atom2" label="Bonding atom 2" type="text" value="" help="Each atom is defined as 'UNITvariable.residuenumber.atomtype', where the assigned UNITvariable is the same one used to define your structure in loadPdb, saveAmberParm, savePdb, and other commands in your tleap script. For example, typing 'mol.5.SG' tells tleap that the bonding atom is assigned to the variable 'mol', in residue number 5, and is the atom type 'SG'. "/>
+                    </when>
+                    <when value="deleteOffLibEntry">
+                         <param name="arg_library" label="library value" type="text" format="txt" value="" help="STRING"/>
+                         <param name="arg_entry" label="entry value" type="text" value="" help="STRING"/>
+                    </when>
+                    <when value="deleteRestraint">
+                         <expand macro="unitvariable" />
+                         <param name="arg_a" label="a value" type="text" value="" help="ATOM"/>
+                         <param name="arg_b" label="b value" type="text" value="" help="ATOM"/>
+                         <param name="arg_c" label="c value" type="text" value="" help="ATOM"/>
+                         <param name="arg_d" label="d value" type="text" value="" help="ATOM"/>
+                    </when>
+                    <when value="desc">
+                         <expand macro="unitvariable" />
+                    </when>
+                    <when value="deSelect">
+                         <expand macro="object" />
+                    </when>
+                    <when value="displayPdbAtomMap">
+                    </when>
+                    <when value="displayPdbResMap">
+                    </when>
+                    <when value="edit">
+                         <param name="arg_unit_parmset" label="unit-parmset value" type="text" value="" help="UNIT/PARMSET"/>
+                    </when>
+                    <when value="flip">
+                         <expand macro="object" />
+                    </when>
+                    <when value="groupSelectedAtoms">
+                         <expand macro="unitvariable" />
+                         <param name="arg_name" label="name value" type="text" value="" help="STRING"/>
+                    </when>
+                    <when value="help">
+                         <param name="arg_string" label="string value" type="text" value="" help="STRING"/>
+                    </when>
+                    <when value="impose">
+                         <expand macro="unitvariable" />
+                         <param name="arg_seqlist" label="seqlist value" type="text" value="" help="LIST"/>
+                         <param name="arg_internals_atom1" label="internals atom1" type="text" value="" help=""/>
+                         <param name="arg_internals_atom2" label="internals atom2" type="text" value="" help=""/>
+                         <param name="arg_internals_displacement" label="displacement" type="text" value="" help="can be positive or negative, in angstroms"/>
+                    </when>
+                    <when value="list">
+                    </when>
+                    <when value="listOff">
+                         <param name="arg_library" label="library value" type="data" value="" format="txt" help="STRING"/>
+                    </when>
+                    <when value="loadAmberParams">
+                         <param name="loadAmberParams_assign" label="Assign to variable named" type="text" value=""/>
+                         <expand macro="amberfiles_conditional" />
+                    </when>
+                    <when value="loadAmberPrep">
+                         <expand macro="amberfiles_conditional" />
+                         <param name="arg_prefix" label="prefix value" type="text" value="" help="STRING"/>
+                    </when>
+                    <when value="loadMol2">
+                         <param name="loadMol2_assign" label="Assign to variable named" type="text" value="" help="This is the molecule's residue name as it appears in the mol2 file."/>
+                         <expand macro="loadfile" data_format="mol2"/>
+                    </when>
+                    <when value="loadMol3">
+                         <param name="loadMol3_assign" label="Assign to variable named" type="text" value="" help="This is the molecule's residue name as it appears in the mol2 file."/>
+                         <expand macro="loadfile" data_format="mol3"/>
+                    </when>
+                    <when value="loadOff">
+                         <expand macro="loadfile" />
+                    </when>
+                    <when value="loadPdb">
+                         <param name="loadPdb_assign" label="Assign to variable named" type="text" value="" help="The variable name that your system's components are assigned to. This should generally be the same variable used when saving the output files (when using savePdb, saveAmberParm, etc.)."/>
+                         <expand macro="loadfile" data_format="pdb"/>
+                    </when>
+                    <when value="loadPdbUsingSeq">
+                         <expand macro="loadfile" data_format="pdb"/>
+                         <param name="arg_unitlist" label="unitlist value" type="text" value="" help="LIST"/>
+                    </when>
+                    <when value="logFile">
+                         <expand macro="loadfile" />
+>
+                    </when>
+                    <when value="matchVariables">
+                         <param name="matchVariables_assign" label="Assign to variable named" type="text" value=""/>
+                         <param name="arg_string" label="string value" type="text" value="" help="STRING"/>
+                    </when>
+                    <when value="measureGeom">
+                         <param name="arg_atom1" label="atom1" type="text" value="" help="Each atom is defined as 'UNITvariable.residuenumber.atomtype'. For example, typing 'mol.5.SG' tells tleap that the bonding atom is assigned to the variable 'mol', in residue number 5, and is the atom type 'SG'." />
+                         <param name="arg_atom2" label="atom2" type="text" value="" help="Each atom is defined as 'UNITvariable.residuenumber.atomtype'. For example, typing 'mol.5.SG' tells tleap that the bonding atom is assigned to the variable 'mol', in residue number 5, and is the atom type 'SG'." />
+                         <param name="arg_atom3" label="atom3" type="text" value="" help="Each atom is defined as 'UNITvariable.residuenumber.atomtype'. For example, typing 'mol.5.SG' tells tleap that the bonding atom is assigned to the variable 'mol', in residue number 5, and is the atom type 'SG'." />
+                         <param name="arg_atom4" label="atom4" type="text" value="" help="Each atom is defined as 'UNITvariable.residuenumber.atomtype'. For example, typing 'mol.5.SG' tells tleap that the bonding atom is assigned to the variable 'mol', in residue number 5, and is the atom type 'SG'." />
+                    </when>
+                    <when value="relax">
+                         <expand macro="object" />
+                    </when>
+                    <when value="remove">
+                         <param name="arg_a" label="a value --> Object you are removing contents FROM" type="text" value="" help="UNIT/RESIDUE/ATOM. The object can be a specific residue [ type 'UNITvariable.residuenumber(or name)' ], or an entire UNIT [ only type 'UNITvariable' ]. "/>
+                         <param name="arg_b" label="b value --> The specific content you are removing" type="text" value="" help="UNIT/RESIDUE/ATOM. The contents can be a single atom [type 'UNITvariable.residuenumber(or name).atomtype(or number)' ], or an entire residue [type 'UNITvariable.residuenumber(or name)' ]. "/>
+                    </when>
+                    <when value="restrainAngle">
+                         <expand macro="unitvariable" />
+                         <param name="arg_a" label="atom1" type="text" value="" help="Each atom is defined as 'UNITvariable.residuenumber(or name).atomtype(or number)'. For example, typing 'mol.5.SG' tells tleap that the bonding atom is assigned to the variable 'mol', in residue number 5, and is the atom type 'SG'." />
+                         <param name="arg_b" label="atom2 or the middle atom" type="text" value="" help="Each atom is defined as 'UNITvariable.residuenumber(or name).atomtype(or number)'. For example, typing 'mol.5.SG' tells tleap that the bonding atom is assigned to the variable 'mol', in residue number 5, and is the atom type 'SG'." />
+                         <param name="arg_c" label="atom3" type="text" value="" help="Each atom is defined as 'UNITvariable.residuenumber(or name).atomtype(or number)'. For example, typing 'mol.5.SG' tells tleap that the bonding atom is assigned to the variable 'mol', in residue number 5, and is the atom type 'SG'." />
+                         <param name="arg_force" label="Force constant K_theta" type="text" value="" help="This is the force constant value you are setting to restrain this angle, in kcal/mol/radian^2."/>
+                         <param name="arg_angle" label="Equilibrium angle theta" type="text" value="" help="This is the equilibrium angle, in degrees, between these 3 interacting atoms."/>
+                    </when>
+                    <when value="restrainBond">
+                         <expand macro="unitvariable" />
+                         <param name="arg_a" label="atom1" type="text" value="" help="Each atom is defined as 'UNITvariable.residuenumber(or name).atomtype(or number)'. For example, typing 'mol.5.SG' tells tleap that the bonding atom is assigned to the variable 'mol', in residue number 5, and is the atom type 'SG'." />
+                         <param name="arg_b" label="atom2" type="text" value="" help="Each atom is defined as 'UNITvariable.residuenumber(or name).atomtype(or number)'. For example, typing 'mol.5.SG' tells tleap that the bonding atom is assigned to the variable 'mol', in residue number 5, and is the atom type 'SG'." />
+                         <param name="arg_force" label="Force constant K_b" type="text" value="" help="This is the force constant value you are setting to restrain this length, in kcal/mol/angstrom^2. "/>
+                         <param name="arg_length" label="Equilibrium length" type="text" value="" help="This is the equilibrium bond length between these two atoms."/>
+                    </when>
+                    <when value="restrainTorsion">
+                         <expand macro="unitvariable" />
+                         <param name="arg_a" label="atom1" type="text" value="" help="Each atom is defined as 'UNITvariable.residuenumber(or name).atomtype(or number)'. For example, typing 'mol.5.SG' tells tleap that the bonding atom is assigned to the variable 'mol', in residue number 5, and is the atom type 'SG'." />
+                         <param name="arg_b" label="atom2" type="text" value="" help="Each atom is defined as 'UNITvariable.residuenumber(or name).atomtype(or number)'. For example, typing 'mol.5.SG' tells tleap that the bonding atom is assigned to the variable 'mol', in residue number 5, and is the atom type 'SG'." />
+                         <param name="arg_c" label="atom3" type="text" value="" help="Each atom is defined as 'UNITvariable.residuenumber(or name).atomtype(or number)'. For example, typing 'mol.5.SG' tells tleap that the bonding atom is assigned to the variable 'mol', in residue number 5, and is the atom type 'SG'." />
+                         <param name="arg_d" label="atom4" type="text" value="" help="Each atom is defined as 'UNITvariable.residuenumber(or name).atomtype(or number)'. For example, typing 'mol.5.SG' tells tleap that the bonding atom is assigned to the variable 'mol', in residue number 5, and is the atom type 'SG'." />
+                         <param name="arg_force" label="Force constant K_phi" type="text" value="" help="This is the force constant you are setting to restrain this dihedral."/>
+                         <param name="arg_phi" label="Equilibrium torsion angle phi" type="text" value="" help="This is the equilibrium torsion angle for this dihedral."/>
+                         <param name="arg_multiplicity" label="multiplicity value" type="text" value="" help="NUMBER"/>
+                    </when>
+                    <when value="saveAmberParm">
+                         <param name="arg_unit" label="Assign to variable named" type="text" value="" help="The variable name that your system's components are assigned to. This should generally be the same variable used previously with input commands like 'loadPdb'."/>
+                    </when>
+                    <when value="saveAmberParmNetcdf">
+                         <expand macro="unitvariable" />
+                    </when>
+                    <when value="saveAmberParmPert">
+                         <expand macro="unitvariable" />
+                    </when>
+                    <when value="saveAmberParmPol">
+                         <expand macro="unitvariable" />
+                    </when>
+                    <when value="saveAmberParmPolPert">
+                         <expand macro="unitvariable" />
+                    </when>
+                    <when value="saveAmberPrep">
+                         <expand macro="unitvariable" />
+                         <expand macro="newfile" />
+                    </when>
+                    <when value="saveMol2">
+                         <expand macro="unitvariable" />
+
+                         <param name="arg_option" label="option value" type="text" value="" help="NUMBER"/>
+                    </when>
+                    <when value="saveMol3">
+                         <expand macro="unitvariable" />
+                         <param name="arg_option" label="option value" type="text" value="" help="NUMBER"/>
+                    </when>
+                    <when value="saveOff">
+                         <expand macro="object" />
+                    </when>
+                    <when value="savePdb">
+                         <param name="arg_unit" label="Assign to variable named" type="text" value="" help="The variable name that your system's components are assigned to. This should generally be the same variable used previously with input commands like 'loadPdb'."/>
+                    </when>
+                    <when value="scaleCharges">
+                         <expand macro="container" />
+                         <param name="arg_scale_factor" label="scale_factor value" type="text" value="" help="NUMBER"/>
+                    </when>
+                    <when value="select">
+                         <expand macro="object" />
+                    </when>
+                    <when value="sequence">
+                         <param name="sequence_assign" label="Assign to variable named" type="text" value=""/>
+                         <param name="arg_list" label="list value" type="text" value="" help="LIST"/>
+                    </when>
+                    <when value="set">
+                         <param name="arg_variable" label="variable value" type="text" value="" help="the variable name that your components are assigned to"/>
+                         <param name="arg_container" label="container value" type="text" value="" help="type'box' if you are using this command to set box dimensions"/>
+                         <param name="arg_dim" label="dimensions value" type="text" value="" help="dimension magnitude for X, Y, and Z"/>
+                    </when>
+                    <when value="set_default">
+                         <repeat name="defaults" title="Default setting to adjust:">
+                              <expand macro="defaultsettings" />
+                              <expand macro="settingoptions" />
+                         </repeat>
+                    </when>
+                    <when value="setBox">
+                         <expand macro="unitvariable" />
+                         <param name="arg_enclosure" label="enclosure value" type="text" value="" help="type 'vdw' or 'centers'"/>
+                         <param name="arg_buffer" label="buffer value" type="text" value="" help="object"/>
+                    </when>
+                    <when value="showdefault">
+                    </when>
+                    <when value="solvateBox">
+                         <expand macro="solvateparams" />
+                         <param name="arg_iso" label="iso value" type="text" value="" help="type 'iso' if using this option"/>
+                    </when>
+                    <when value="solvateCap">
+                         <expand macro="solvateparams" />
+                         <param name="arg_position" label="position value" type="text" value="" help="Defines the center of the solvent cap. Can be listed directly using coordinates for { X Y Z }, or you can specify a UNIT, RESIDUE, ATOM, or LIST of any of these 3 as a reference for position."/>
+                         <param name="arg_radius" label="radius value" type="text" value="" help="NUMBER"/>
+                    </when>
+                    <when value="solvateDontClip">
+                         <expand macro="solvateparams" />
+                         <param name="arg_closeness" label="closeness value" type="text" value="" help="NUMBER"/>
+                    </when>
+                    <when value="solvateOct">
+                         <expand macro="solvateparams" />
+                         <param name="arg_iso" label="iso value" type="text" value="" help="type 'iso' if choosing this option"/>
+                    </when>
+                    <when value="solvateShell">
+                         <expand macro="solvateparams" />
+                         <param name="arg_thickness" label="thickness value" type="text" value="" help="NUMBER"/>
+                    </when>
+                    <when value="source">
+                         <expand macro="builtin_amberfiles" />
+                    </when>
+                    <when value="transform">
+                         <param name="arg_atoms" label="atoms value" type="text" value="" help="UNIT/RESIDUE/ATOM. You can transform an entire UNIT, an entire RESIDUE, or a specific atom. Each atom is defined as 'UNITvariable.residuenumber(or name).atomtype(or number)'. For example, typing 'mol.5.SG' tells tleap that the bonding atom is assigned to the variable 'mol', in residue number 5, and is the atom type 'SG'. Multiple selections can be typed into this list so a transformation is performed on several components of your system at once, just separate each choice of UNIT/RESIDUE/ATOM with a single space in between. " />
+                         <param name="arg_matrix_row1" label="Row 1 of matrix" type="text" value="" help="type the following: ' r11  r12  r13  -tx ', where r11-r13 are matrix elements for the X dimension. If you would like to translate along this dimension, assign a value to -tx, in angstroms. For a simple reflection along this axis, set this row to r11=-1, r12=0, r13=0. "/>
+                         <param name="arg_matrix_row2" label="Row 2 of matrix" type="text" value="" help="type the following: ' r21  r22  r23  -tx ', where r21-r23 are matrix elements for the Y dimension. If you would like to translate along this dimension, assign a value to -ty, in angstroms. For a simple reflection along this axis, set this row to r21=0, r22=-1, r23=0. "/>
+                         <param name="arg_matrix_row3" label="Row 3 of matrix" type="text" value="" help="type the following: ' r31  r32  r33  -tz ', where r31-r33 are matrix elements for the Z dimension. If you would like to translate along this dimension, assign a value to -tz, in angstroms. For a simple reflection along this axis, set this row to r31=0, r32=0, r33=-1. "/>
+                    </when>
+                    <when value="translate">
+                         <param name="arg_atoms" label="list of atoms" type="text" value="" help="UNIT/RESIDUE/ATOM. You can translate an entire UNIT, an entire RESIDUE, or a specific atom. Each atom is defined as 'UNITvariable.residuenumber(or name).atomtype(or number)'. For example, typing 'mol.5.SG' tells tleap that the bonding atom is assigned to the variable 'mol', in residue number 5, and is the atom type 'SG'. Multiple selections can be typed into this list so a transformation is performed on several components of your system at once, just separate each choice of UNIT/RESIDUE/ATOM with a single space in between. " />
+                         <param name="arg_direction" label="direction value in each dimension" type="text" value="" help="Displace by this amount { X Y Z }. The direction is based on whether each vector is positive or negative. "/>
+                    </when>
+                    <when value="verbosity">
+                         <param name="arg_level" label="level value" type="text" value="" help="This command sets the level of output that LEaP provides the user. A value of 0 is the default, providing the minimum of messages. A value of 1 will produce more output, and a value of 2 will produce all of the output of level 1 and display the text of the script lines executed with the source command."/>
+                    </when>
+                    <when value="zMatrix">
+                         <param name="arg_obj" label="obj value" type="text" value="" help="UNIT/RESIDUE/ATOM"/>
+                         <param name="arg_zmatrix" label="zmatrix value" type="text" value="" help="LIST"/>
+                    </when>
+               </conditional>
+          </repeat>
+     </inputs>
+     <outputs>
+          <data format="txt" name="output_tleap_in" label="Build tLEaP: tleap.in"/>
+          <data format="txt" name="output_tleap" label="Build tLEaP: tleap.log"/>
+          <collection name="output_pdb" type="list" label="Collection of pdb" format="pdb">
+               <discover_datasets pattern="(?P&lt;designation&gt;.+)\.pdb" directory="out" format="pdb"/>
+          </collection>
+          <collection name="output_top" type="list" label="Collection of topology files" format="prmtop">
+               <discover_datasets pattern="(?P&lt;designation&gt;.+)\.prmtop" directory="out" format="prmtop"/>
+          </collection>
+          <collection name="output_txt" type="list" label="Collection of txt" format="txt">
+               <discover_datasets pattern="(?P&lt;designation&gt;.+)\.txt" directory="out" format="txt"/>
+          </collection>
+          <collection name="output_coord" type="list" label="Collection of coordinate files" format="inpcrd">
+               <discover_datasets pattern="(?P&lt;designation&gt;.+)\.inpcrd" directory="out" format="inpcrd"/>
+          </collection>
+          <collection name="output_mol2" type="list" label="Collection of mol2" format="mol2">
+               <discover_datasets pattern="(?P&lt;designation&gt;.+)\.mol2" directory="out" format="mol2"/>
+          </collection>
+          <collection name="output_mol3" type="list" label="Collection of mol3" format="mol3">
+               <discover_datasets pattern="(?P&lt;designation&gt;.+)\.mol3" directory="out" format="mol3"/>
+          </collection>
+     </outputs>
+     <tests>
+          <test expect_num_outputs="8">
+               <repeat name="tleap_cmds">
+                    <conditional name="tleap_cond">
+                         <param name="tleap_cmd" value="source"/>
+                         <param name="arg_filename" value="oldff/leaprc.ff14SB"/>
+                    </conditional>
+               </repeat>
+               <repeat name="tleap_cmds">
+                    <conditional name="tleap_cond">
+                         <param name="tleap_cmd" value="loadAmberParams" />
+                         <conditional name="file_source">
+                              <param name="file_source_selector" value="builtin"/>
+                              <param name="arg_filename" value="frcmod.ff14SB"/>
+                         </conditional>
+                    </conditional>
+               </repeat>
+               <repeat name="tleap_cmds">
+                    <conditional name="tleap_cond">
+                         <param name="tleap_cmd" value="loadAmberParams" />
+                         <conditional name="file_source">
+                              <param name="file_source_selector" value="builtin"/>
+                              <param name="arg_filename" value="frcmod.ionsjc_tip4pew"/>
+                         </conditional>
+                    </conditional>
+               </repeat>
+               <repeat name="tleap_cmds">
+                    <conditional name="tleap_cond">
+                         <param name="tleap_cmd" value="loadAmberPrep" />
+                         <conditional name="file_source">
+                              <param name="file_source_selector" value="history"/>
+                              <param name="arg_filename" value="ZAFF.prep"/>
+                         </conditional>
+                    </conditional>
+               </repeat>
+               <repeat name="tleap_cmds">
+                    <conditional name="tleap_cond">
+                         <param name="tleap_cmd" value="loadAmberParams" />
+                         <conditional name="file_source">
+                              <param name="file_source_selector" value="history"/>
+                              <param name="arg_filename" value="ZAFF.frcmod"/>
+                         </conditional>
+                    </conditional>
+               </repeat>
+               <repeat name="tleap_cmds">
+                    <conditional name="tleap_cond">
+                         <param name="tleap_cmd" value="loadPdb" />
+                         <param name="loadPdb_assign" value="mol" />
+                         <param name="arg_filename" value="sarscov2_helicase_ZincBindingDomain.pdb"/>
+                    </conditional>
+               </repeat>
+               <repeat name="tleap_cmds">
+                    <conditional name="tleap_cond">
+                         <param name="tleap_cmd" value="bond" />
+                         <param name="arg_atom1" value="mol.114.ZN" />
+                         <param name="arg_atom2" value="mol.5.SG" />
+                    </conditional>
+               </repeat>
+               <repeat name="tleap_cmds">
+                    <conditional name="tleap_cond">
+                         <param name="tleap_cmd" value="set" />
+                         <param name="arg_variable" value="mol" />
+                         <param name="arg_container" value="box" />
+                         <param name="arg_dim" value="12" />
+                    </conditional>
+               </repeat>
+               <repeat name="tleap_cmds">
+                    <conditional name="tleap_cond">
+                         <param name="tleap_cmd" value="addIons" />
+                         <param name="arg_variable" value="mol" />
+                         <param name="arg_ion1" value="Cl-" />
+                         <param name="arg__ion1" value="0" />
+                         <param name="arg_ion2" value="Na+" />
+                         <param name="arg__ion2" value="0" />
+                    </conditional>
+               </repeat>
+               <repeat name="tleap_cmds">
+                    <conditional name="tleap_cond">
+                         <param name="tleap_cmd" value="saveAmberParm" />
+                         <param name="arg_unit" value="mol" />
+                    </conditional>
+               </repeat>
+               <repeat name="tleap_cmds">
+                    <conditional name="tleap_cond">
+                         <param name="tleap_cmd" value="savePdb" />
+                         <param name="arg_unit" value="mol" />
+                    </conditional>
+               </repeat>
+               <output name="output_tleap_in" value="leap_testfile.txt" lines_diff="6">
+                    <assert_contents>
+                         <has_text text="loadAmberParams frcmod.ff14SB" />
+                         <has_text text="bond mol.114.ZN mol.5.SG" />
+                         <has_text text="quit" />
+                    </assert_contents>
+               </output>
+               <output name="output_tleap">
+                    <assert_contents>
+                         <has_text text="Welcome to LEaP!" />
+                    </assert_contents>
+               </output>
+               <output_collection name="output_top" type="list" count="1">
+                    <element name="saveAmberParm_topologyfilename_9_1">
+                         <assert_contents>
+                              <has_text text="N   H1  H2  H3  CA  HA  CB  HB1 HB2 HB3 C   O   N   H   CA  HA  CB  HB  CG1" />
+                         </assert_contents>
+                    </element>
+               </output_collection>
+               <output_collection name="output_coord" type="list" count="1">
+                    <element name="saveAmberParm_coordinatefilename_9_2">
+                         <assert_contents>
+                              <has_text text="12.0000000  12.0000000  12.0000000  90.0000000  90.0000000  90.0000000" />
+                         </assert_contents>
+                    </element>
+               </output_collection>
+               <output_collection name="output_pdb" type="list" count="1">
+                    <element name="savePdb_filename_10_1">
+                         <assert_contents>
+                              <has_text text="CRYST1   12.000   12.000   12.000  90.00  90.00  90.00 P 1           1" />
+                         </assert_contents>
+                    </element>
+               </output_collection>
+          </test>
+     </tests>
+     <help><![CDATA[
+::
+
+  add a b
+  
+        UNIT/RESIDUE/ATOM          _a_
+        UNIT/RESIDUE/ATOM          _b_
+  
+  Add the object _b_ to the object _a_.   This command is used to place
+  ATOMs within RESIDUEs, and RESIDUEs within UNITs.
+  
+  addAtomTypes {
+          { "H"   "H" "sp3" }
+          { "HO"  "H" "sp3" }
+          ...
+      }
+  Add mapping of AMBER atom type to element and hybridization. Typically in
+  leaprc.
+  
+  addH obj
+  
+        UNIT                       _obj_
+  
+  Add missing hydrogens and build external coordinates for _obj_.
+  
+  addIons unit ion1 #ion1 [ion2 #ion2]
+        UNIT                      _unit_
+        UNIT                      _ion1_
+        NUMBER                    _#ion1_
+        UNIT                      _ion2_
+        NUMBER                    _#ion2_
+  Adds counterions in a shell around _unit_ using a Coulombic potential
+  on a grid. If _#ion1_ is 0, the _unit_ is neutralized (_ion1_ must be
+  opposite in charge to _unit_, and _ion2_ cannot be specified). Otherwise,
+  the specified numbers of _ion1_ [_ion2_] are added [in alternating order].
+  If solvent is present, it is ignored in the charge and steric calculations,
+  and if an ion has a steric conflict with a solvent molecule, the ion is
+  moved to the center of said molecule, and the latter is deleted. (To
+  avoid this behavior, either solvate _after_ addIons, or use addIons2.)
+  Ions must be monoatomic. Note that the one-at-a-time procedure is not
+  guaranteed to globally minimize the electrostatic energy. When neutralizing
+  regular-backbone nucleic acids, the first cations will generally be added
+  between phosphates, leaving the final two ions to be placed somewhere around
+  the middle of the molecule.
+  The default grid resolution is 1 Angstrom, extending from an inner radius
+  of (max ion size + max solute atom size) to an outer radius 4 Angstroms
+  beyond. A distance-dependent dielectric is used for speed.
+  
+  addIons2 unit ion1 #ion1 [ion2 #ion2]
+          UNIT                    _unit_
+          UNIT                    _ion1_
+          NUMBER                  _#ion1_
+          UNIT                    _ion2_
+          NUMBER                  _#ion2_
+  Same as addIons, except solvent and solute are treated the same.
+  
+  addIonsRand unit ion1 #ion1 [ion2 #ion2] [separation]
+  
+          UNIT      _unit_
+          UNIT      _ion1_
+          NUMBER    _#ion1_
+          UNIT      _ion2_
+          NUMBER    _#ion2_
+          NUMBER    _separation_
+  
+  Adds counterions in a shell around _unit_ by replacing random solvent
+  molecules. If _#ion1_ is 0, the _unit_ is neutralized (_ion1_ must be
+  opposite in charge to _unit_, and _ion2_ cannot be specified). Otherwise,
+  the specified numbers of _ion1_ [_ion2_] are added [in alternating order].
+  If _separation_ is specified, ions will be guaranteed to be more than that
+  distance apart in Angstroms.
+  
+  Ions must be monoatomic. This procedure is much faster than addIons, as
+  it does not calculate charges. Solvent must be present. It must be possible
+  to position the requested number of ions with the given separation in the
+  solvent.
+  
+  addPath path
+  
+        STRING                       _path_
+  
+  Add the directory in _path_ to the list of directories that are searched
+  for files specified by other commands.
+  
+  addPdbAtomMap list
+        LIST                         _list_
+  
+  The atom Name Map is used to try to map atom names read from PDB files
+  to atoms within residue UNITs when the atom name in the PDB file does
+  not match an atom in the residue.  This enables PDB files to be read
+  in without extensive editing of atom names.  The LIST is a LIST of LISTs:
+        { {sublist} {sublist} ... }
+  where each sublist is of the form
+        { "OddAtomName" "LibAtomName" }
+  Many `odd' atom names can map to one `standard' atom name, but any single
+  odd atom name maps only to the last standard atom name it was mapped to.
+  
+  addPdbResMap list
+        LIST                         _list_
+  
+  The Name Map is used to map residue names read from PDB files to variable
+  names within LEaP.  The LIST is a LIST of LISTs:
+        { {sublist} {sublist} ... }
+  Each sublist contains two or three entries to add to the Name Map:
+        { [terminalflag] PDBName LEaPVar }
+  where the PDBName will be mapped to the LEaPVar. The terminalflag indicates
+  the special cases of terminal residues: allowable values are 0 for beginning
+  residues (N-terminal for proteins, 5' for nucleic acids) and 1 for ending
+  residues (C-terminal for proteins, 3' for nucleic acids).  If the
+  terminalflag is given, the PDBName->LEaPVar name map will only be applied
+  for the appropriate terminal residue.  The `leaprc' file included with
+  the distribution contains default mappings.
+  
+  alias [alias[ string]]
+        STRING                    _alias_
+        STRING                    _string_
+  
+  alias string1 command - equivalence string1 to command.
+  alias string1         - delete the alias for string1.
+  alias                 - report all current aliases.
+  
+  alignAxes unit
+  
+        UNIT                         _unit_
+  
+  Translate the geometric center of _unit_ to the origin and align
+  the principle axes of the ATOMs within _unit_ along the coordinate
+  axes.  This is done by calculating the moment of inertia of the UNIT
+  using unit mass for each ATOM, and then diagonalizing the resulting
+  matrix and aligning the eigenvectors along the coordinate axes.
+  This command modifies the coordinates of the UNIT. It may be
+  especially useful for preparing long solutes such as nucleic acids
+  for solvation.
+  
+  bond atom1 atom2 [ order ]
+  
+        ATOM                         _atom1_
+        ATOM                         _atom2_
+        STRING                       _order_
+  
+  Create a bond between _atom1_ and _atom2_.  Both of these ATOMs must
+  be contained by the same UNIT. By default, the bond will be a single
+  bond.  By specifying "S", "D", "T", or "A" as the optional argument
+  _order_ the user can specify a single, double, triple, or aromatic
+  bond.
+  
+  bondByDistance container [ maxBond ]
+  
+        UNIT/RESIDUE/ATOM         _container_
+        NUMBER                    _maxBond_
+  
+  Create single bonds between all ATOMs in _container_ that are within
+  _maxBond_ angstroms of each other.   If _maxBond_ is not specified,
+  a default distance of 2 angstroms used.
+  
+  center container
+        UNIT/RESIDUE/ATOM          _container_
+  
+  Display the coordinates of the geometric center of the ATOMs within
+  _container_.
+  
+  charge container
+  
+        UNIT/RESIDUE/ATOM          _container_
+  
+  This command calculates the total charge of the ATOMs within _container_.
+  The unperturbed and perturbed total charge are displayed.
+  
+  check unit [ parmset ]
+        UNIT                      _unit_
+        PARMSET/STRING            _parmset_
+  
+  This command can be used to check the UNIT for internal inconsistencies
+  that could cause problems when performing calculations.  This is
+  a very useful command that should be used before a UNIT is saved
+  with saveAmberParm or its variations.
+  With the optional parmset, all missing parameters are placed in the
+  PARMSET to allow for easy editing of those parameters.  If a string is
+  passed, a PARMSET will be created with that name.
+  Currently it checks for the following possible problems:
+  
+     - Long bonds.  A long bond is greater than 3.0 angstroms.
+  
+     - Short bonds.  A short bond is less than 0.5 angstroms.
+  
+     - Non-integral total charge of the UNIT.
+  
+     - Missing types.
+  
+     - Close contacts between non-bonded ATOMs.  A close contact is
+       less than 1.5 angstroms.
+  
+  clearPdbAtomMap
+  
+  Clear the Name Map used for ``second-chance'' mapping of atom names in
+  PDB files to atoms within residue UNITs.  See addPdbAtomMap.
+  
+  clearPdbResMap
+  
+  Clear the Name Map used to map residue names in PDB files to variable
+  names within LEaP.  See addPdbResMap.
+  
+  clearVariables [ list ]
+  
+        LIST                         _list_
+  
+  This command removes variables from LEaP. If the _list_ argument
+  is provided, then only the variables in the LIST will be removed.
+  If no argument is provided then ALL variables will be removed.
+  
+  variable = combine list
+        object                       _variable_
+        LIST                         _list_
+  
+  Combine the contents of the UNITs within _list_ into a single UNIT.
+  The new UNIT is placed in _variable_.   This command is similar to
+  the sequence command except it does not link the ATOMs of the UNITs
+  together.
+  
+  newvariable = copy variable
+  
+        object                       _newvariable_
+        object                       _variable_
+  
+  Create an exact duplicate of the object _variable_. Changing the object
+  _variable_ will not affect the object _newvariable_.
+  This is in contrast to the situation created by "newvariable = variable"
+  in which both names reference the same object.
+  
+  variable = createAtom name type charge
+  
+        ATOM                         _variable_
+        STRING                       _name_
+        STRING                       _type_
+        NUMBER                       _charge_
+  
+  Return a new ATOM with _name_, _type_, and _charge_.
+  
+  variable = createParmset name
+        PARMSET                   _variable_
+        STRING                    _name_
+  
+  Return a new and empty PARMSET with the name _name_.
+  
+  variable = createResidue name
+        RESIDUE                      _variable_
+        STRING                       _name_
+  
+  Return a new and empty RESIDUE with the name _name_.
+  
+  variable = createUnit name
+        UNIT                         _variable_
+        STRING                       _name_
+  
+  Return a new and empty UNIT with the name _name_.
+  
+  crossLink res1 conn1 res2 conn2
+  
+        RESIDUE                      _res1_
+        STRING                       _connect1_
+        RESIDUE                      _res2_
+        STRING                       _connect2_
+  
+  Create a bond between ATOMs at the connection point specified by
+  _conn1_ and _conn2_.   The argument _conn1_ and _conn2_ can have the
+  following values:
+  
+  Name_           Alternatives__
+  $connect0      $nend, $firstend
+  $connect1      $cend, $lastend
+  $connect2      $send, $disulphide
+  $connect3
+  $connect4
+  $connect5
+  
+  debugOff filename
+  
+        STRING                       _filename_
+  
+  This command is a system debugging function.  It turns off debugging
+  messages from the source (.c) file _filename_.   The symbol *
+  matches all files.  The default for all filenames is `off'.
+  Note that system debugging is in effect only if LEaP was compiled
+  with the preprocessor macro DEBUG defined.
+  
+  debugOn filename
+  
+        STRING                       _filename_
+  
+  This command is a system debugging function.  It turns on debugging
+  messages from the source (.c) file _filename_.   The symbol *
+  matches all files.  The default for all filenames is `off'.
+  Note that system debugging is in effect only if LEaP was compiled
+  with the preprocessor macro DEBUG defined.
+  
+  debugStatus
+  This command is a memory debugging function.  It displays various
+  messages that describe LEaP's usage of system resources.
+  Note that memory debugging is in effect only if LEaP was compiled
+  with the preprocessor macro MEMORY_DEBUG defined; MEMORY_DEBUG values
+  range from 1 through 4 with the greatest being the most aggressive.
+  
+  deleteBond atom1 atom2
+  
+        ATOM                         _atom1_
+        ATOM                         _atom2_
+  
+  Remove the bond between the ATOMs _atom1_ and _atom2_.   If no bond
+  exists, an error will be displayed.
+  
+  deleteOffLibEntry library entry
+        STRING                       _library_
+        STRING                       _entry_
+  
+  Delete _entry_ from the Object File Format file named _library_.
+  
+  deleteRestraint unit a b [c [d]]
+  
+        UNIT                         _unit_
+        ATOM                         _a_
+        ATOM                         _b_
+        ATOM                         _c_
+        ATOM                         _d_
+  
+  Remove a bond, angle, or torsion restraint from _unit_, depending
+  on the number of ATOMs specified.
+  
+  desc variable
+        object                       _variable_
+  
+  Print a description of the object.
+  
+  deSelect obj
+  
+        UNIT/RESIDUE/ATOM          _obj_
+  
+  Clears the SELECT flag on all ATOMs within _obj_.  See the select command.
+  
+  displayPdbAtomMap
+  
+  Display the Name Map used for ``second chance'' mapping of atom names
+  in PDB files to atoms within residue UNITs.  See addPdbAtomMap.
+  
+  displayPdbResMap
+  
+  Display the Name Map used to map residue names in PDB files to variable
+  names within LEaP.  See addPdbResMap.
+  
+  edit unit-parmset
+        UNIT/PARMSET              _unit-parmset_
+  
+  In xLEaP this command creates a unit editor or parameter set editor
+  that contains the UNIT or PARMSET _unit-parmset_.   The user can view
+  and edit the contents of the UNIT or PARMSET by using the mouse.
+  If _unit-parmset_ is a PARMSET, then the user may select the Atom, Bond,
+  Angle, Torsion, Improper Torsion, or Hydrogen Bond Parameters to
+  edit by selecting the appropriate button.
+  In tLEaP this command prints an error message.
+  
+  flip obj
+  
+        UNIT                       _obj_
+  
+  Flips the chirality of the selected atoms within _obj_.
+  
+  groupSelectedAtoms unit name
+  
+        UNIT                         _unit_
+        STRING                       _name_
+  
+  Create a group within _unit_ with the name _name_ using all of the
+  ATOMs within the UNIT that are selected.  If the group has already
+  been defined then overwrite the old group.
+  
+  help [string]
+  
+        STRING                       _string_
+  
+  This command prints a description of the command in _string_.  If
+  the STRING is not given then a list of legal STRINGs is provided.
+  
+  impose unit seqlist internals
+  
+        UNIT                         _unit_
+        LIST                         _seqlist_
+        LIST                         _internals_
+  
+  The impose command allows the user to impose internal coordinates
+  on the UNIT. The list of RESIDUEs to impose the internal coordinates
+  upon is in _seqlist_.  The internal coordinates to impose are in
+  the LIST _internals_.
+  The command works by looking into each RESIDUE within the UNIT that
+  is listed in the _seqlist_ argument and attempts to apply each of
+  the internal coordinates within _internals_.  The _seqlist_ argument
+  is a LIST of NUMBERs that represent sequence numbers or ranges of
+  sequence numbers.  Ranges of sequence numbers are represented by
+  two-element LISTs that contain the first and last sequence number
+  in the range.  The user can specify sequence number ranges that are
+  larger than what is found in the UNIT. For example the range { 1 999 }
+  represents all RESIDUEs in a 200 RESIDUE UNIT.
+  The _internals_ argument is a LIST of LISTs.  Each sublist contains
+  a sequence of ATOM names which are of type STRING followed by the
+  value of the internal coordinate.  See the output of help _types_ for
+  details on specifying STRINGs.  Examples of the impose command are:
+  
+  impose peptide { 1 2 3 } { { $N $CA  $C $N -40.0 } { $C $N  $CA $C
+  -60.0 } }
+  
+  The RESIDUEs with sequence numbers 1, 2, and 5 within the UNIT peptide
+  will assume an alpha helix conformation.
+  
+  impose peptide { 1 2  { 5 10 } 12 }  { { "CA" "CB" 5.0 } }
+  
+  This will impose on the residues with sequence numbers 1, 2, 5, 6,
+  7, 8, 9, 10, and 12 within the UNIT peptide a bond length of 5.0
+  angstroms between the alpha and beta carbons.  RESIDUEs without an
+  ATOM named $CB (like glycine)  will be unaffected.
+  Three types of conformational change are supported; bond length changes,
+  bond angle changes, and torsion angle changes.  If the conformational
+  change involves a torsion angle, then all dihedrals around the central
+  pair of atoms are rotated.   The entire list of internals are applied
+  to each RESIDUE.
+  
+  list
+  List all of the variables currently defined.
+  
+  listOff library
+        STRING                       _library_
+  
+  List the UNITs/PARMSETs stored within the Object File Format file
+  named _library_.
+  
+  variable = loadAmberParams filename
+        PARMSET                      _variable_
+        STRING                       _filename_
+  
+  Load an AMBER format parameter set file and place it in _variable_.
+  All interactions defined in the parameter set will be contained within
+  _variable_.   This command causes the loaded parameter set to be included
+  in LEaP's list of parameter sets that are searched when parameters are
+  required.  General proper and improper torsion parameters are modified,
+  the AMBER general type "X" is replaced with the LEaP general type "?".
+  
+  loadAmberPrep filename [ prefix ]
+  
+        STRING                       _filename_
+        STRING                       _prefix_
+  
+  This command loads an AMBER PREP input file.  For each residue that
+  is loaded, a new UNIT is constructed that contains a single RESIDUE
+  and a variable is created with the same name as the name of the residue
+  within the PREP file.   If the optional argument _prefix_ is provided
+  it will be prefixed to each variable name; this feature is used to
+  prefix united atom residues, which have the same names as all-atom
+  residues, with the string $U to distinguish them.
+  
+  variable = loadMol2 filename
+        STRING                       _filename_
+  
+  Load a Sybyl Mol2-format file with the file name _filename_.  The UNIT
+  loaded will have the name specified for the MOLECULE in the input file.
+  
+  variable = loadMol3 filename
+        STRING                       _filename_
+  
+  Load a Sybyl-derived Mol3-format file with the file name _filename_.
+  The UNIT loaded will have the name specified for the MOLECULE in the
+  input file.
+  
+  More information:
+  http://q4md-forcefieldtools.org/Tutorial/leap-mol3.php
+  
+  loadOff filename
+        STRING                       _filename_
+  
+  This command loads the Object File Format library within the file named
+  _filename_.  All UNITs and PARMSETs within the library will be loaded.
+  The objects are loaded into LEaP under the variable names the objects
+  had when they were saved.  Variables already in existence that have the
+  same names as the objects being loaded will be overwritten.  PARMSETs
+  loaded using this command are included in LEaP's library of PARMSETs
+  that is searched whenever parameters are required.
+  
+  variable = loadPdb filename
+        STRING                       _filename_
+  
+  Load a Protein Data Bank format file with the file name _filename_.
+  The sequence numbers of the RESIDUEs will be determined from the order
+  of residues within the PDB file ATOM records.  For each residue in the
+  PDB file, LEaP searches the variables currently defined for variable
+  names that match the residue name.  If a match is found then the
+  contents of the variable are copied into the UNIT created for the PDB
+  structure.  If no PDB `TER' card separates the current residue from the
+  previous one, a bond is created between the connect1 ATOM of the
+  previous residue and the connect0 atom of the new one.  (A PDB TER
+  record is also used to detect a new residue in the case of contiguous
+  residues with identical residue sequence numbers.)  As atoms are read
+  from the ATOM records, their coordinates are written into the
+  correspondingly named ATOMs within the residue being built.  If the
+  entire residue is read and it is found that ATOM coordinates are missing
+  then external coordinates are built from the internal coordinates that
+  were defined in the matching UNIT (residue) variable.  This allows LEaP
+  to build coordinates for hydrogens and lone pairs which are not
+  specified in PDB files.
+  
+  loadPdbUsingSeq filename unitlist
+  
+        STRING                       _filename_
+        LIST                         _unitlist_
+  
+  This command reads a Protein Data Bank format file from the file
+  named _filename_.  This command is identical to loadPdb except it
+  does not use the residue names within the PDB file.   Instead, the
+  sequence is defined by the user in _unitlist_.  For more details
+  see loadPdb.
+  
+  logFile filename
+  
+        STRING                       _filename_
+  
+  This command opens the file with the file name _filename_ as a log
+  file.  User input and ALL output is written to the log file.  Output
+  is written to the log file as if the verbosity level were set to 2.
+  
+  variable = matchVariables string
+  
+        LIST                         _variable_
+        STRING                       _string_
+  
+  Create a LIST of variables with names that match _string_. The _string_
+  argument can contain the wildcard characters "?" and "*" to match any
+  single character or substring of characters, respectively.
+  
+  measureGeom atom1 atom2 [ atom3 [ atom4 ] ]
+        ATOM                _atom1_ _atom2_ _atom3_ _atom4_
+  
+  Measure the distance, angle, or torsion between two, three, or four ATOMs,
+  respectively.
+  
+  quit
+  
+  relax obj
+  
+        UNIT                       _obj_
+  
+  Relaxes the selected atoms within _obj_.
+  
+  remove a b
+  
+        UNIT/RESIDUE/ATOM          _a_
+        UNIT/RESIDUE/ATOM          _b_
+  
+  Remove the object _b_ from the object _a_.   If _a_ is not contained
+  by _b_ then an error message will be displayed.  This command is
+  used to remove ATOMs from RESIDUEs, and RESIDUEs from UNITs.   If
+  the object represented by _b_ is not referenced by some variable
+  name then it will be destroyed.
+  
+  restrainAngle unit a b c force angle
+  
+        UNIT                         _unit_
+        ATOM                         _a_
+        ATOM                         _b_
+        ATOM                         _c_
+        NUMBER                       _force_
+        NUMBER                       _angle_
+  
+  Add an angle restraint to _unit_ between atoms _a_, _b_, and _c_,
+  having force constant of _force_, and equilibrium angle _angle_.
+  
+  restrainBond unit a b force length
+  
+        UNIT                         _unit_
+        ATOM                         _a_
+        ATOM                         _b_
+        NUMBER                       _force_
+        NUMBER                       _length_
+  
+  Add a bond (distance) restraint to _unit_ between atoms _a_ and _b_
+  with a force constant of _force_ and an equilibrium distance of _length_.
+  
+  restrainTorsion unit a b c d force phi multiplicity
+  
+        UNIT                         _unit_
+        ATOM                         _a_
+        ATOM                         _b_
+        ATOM                         _c_
+        ATOM                         _d_
+        NUMBER                       _force_
+        NUMBER                       _phi_
+        NUMBER                       _multiplicity_
+  
+  Add a torsion restraint to _unit_ between atoms _a_, _b_, _c_, and
+  _d_, with a force constant of _force_, an equilibrium torsion angle
+  of _phi_, and a multiplicity of _multiplicity_.
+  
+  saveAmberParm     unit topologyfilename coordinatefilename
+  
+        UNIT                         _unit_
+        STRING                       _topologyfilename_
+        STRING                       _coordinatefilename_
+  
+  Save the AMBER topology and coordinate files for the UNIT into the
+  files named _topologyfilename_ and _coordinatefilename_ respectively.
+  This command will cause LEaP to search its list of PARMSETs for
+  parameters defining all of the interactions between the ATOMs within
+  the UNIT.  This command produces a topology file and a coordinate file
+  which are identical in format to those produced by the AMBER program
+  PARM, and which can be read into AMBER and SPASMS for energy minimization,
+  dynamics, or nmode calculations.
+  See also: saveAmberParmPol, saveAmberParmPert, and saveAmberParmPolPert
+  for including atomic polarizabilities and preparing free energy
+  perturbation calculations and saveAmberParmNetcdf for saving in a
+  binary format.
+  
+  saveAmberParmNetcdf     unit topologyfilename coordinatefilename
+  
+  UNIT                         _unit_
+  STRING                       _topologyfilename_
+  STRING                       _coordinatefilename_
+  
+  Save the AMBER topology and coordinate files for the UNIT into the
+  files named _topologyfilename_ and _coordinatefilename_ respectively.
+  This command will cause LEaP to search its list of PARMSETs for
+  parameters defining all of the interactions between the ATOMs within
+  the UNIT.  This command produces a topology file and a coordinate file
+  which can be read into AMBER and SPASMS for energy minimization, dynamics,
+  or nmode calculations.
+  The coordinate file written will be in the binary NetCDF AMBER restart
+  format, which enables the writing of larger input files and quicker I/O.
+  Use saveAmberParm for the regular ASCII coordinate format.
+  
+  saveAmberParmPert unit topologyfilename coordinatefilename
+  
+        UNIT                         _unit_
+        STRING                       _topologyfilename_
+        STRING                       _coordinatefilename_
+  
+  Save the AMBER topology and coordinate files for the UNIT into the
+  files named _topologyfilename_ and _coordinatefilename_ respectively.
+  This command will cause LEaP to search its list of PARMSETs for
+  parameters defining all of the interactions between the ATOMs within
+  the UNIT - including the perturbed ATOMs (which are ignored by the
+  vanilla saveAmberParm command).  This command produces a topology file
+  and a coordinate file that are identical in format to those produced by
+  the AMBER PARM program using the PERT option, and which can be read into
+  AMBER and SPASMS for free energy calculations.
+  
+  saveAmberParmPol unit topologyfilename coordinatefilename
+  
+  Like saveAmberParm, but includes atomic polarizabilities in the topology
+  file for use with IPOL=1 in Sander. The polarizabilities are according
+  to atom type, and are defined in the 'mass' section of the parm.dat or
+  frcmod file. Note: charges are normally scaled when polarizabilities are
+  used - see scaleCharges for an easy way of doing this.
+  
+  saveAmberParmPolPert unit topologyfilename coordinatefilename
+  
+  Like saveAmberParmPert, but includes atomic polarizabilities in the topology
+  file for use with IPOL=1 in Gibbs. The polarizabilities are according to
+  atom type, and are defined in the 'mass' section of the parm.dat or frcmod
+  file. Note: charges are normally scaled when polarizabilities are used -
+  see scaleCharges for an easy way of doing this.
+  
+  saveAmberPrep unit filename
+  
+        UNIT                         _unit_
+        STRING                       _filename_
+  
+  Save all residues in the UNIT to a prep.in file. All possible improper
+  dihedrals are given for each residue, so unwanted ones need to be
+  deleted from the file. 'Connect0' and 'connect1' atoms must be defined
+  for each residue.
+  
+  saveMol2 unit filename option
+  
+        UNIT                         _unit_
+        STRING                       _filename_
+        NUMBER                       _option_
+  
+  Write UNIT to the file _filename_ as a Mol2 format file.
+  option = 0 for Default atom types
+  option = 1 for AMBER atom types
+  
+  More information:
+  https://upjv.q4md-forcefieldtools.org/Tutorial/leap-mol2.php
+  
+  saveMol3 unit filename option
+  
+        UNIT                         _unit_
+        STRING                       _filename_
+        NUMBER                       _option_
+  
+  Write UNIT to the file _filename_ as a Mol3 format file.
+  option = 0 for Default atom types
+  option = 1 for AMBER atom types
+  
+  More information:
+  http://q4md-forcefieldtools.org/Tutorial/leap-mol3.php
+  
+  saveOff object filename
+  
+        object                       _object_
+        STRING                       _filename_
+  
+  The saveOff command allows the user to save UNITs, and PARMSETs to a
+  file named _filename_.  The file is written using the Object File
+  Format (OFF) and can accommodate an unlimited number of uniquely
+  named objects.  The names by which the objects are stored are the
+  variable names specified in the argument of this command.  If the
+  file _filename_ already exists then the new objects will be added
+  to the file.  If there are objects within the file with the same
+  names as objects being saved then the old objects will be overwritten.
+  The argument _object_ can be a single UNIT, a single PARMSET, or
+  a LIST of mixed UNITs and PARMSETs.
+  
+  savePdb unit filename
+  
+        UNIT                         _unit_
+        STRING                       _filename_
+  
+  Write UNIT to the file _filename_ as a PDB format file.
+  
+  scaleCharges container scale_factor
+  
+        UNIT/RESIDUE/ATOM   _container_
+        NUMBER              _scale_factor_
+  
+  This command scales the charges in the object by _scale_factor_,
+  which must be > 0.  It is useful for building systems for use
+  with polarizable atoms, e.g.
+  > x = copy solute
+  > scaleCharges x 0.8
+  > y = copy WATBOX216
+  > scalecharges y 0.875
+  > solvatebox x y 10
+  > saveamberparmpol x x.top x.crd
+  
+  select obj
+  
+        UNIT/RESIDUE/ATOM          _obj_
+  
+  Sets the SELECT flag on all ATOMs within _obj_.  See the deSelect command.
+  
+  variable = sequence list
+  
+        LIST                         _list_
+  
+  The sequence command is used to create a new UNIT by copying the
+  contents of a LIST of UNITs.  As each UNIT in the list is copied,
+  a bond is created between its head atom and the tail ATOM of the
+  previous UNIT, if both connect ATOMs are defined.  If only one of
+  the connect pair is defined, a warning is generated and no bond is
+  created.  If neither connection ATOM is defined then no bond is
+  created.  As each RESIDUE within a UNIT is copied, it is assigned a
+  sequence number reflecting the order added.  The order of RESIDUEs
+  in multi-RESIDUE UNITs is maintained.
+  This command builds reasonable starting coordinates for the new UNIT
+  by assigning internal coordinates to the linkages between the component
+  UNITs and building the Cartesian coordinates from these and the
+  internal coordinates of the component UNITs.
+  
+  set default variable value
+        STRING                       _variable_
+        STRING                       _value_
+  OR
+      set container parameter object
+        UNIT/RESIDUE/ATOM/STRING     _container_
+        STRING                       _parameter_
+        object                       _object/value_
+  
+  This command sets the values of some global parameters (when the first
+  argument is "default") or sets various parameters associated with _container_.
+  
+  To see the possible variables for "set default", type "help set_default".
+  
+  The box parameter of a UNIT defines the bounding box of the UNIT; this is
+  not a UNIT's periodic box.  The setBox and solvate family of commands add a
+  periodic box to a UNIT; for a description, type, e.g., "help setBox".
+  
+  The more useful parameters for each type of _container_ are the following:
+    container    parameters           values
+  
+    UNIT         name                 STRING
+                 head, tail           ATOM [e.g. unit.1.1]
+                 restype              "protein" "nucleic" "saccharide" "solvent"
+                                      "undefined" [sets all residues in UNIT]
+                 box                  LIST [side lengths: {A B C}]
+                                      or NUMBER [cube side length] or "null"
+                 cap                  LIST [center, radius: {X Y Z  R}]
+                                      or "null"
+  
+    RESIDUE      name                 STRING
+    [e.g.        restype              [see UNIT]
+     unit.1]     connect0, connect1   ATOM [e.g. unit.1.1]
+                 imagingAtom          ATOM [e.g. unit.1.1]
+  
+    ATOM         name, pertName       STRING [<= 4 chars]
+    [e.g.        type, pertType       STRING [<= 2 chars]
+     unit.1.1]   element              STRING
+                 pert                 "true" [or pert flag unset]
+                 charge, pertCharge   DOUBLE
+                 position             LIST [{X Y Z}]
+  
+  Allowed arguments to "set default variable value" are these:
+    variables        values       descriptions
+  
+    PdbWriteCharges  "on"         add charges to each ATOM record
+                     "off"        don't do this (default)
+  
+    OldPrmtopFormat  "on"         use prmtop format from Amber6 and earlier
+                     "off"        use the new prmtop format (default)
+  
+    Gibbs            "on"         require perturbed atoms to be set explicitly
+                                     (needed for gibbs)
+                     "off"        set perturbed if Type != PertType (default)
+                                     (OK for sander)
+  
+    UseResIds        "on"         put cols 22-27 of the input pdb file into
+                     "off"        a RESIDUE_ID table in prmtop files; default
+                                  is "off"; only works with new prmtop formats,
+                                  and when a single loadPdb command is used to
+                                  create a unit.
+  
+    Charmm           "on"         include terms for CHARMM22 force fields
+                     "off"        don't include these (default)
+  
+    DeleteExtraPointAngles
+                     "on"         delete angles and torsions relating to
+                                     extra points (default)
+                     "off"        don't delete these (for older codes only)
+  
+    FlexibleWater    "on"         allow for flexible 3-point water models
+                     "off"        assume 3-point water models are rigid (default)
+  
+    PBRadii          "bondi"      use Bondi radii for generalized Born
+                     "mbondi"     use H-modified Bondi radii (default)
+                     "mbondi2"    use H(N)-modified Bondi radii
+                     "mbondi3"    ArgH and AspGluO modified Bondi2 radii
+                     "parse"      Radii from the Sitkoff et al. parse parameters
+                     "pbamber"    Huo and Kollman optimized radii (old!)
+                     "amber6"     use radii that were the default in amber6
+                                     (only recommended for backwards compat.)
+  
+    Dielectric       "distance"   use distance-dependent dielectric (default)
+                     "constant"   use constant dielectric
+  
+    dipole_damp_factor    real    sets the default value for "DIPOLE_DAMP_FACTOR"
+                                  for dipole screening factors in Thole models.
+                                  Valid value > 0.0
+  
+    sceescalefactor  real         sets the default value for "SCEE_SCALE_FACTOR"
+                                  for 1-4 EEL scaling factors. Valid value > 0.0.
+                                  Default=1.2.
+  
+    scnbscalefactor  real         sets the default value for "SCNB_SCALE_FACTOR"
+                                  for 1-4 NB scaling factors. Valid value > 0.0.
+                                  Default=2.0.
+  
+    CMAP             "on"         include CMAP corrections for dihedrals
+                     "off"        don't include these (default)
+  
+    PHIPSIMAP        "on"         include residue-based PHIPSI parameters
+                     "off"        don't include these (default)
+  
+    ipol             integer      Sets the default value for IPOL.
+                                  Valid values are 0 - 4.
+                                  Default value is 0, meaning disabled.
+  
+    nocenter         "on"         coordinates will not be centered in the
+                                  periodic simulation box
+                     "off"        coordinates will be centered (default)
+  
+    reorder_residues "on"         solvent will be moved to the end (default)
+                     "off"        residue order will be maintained as input.
+                                  Beta feature: use at your own risk!
+  
+  setBox solute enclosure [ buffer ]
+        UNIT                         _solute_
+        "vdw" OR "centers"           _enclosure_
+        object                       _buffer_
+  
+  The setBox command creates a periodic box around the _solute_ UNIT, turning
+  it into a periodic system for the simulation programs.  It does not add
+  any solvent to the system. The choice of "vdw" or "centers" determines
+  whether the box encloses all entire atoms or just all atom centers -
+  use "centers" if the system has been previously equilibrated as a
+  periodic box. See the solvateBox command for a description of the
+  buffer object, which extends either type of box by an arbitrary amount.
+  
+  showDefault [ variable OR all OR * ]
+        STRING                       _variable_
+  
+  The showdefault command shows the values assigned to the variables by
+  the "set default" command. Without variable, with "all", or with "*",
+  all default variables are shown.
+  
+  solvateBox solute solvent buffer [ "iso" ] [ closeness ]
+  
+        UNIT                         _solute_
+        UNIT                         _solvent_
+        object                       _buffer_
+        NUMBER                       _closeness_
+  
+  The solvateBox command creates a solvent box around the _solute_ UNIT.
+  The _solute_ UNIT is modified by the addition of _solvent_ RESIDUEs.
+  
+  The user may want to first align long solutes that are not expected
+  to tumble using alignAxes, in order to minimize box volume.
+  
+  The normal choice for a TIP3 _solvent_ UNIT is WATBOX216. Note that
+  constant pressure equilibration is required to bring the artificial box
+  to reasonable density, since Van der Waals voids remain due to the
+  impossibility of natural packing of solvent around the solute and at
+  the edges of the box.
+  
+  The solvent box UNIT is copied and repeated in all three spatial directions
+  to create a box containing the entire solute and a buffer zone defined
+  by the _buffer_ argument. The _buffer_ argument defines the distance,
+  in angstroms, between the wall of the box and the closest ATOM in the
+  solute.
+  
+  If the buffer argument is a single NUMBER, then the buffer distance is
+  the same for the x, y, and z directions, unless the "iso" option is used
+  to make the box isometric, with the shortest box clearance = buffer. If
+  "iso" is used, the solute is rotated to orient the principal axes,
+  otherwise it is just centered on the origin.
+  
+  If the buffer argument is a LIST of three NUMBERS, then the NUMBERs are
+  applied to the x, y, and z axes respectively. As the larger box is created
+  and superimposed on the solute, solvent molecules overlapping the solute
+  are removed.
+  
+  The optional _closeness_ parameter can be used to control the extent to
+  which _solvent_ ATOMs overlap _solute_ ATOMs.  The default value of
+  the _closeness_ argument is 1.0, which allows no overlap.  Smaller
+  values allow solvent ATOMs to overlap _solute_ ATOMs by (1 - closeness) *
+  R*ij, where R*ij is the sum of the Van der Waals radii of solute and
+  solvent atoms.  Values greater than 1 enforce a minimum gap between
+  solvent and solute of (closeness - 1) * R*ij.
+  
+  This command modifies the _solute_ UNIT in several ways.  First, the
+  coordinates of the ATOMs are modified to move the center of a box
+  enclosing the Van der Waals radii of the atoms to the origin.  Secondly,
+  the UNIT is modified by the addition of _solvent_ RESIDUEs copied from
+  the _solvent_ UNIT. Finally, the box parameter of the new system (still
+  named for the _solute_) is modified to reflect the fact that a periodic,
+  rectilinear solvent box has been created around it.
+  
+  solvateCap solute solvent position radius [ closeness ]
+  
+        UNIT                         _solute_
+        UNIT                         _solvent_
+        object                       _position_
+        NUMBER                       _radius_
+        NUMBER                       _closeness_
+  
+  The solvateCap command creates a solvent cap around the _solute_ UNIT
+  or a part thereof.  The _solute_ UNIT is modified by the addition of
+  _solvent_ RESIDUEs.
+  The normal choice for a TIP3 _solvent_ UNIT is WATBOX216. The _solvent_
+  box is repeated in all three spatial directions and _solvent_ RESIDUEs
+  selected to create a solvent sphere with a radius of _radius_ Angstroms.
+  
+  The _position_ argument defines where the center of the solvent cap
+  is to be placed.   If _position_ is a UNIT, RESIDUE, ATOM, or a LIST
+  of UNITs, RESIDUEs, or ATOMs, then the geometric center of the ATOMs
+  within the object will be used as the center of the solvent cap sphere.
+  If _position_ is a LIST containing three NUMBERs then the _position_
+  argument will be treated as a vector that defines the position of
+  the solvent cap sphere center.
+  
+  The optional _closeness_ parameter can be used to control the extent to
+  which _solvent_ ATOMs overlap _solute_ ATOMs.  The default value of
+  the _closeness_ argument is 1.0, which allows no overlap.  Smaller
+  values allow solvent ATOMs to overlap _solute_ ATOMs by (1 - closeness) *
+  R*ij, where R*ij is the sum of the Van der Waals radii of solute and
+  solvent atoms.  Values greater than 1 enforce a minimum gap between
+  solvent and solute of (closeness - 1) * R*ij.
+  
+  This command modifies the _solute_ UNIT in several ways.  First,
+  the UNIT is modified by the addition of _solvent_ RESIDUEs copied
+  from the _solvent_ UNIT. Secondly, the cap parameter of the UNIT
+  _solute_ is modified to reflect the fact that a solvent cap has been
+  created around the solute.
+  
+  solvateDontClip solute solvent buffer [ closeness ]
+  
+        UNIT                         _solute_
+        UNIT                         _solvent_
+        object                       _buffer_
+        NUMBER                       _closeness_
+  
+  This command is identical to the solvateBox command except that the
+  solvent box that is created is not clipped to the boundary of the
+  _buffer_ region.  This command forms larger solvent boxes than does
+  solvateBox because it does not cause solvent that is outside the buffer
+  region to be discarded.   This helps to preserve the periodic structure
+  of properly constructed solvent boxes, preventing hot-spots from
+  forming.
+  
+  solvateOct solute solvent buffer [ "iso" ] [ closeness ]
+  
+        UNIT                         _solute_
+        UNIT                         _solvent_
+        object                       _buffer_
+        NUMBER                       _closeness_
+  
+  The solvateOct command is the same as solvateBox, except the corners
+  of the box are sliced off, resulting in a truncated octahedron, which
+  typically gives a more uniform distribution of solvent around the
+  solute.
+  
+  In solvateOct, when a LIST is given for the buffer argument, four
+  numbers are given instead of three, where the fourth is the diagonal
+  clearance. If 0.0 is given as the fourth number, the diagonal clearance
+  resulting from the application of the x,y,z clearances is reported. If
+  a non-0 value is given, this may require scaling up the other clearances,
+  which is also reported. Similarly, if a single number is given, any
+  scaleup of the x,y,z buffer to accommodate the diagonal clip is reported.
+  
+  If the "iso" option is used, the isometric truncated octahedron is
+  rotated to an orientation used by the PME code, and the box and angle
+  dimensions output by the saveAmberParm* commands are adjusted for PME
+  code imaging.
+  
+  solvateShell solute solvent thickness [ closeness ]
+  
+        UNIT                         _solute_
+        UNIT                         _solvent_
+        NUMBER                       _thickness_
+        NUMBER                       _closeness_
+  
+  The solvateShell command creates a solvent shell around the _solute_ UNIT.
+  The _solute_ UNIT is modified by the addition of _solvent_ RESIDUEs.
+  
+  The normal choice for a TIP3 _solvent_ UNIT is WATBOX216. The _solvent_ box
+  is repeated in all three spatial directions and _solvent_ RESIDUEs selected
+  to create a solvent shell with a radius of _thickness_ Angstroms around the
+  _solute_.
+  
+  The _thickness_ argument defines the maximum distance a _solvent_ ATOM may
+  be from the closest _solute_ ATOM.
+  
+  The optional _closeness_ parameter can be used to control overlap of _solvent_
+  with _solute_ ATOMs.   The default value of the _closeness_ argument is
+  1.0, which allows contact but no overlap.  Please see the solvateBox
+  command for more details on the _closeness_ parameter.
+  
+  source filename
+        STRING                       _filename_
+  
+  This command executes LEaP commands within a text file.  To display the
+  commands as they are read, see the verbosity command.  The text within
+  the source file must be formatted exactly like the text the user types
+  into LEaP.
+  
+  transform atoms matrix
+  
+        CONTAINER/LIST               _atoms_
+        LIST                         _matrix_
+  
+  Translate all of the ATOMs within _atoms_ by the (3X3) or (4X4) matrix
+  defined by the 9 or 16 NUMBERs in the LIST of LISTs _matrix_.
+      { { r11  r12  r13  -tx }
+        { r21  r22  r23  -ty }
+        { r31  r32  r33  -tz }
+        { 0    0    0     1  } }
+  The diagonal upper left elements, rII can be used for symmetry operations,
+  e.g. a reflection in the XY plane can be produced with r11=1, r22=1, r33=-1
+  where the other rIJ elements are 0. The -t column is used to specify
+  translations along the appropriate axes (0 for no translation).
+  
+  translate atoms direction
+  
+        UNIT/RESIDUE/ATOM            _atoms_
+        LIST                         _direction_
+  
+  Translate all of the ATOMs within _atoms_ by the vector defined by
+  the three NUMBERs in the LIST _ direction_.
+  
+  verbosity level
+  
+        NUMBER                       _level_
+  
+  This command sets the level of output that LEaP provides the user.
+  A value of 0 is the default, providing the minimum of messages.  A
+  value of 1 will produce more output, and a value of 2 will produce
+  all of the output of level 1 and display the text of the script lines
+  executed with the source command.
+  
+  zMatrix obj zmatrix
+  
+        UNIT/RESIDUE/ATOM            _obj_
+        LIST                         _zmatrix_
+  
+  The zMatrix command is quite complicated.  It is used to define the
+  external coordinates of ATOMs within _obj_ using internal coordinates.
+  The second parameter of the zMatrix command is a LIST of LISTs; each
+  sub-list has several arguments:
+  
+  { a1 a2 bond12 }
+  
+  This entry defines the coordinate of _a1_ by placing it _bond12_ angstroms
+  along the x-axis from ATOM _a2_.   If ATOM _a2_ does not have coordinates
+  defined then ATOM _a2_ is placed at the origin.
+  
+  { a1 a2 a3 bond12 angle123 }
+  
+  This entry defines the coordinate of _a1_ by placing it _bond12_ angstroms
+  away from ATOM _a2_ making an angle of _angle123_ degrees between
+  _a1_, _a2_ and _a3_.  The angle is measured in a right hand sense
+  and in the x-y plane.   ATOMs _a2_ and _a3_ must have coordinates defined.
+  
+  { a1 a2 a3 a4 bond12 angle123 torsion1234 }
+  
+  This entry defines the coordinate of _a1_ by placing it _bond12_ angstroms
+  away from ATOM _a2_, creating an angle of _angle123_ degrees between
+  _a1_, _a2_, and _a3_, and making a torsion angle of _torsion1234_ between
+  _a1_, _a2_, _a3_, and _a4_.
+  
+  { a1 a2 a3 a4 bond12 angle123 angle124 orientation }
+  
+  This entry defines the coordinate of _a1_ by placing it _bond12_ angstroms
+  away from ATOM _a2_, making angles _angle123_ between ATOMs _a1_,
+  _a2_, and _a3_, and _angle124_ between ATOMs _a1_, _a2_, and _a4_.  The
+  argument _orientation_ defines whether the ATOM _a1_ is above or below
+  a plane defined by the ATOMs _a2_, _a3_, and _a4_.  If _orientation_
+  is positive then _a1_ will be placed in such a way so that the inner
+  product of (_a3_-_a2_)  cross (_a4_-_a2_) with (_a1_-_a2_) is positive.
+  Otherwise _a1_ will be placed on the other side of the plane.  This
+  allows the coordinates of a molecule like fluoro-chloro-bromo-methane
+  to be defined without having to resort to dummy atoms.
+  The first arguments within the zMatrix entries ( _a1_, _a2_, _a3_,
+  _a4_ ) are either ATOMs or STRINGs containing names of ATOMs within
+  _obj_.   The subsequent arguments are all NUMBERs.   Any ATOM can be
+  placed at the _a1_ position, even those that have coordinates defined.
+  This feature can be used to provide an endless supply of dummy atoms,
+  if they are required.   A predefined dummy atom with the name "*"
+  (a single asterisk, no quotes)  can also be used.
+  No order is imposed in the sub-lists.  The user can place sub-lists
+  in arbitrary order, as long as they maintain the requirement that
+  all atoms _a2_, _a3_, and _a4_ must have external coordinates defined,
+  except for entries that define the coordinate of an ATOM using only
+  a bond length.
+
+
+    ]]>     </help>
+     <expand macro="citations" />
+</tool>