This example shows how to write the Opal submission configuration file for the PDB2PQR program, which is designed to automate many of the common tasks of preparing structures for continuum electrostatics calculations, by providing a platform-independent utility for converting protein files in PDB format to PQR format. Located at $OPAL_HOME/configs/pdb2pqr_config.xml, it includes advanced features such as the specification of command-line arguments.
<appConfig xmlns="http://nbcr.sdsc.edu/opal/types" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <!-- metadata about the application being wrapped --> <metadata appName="PDB2PQR"> <usage>PDB2PQR is a Python software package that automates many of the common tasks of preparing structures for continuum electrostatics calculations, providing a platform-independent utility for converting protein files in PDB format to PQR format.</usage> <info> <![CDATA[ python pdb2pqr.py [options] --ff={forcefield} {path} {output-path} The required arguments are as follows: <forcefield> The forcefield to use -- currently AMBER (AMBER99, Wang J, et al, 2000), CHARMM (CHARMM27, MacKerell AD Jr, et al, 1998), PARSE (PARSE, Sitkoff D, et al, 1994), and TYL06 (Tan C, et al, 2006) are supported. <path> The path to the PDB file or an ID to obtain from the PDB archive <output-path> The desired output name of the PQR file to be generated Optional command-line arguments are: --nodebump Do not perform the debumping operation --noopt Do not perform hydrogen bonding network optimization --chain Keep the chain ID in the output PQR file --assign-only Only assign charges and radii - do not add atoms, debump, or optimize. --clean Do no optimization, atom addition, or parameter assignment, just return the original PDB file in aligned format. --ffout=<name> Instead of using the standard canonical naming scheme for residue and atom names,use the names from the given forcefield. --with-ph=<ph> Use PROPKA to calculate pKas and apply them to the molecule given the pH value. Actual PropKa results will be output to <output-path>.propka. --ligand=<mol2 file> Use the PDB2PKA package to generate parameters for the specific ligand in MOL2 format. MOL2-format ligands can be generated using PRODRG server or from within some molecular modeling packages --apbs-input Create a template APBS input file based on the generated PQR file. --verbose (-v) Print information to stdout --help (-h) Display the usage information Additional optional command-line arguments from the extensions directory are: --chi Print the per-residue backbone chi angle to {output-path}.chi --phi Print the per-residue backbone phi angle to {output-path}.phi --psi Print the per-residue backbone psi angle to {output-path}.psi --rama Print the per-residue phi and psi angles to {output-path}.rama for Ramachandran plots --hbond Print a list of hydrogen bonds to {output-path}.hbond ]]> </info> <!-- information about command-line arguments --> <types> <!-- list of flags --> <flags> <flag> <id>verbose</id> <tag>--verbose</tag> <textDesc>Provide verbose output</textDesc> <default>true</default> </flag> <flag> <id>nodebump</id> <tag>--nodebump</tag> <textDesc>Do not perform the debumping operation</textDesc> </flag> <flag> <id>noopt</id> <tag>--noopt</tag> <textDesc>Do not perform hydrogen bonding network optimization</textDesc> </flag> <flag> <id>chain</id> <tag>--chain</tag> <textDesc>Keep the chain ID in the output PQR file</textDesc> </flag> <flag> <id>assign-only</id> <tag>--assign-only</tag> <textDesc>Only assign charges and radii - do not add atoms, debump, or optimize</textDesc> </flag> <flag> <id>clean</id> <tag>--clean</tag> <textDesc>Do no optimization, atom addition, or parameter assignment, just return the original PDB file in aligned format</textDesc> </flag> <flag> <id>apbs-input</id> <tag>--apbs-input</tag> <textDesc>Create a template APBS input file based on the generated PQR file</textDesc> </flag> <flag> <id>chi</id> <tag>--chi</tag> <textDesc>Print the per-residue backbone chi angle to {output-path}.chi</textDesc> </flag> <flag> <id>phi</id> <tag>--phi</tag> <textDesc>Print the per-residue backbone phi angle to {output-path}.phi</textDesc> </flag> <flag> <id>rama</id> <tag>--rama</tag> <textDesc>Print the per-residue phi and psi angles to {output-path}.rama for Ramachandran plots</textDesc> </flag> <flag> ` <id>psi</id> <tag>--psi</tag> <textDesc>Print the per-residue backbone psi angle to {output-path}.psi</textDesc> </flag> <flag> <id>hbond</id> <tag>--hbond</tag> <textDesc>Print a list of hydrogen bonds to {output-path}.hbond</textDesc> </flag> </flags> <!-- list of tagged parameters --> <taggedParams> <separator>=</separator> <param> <id>forcefield</id> <tag>--ff</tag> <paramType>STRING</paramType> <required>true</required> <value>AMBER</value> <value>CHARMM</value> <value>PARSE</value> <value>TYL06</value> <default>AMBER</default> <textDesc>The forcefield to use -- currently AMBER, CHARMM, PARSE, and TYL06 are supported.</textDesc> </param> <param> <id>ffout</id> <tag>--ffout</tag> <paramType>STRING</paramType> <value>AMBER</value> <value>CHARMM</value> <value>PARSE</value> <value>TYL06</value> <textDesc>Instead of using the standard canonical naming scheme for residue and atom, use names from the given forcefield</textDesc> </param> <param> <id>with-ph</id> <tag>--with-ph</tag> <paramType>STRING</paramType> <textDesc>Use PROPKA to calculate pKas and apply them to the molecule given the pH value</textDesc> </param> <param> <id>ligand</id> <tag>--ligand</tag> <paramType>FILE</paramType> <ioType>OUTPUT</ioType> <textDesc>Use the PDB2PKA package to generate parameters for the specific ligand in MOL2 format.</textDesc> </param> </taggedParams> <!-- list of untagged parameters, in order --> <untaggedParams> <param> <id>inFile</id> <paramType>FILE</paramType> <ioType>INPUT</ioType> <!-- <required>true</required> --> <textDesc><![CDATA[ The PDB input file (for testing you can download http://www.rcsb.org/pdb/files/1a1p.pdb)]]></textDesc> </param> <param> <id>inId</id> <paramType>STRING</paramType> <ioType>INPUT</ioType> <!-- <required>true</required> --> <textDesc>The ID to use to retrive the input file from the PDB archive (for testing use '1a1p')</textDesc> </param> <param> <id>output-file</id> <paramType>FILE</paramType> <ioType>OUTPUT</ioType> <required>true</required> <default>output.pqr</default> <textDesc>The desired output name of the PQR file to be generated</textDesc> </param> </untaggedParams> <!-- grouping of parameters --> <groups> <group> <name>inputParam</name> <elements>inFile inId</elements> <required>true</required> <exclusive>true</exclusive> <textDesc>Input file to be used (choose one of the two options)</textDesc> </group> <group> <name>otherRequiredGroup</name> <elements>forcefield output-file</elements> <required>true</required> <textDesc>Other required parameters</textDesc> </group> <group> <name>ffoutGroup</name> <elements>ffout</elements> <required>false</required> <textDesc>Output naming schema to be used</textDesc> </group> <group> <name>perResidueGroup</name> <elements>chi phi psi rama hbond</elements> <textDesc>Additional optional command-line arguments from the extensions directory are</textDesc> </group> <group> <name>otherParamGroup</name> <elements>with-ph ligand verbose nodebump noopt chain assign-only clean apbs-input</elements> <required>false</required> <textDesc>Other parameters</textDesc> </group> </groups> </types> </metadata> <!-- location of execution on the server --> <binaryLocation>/usr/local/bin/pdb2pqr.py</binaryLocation> <!-- list of default arguments --> <defaultArgs>--verbose</defaultArgs> <!-- whether to validate command-line arguments using type information above --> <validateArgs>true</validateArgs> <!-- overrule default job manager, if need be --> <jobManagerFQCN>edu.sdsc.nbcr.opal.manager.ForkJobManager</jobManagerFQCN> <!-- whether this application is serial or parallel --> <parallel>false</parallel> </appConfig> |