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> |