<appConfig xmlns="http://nbcr.sdsc.edu/opal/types"
           xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <metadata appName="PDB2PQR 2.0.0">
    <usage><![CDATA[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. Version 1.9.0.
<BR><A HREF=http://www.nbcr.net/ws_help/PDB2PQR/>
Tutorial: http://www.nbcr.net/ws_help/PDB2PQR/
</A>
]]></usage>
    <info xsd:type="xsd:string">
    <![CDATA[

pdb2pqr  (Version 2.0.0)
Usage: pdb2pqr.py [options] PDB_PATH PQR_OUTPUT_PATH

This module takes a PDB file as input and performs optimizations before
yielding a new PQR-style file in PQR_OUTPUT_PATH. If PDB_PATH is an ID it will
automatically be obtained from the PDB archive.

Options:
  --version             show program's version number and exit
  -h, --help            show this help message and exit

  Manditory options:
    One of the following options must be used.

    --ff=FIELD_NAME     The forcefield to use - currently amber, charmm,
                        parse, tyl06, peoepb and swanson are supported.
    --userff=USER_FIELD_FILE
                        The user created forcefield file to use. Requires
                        --usernames overrides --ff
    --clean             Do no optimization, atom addition, or parameter
                        assignment, just return the original PDB file in
                        aligned format. Overrides --ff and --userff

  General options:
    --nodebump          Do not perform the debumping operation
    --noopt             Do not perform hydrogen 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.
    --ffout=FIELD_NAME  Instead of using the standard canonical naming scheme
                        for residue and atom names, use the names from the
                        given forcefield - currently amber, charmm, parse,
                        tyl06, peoepb and swanson are supported.
    --usernames=USER_NAME_FILE
                        The user created names file to use. Required if using
                        --userff
    --apbs-input        Create a template APBS input file based on the
                        generated PQR file.  Also creates a Python pickle for
                        using these parameters in other programs.
    --ligand=PATH       Calculate the parameters for the ligand in mol2 format
                        at the given path. Pdb2pka must be compiled.
    --whitespace        Insert whitespaces between atom name and residue name,
                        between x and y, and between y and z.
    --typemap           Create Typemap output.
    --neutraln          Make the N-terminus of this protein neutral (default
                        is charged). Requires PARSE force field.
    --neutralc          Make the C-terminus of this protein neutral (default
                        is charged). Requires PARSE force field.
    -v, --verbose       Print information to stdout.
    --drop-water        Drop waters before processing protein. Currently
                        recognized and deleted are the following water types:
                        HOH, WAT
    --include-header    Include pdb header in pqr file. WARNING: The resulting
                        PQR file will not work with APBS versions prior to 1.5

  pH options:
    --ph-calc-method=PH_METHOD
                        Method used to calculate ph values. If a pH
                        calculation method is selected, for each titratable
                        residue pH values will be calculated and the residue
                        potentially modified after comparison with the pH
                        value supplied by --with_ph propka - Use PROPKA to
                        calculate pH values. Actual PROPKA results will be
                        output to <output-path>.propka. pdb2pka - Use PDB2PKA
                        to calculate pH values. Requires the use of the PARSE
                        force field. Warning: Larger residues can take a very
                        long time to run using this method. EXPERIMENTAL!
    --with-ph=PH        pH values to use when applying the results of the
                        selected pH calculation method. Defaults to 7.0

  Extension options:
    --chi               Print the per-residue backbone chi angle to {output-
                        path}.chi
    --summary           Print protein summary information to {output-
                        path}.summary.
    --contact           Print a list of contacts to {output-path}.con
    --newresinter       Print interaction energy between each residue pair in
                        the protein to {output-path}.newresinter.
    --salt              Print a list of salt bridges to {output-path}.salt

  Hbond extension options:
    --hbond             Print a list of hydrogen bonds to {output-path}.hbond
    --whatif            Change hbond output to WHAT-IF format.
    --angle_cutoff=ANGLE_CUTOFF
                        Angle cutoff to use when creating hbond data (default
                        30.0)
    --distance_cutoff=DISTANCE_CUTOFF
                        Distance cutoff to use when creating hbond data
                        (default 3.4)
    --old_distance_method
                        Use distance from donor hydrogen to acceptor to
                        calculate distance used with --distance_cutoff.

  Resinter extension options:
    --resinter          Print interaction energy between each residue pair in
                        the protein to {output-path}.resinter.
    --residue_combinations
                        Remap residues to different titration states and rerun
                        resinter appending output. Consider only the minimum
                        number of whole protein titration combinations needed
                        to test each possible pairing of residue titration
                        states. Normally used with --noopt. If a protein
                        titration state combination results in a pair of
                        residue being  re-tested in the same individual
                        titration states a warning will be generated if the
                        re-tested result is different. This warning should not
                        be possible if used with --noopt.
    --all_residue_combinations
                        Remap residues to ALL possible titration state
                        combinations and rerun resinter appending output.
                        Results with --noopt should be the same as
                        --residue_combinations. Runs considerably slower than
                        --residue_combinations and generates the same type of
                        warnings.  Use without --noopt to discover how
                        hydrogen optimization affects residue  interaction
                        energies via the warnings in the output.

  Rama extension options:
    --rama              Print the per-residue phi and psi angles to {output-
                        path}.rama for Ramachandran plots
    --phi_only          Only include phi angles in output. Rename output file
                        {output-path}.phi
    --psi_only          Only include psi angles in output. Rename output file
                        {output-path}.psi

    ]]>
    </info>

    <types> 
        <!-- list of flags -->
        <flags>
            <flag>
                <id>verbose</id>
                <tag>--verbose</tag>
                <textDesc>Print information to stdout</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 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. Overwrites chosen forcefield.</textDesc>
            </flag>
            <flag>
                <id>apbs-input</id>
                <tag>--apbs-input</tag>
                <textDesc>Create a template APBS input file based on the generated PQR file.
                          Also creates a Python pickle for using these parameters in other programs.
                </textDesc>
            </flag>
            <flag>
                <id>whitespace</id>
                <tag>--whitespace</tag>
                <textDesc>Insert whitespaces between atom name and residue name,
                           between x and y, and between y and z </textDesc>
            </flag>
            <flag>
                <id>typemap</id>
                <tag>--typemap</tag>
                <textDesc>Create Typemap output </textDesc>
            </flag>
            <flag>
                <id>neutraln</id>
                <tag>--neutraln</tag>
                <textDesc>Make the N-terminus of this protein neutral (default is charged)</textDesc>
            </flag>
            <flag>
                <id>neutralc</id>
                <tag>--neutralc</tag>
                <textDesc>Make the C-terminus of this protein neutral (default is charged)</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>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_only</id>
                <tag>--psi_only</tag>
                <textDesc>Only include phi angles in Rama output. Rename output file {output-path}.psi</textDesc>
            </flag>
            <flag>
                <id>phi_only</id>
                <tag>--phi_only</tag>
                <textDesc>Only include phi angles in Rama output. Rename output file {output-path}.phi</textDesc>
            </flag>
            <flag>
`               <id>contact</id>
                <tag>--contact</tag>
                <textDesc>Print a list of contacts to {output-path}.con</textDesc>
            </flag>
            <flag>
`               <id>salt</id>
                <tag>--salt</tag>
                <textDesc>Print a list of salt bridges to {output-path}.salt </textDesc>
            </flag>
            <flag>
`               <id>summary</id>
                <tag>--summary</tag>
                <textDesc>Print protein summary information to {output-path}.summary.</textDesc>
            </flag>
            <flag>
                <id>hbond</id>
                <tag>--hbond</tag>
                <textDesc>Print a list of hydrogen bonds to {output-path}.hbond</textDesc>
            </flag>
            <flag>
                <id>whatif</id>
                <tag>--whatif</tag>
                <textDesc>Change hbond output to WHAT-IF format.</textDesc>
            </flag>
            <flag>
                <id>old_distance_method</id>
                <tag>--old_distance_method</tag>
                <textDesc>Use distance from donor hydrogen to acceptor to calculate distance used with --distance_cutoff.</textDesc>
            </flag>
            <flag>
                <id>resinter</id>
                <tag>--resinter</tag>
                <textDesc>Print interaction energy between each residue pair in
													the protein to {output-path}.resinter.</textDesc>
            </flag>
            <flag>
                <id>residue_combinations</id>
                <tag>--residue_combinations</tag>
                <textDesc>Remap residues to different titration states and rerun
													resinter appending output. Consider only the minimum
													number of whole protein titration combinations needed
													to test each possible pairing of residue titration
													states. Normally used with --noopt. If a protein
													titration state combination results in a pair of
													residue being  re-tested in the same individual
													titration states a warning will be generated if the
													re-tested result is different. This warning should not
													be possible if used with --noopt.</textDesc>
            </flag>
            <flag>
                <id>all_residue_combinations</id>
                <tag>--all_residue_combinations</tag>
                <textDesc>Remap residues to ALL possible titration state
													combinations and rerun resinter appending output.
													Results with --noopt should be the same as
													--residue_combinations. Runs considerably slower than
													--residue_combinations and generates the same type of
													warnings.  Use without --noopt to discover how
													hydrogen optimization affects residue  interaction
													energies via the warnings in the output.</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>PEOEPB</value>
                <value>SWANSON</value>
                <value>TYL06</value>
                <default>PARSE</default>
                <textDesc>Currently supported</textDesc>
            </param>
            <param>
                <id>user-forcefield</id>
                <tag>--userff</tag>
                <paramType>FILE</paramType>
                <ioType>INPUT</ioType>
                <required>false</required>  
                <textDesc>User-defined forcefield </textDesc>
            </param>
            <param>
                <id>usernames</id>
                <tag>--usernames</tag>
                <paramType>FILE</paramType>
                <ioType>INPUT</ioType>
                <required>false</required>  
                <textDesc>The user-created names file to use. Required if using user defined forcefield </textDesc>

            </param>
            <param>
                <id>ffout</id>
                <tag>--ffout</tag>
                <paramType>STRING</paramType>
                <value>AMBER</value>
                <value>CHARMM</value>
                <value>PARSE</value>
                <value>PEOEPB</value>
                <value>SWANSON</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>ph-calc-method</id>
                <tag>--ph-calc-method</tag>
                <paramType>STRING</paramType>
				<value>PROPKA</value>
                <value>PDB2PKA</value>
				<required>false</required> 
                <textDesc>Method used to calculate ph values, if any. If a pH
                        calculation method is selected, for each titratable
                        residue pH values will be calculated and the residue
                        potentially modified after comparison with the pH
                        value supplied by --with_ph propka - Use PROPKA to
                        calculate pH values. Actual PROPKA results will be
                        output to output-path.propka. pdb2pka - Use PDB2PKA
                        to calculate pH values. Requires the use of the PARSE
                        force field. Warning: Larger residues can take a very
                        long time to run using this method. EXPERIMENTAL!</textDesc>
            </param>
            <param>
                <id>with-ph</id>
                <tag>--with-ph</tag>
                <paramType>FLOAT</paramType>
				<required>false</required> 
				<default>7.0</default>
                <textDesc>pH values to use when applying the results of the
                        selected pH calculation method. Defaults to 7.0</textDesc>
            </param>
            <param>
                <id>ligand</id>
                <tag>--ligand</tag>
                <paramType>FILE</paramType>
                <ioType>OUTPUT</ioType>
                <textDesc>Calculate the parameters for the ligand in mol2 format at the given path. Pdb2pka must be compiled.</textDesc> 

            </param>
            <param>
                <id>angle_cutoff</id>
                <tag>--angle_cutoff</tag>
                <paramType>FLOAT</paramType>
                <textDesc>Angle cutoff to use when creating hbond data (default 30.0)</textDesc>
            </param>
            <param>
                <id>distance_cutoff</id>
                <tag>--distance_cutoff</tag>
                <paramType>FLOAT</paramType>
                <textDesc>Distance cutoff to use when creating hbond data (default 3.4)</textDesc>
            </param>
        </taggedParams>
    
        <!-- list of untagged parameters, in order -->
        <untaggedParams>
            <param>
                <id>inId</id>
                <paramType>STRING</paramType>
                <ioType>INPUT</ioType>
                <!--  <required>true</required>   -->
                <textDesc>a PDB ID (fetch input file from PDB archive; for test use 1a1p)</textDesc>
            </param>
            <param>
                <id>inFile</id>
                <paramType>FILE</paramType>
                <ioType>INPUT</ioType>
                <!--  <required>true</required>   -->
                <textDesc><![CDATA[ upload a PDB input file (test file <a href="http://www.rcsb.org/pdb/files/1a1p.pdb">http://www.rcsb.org/pdb/files/1a1p.pdb</a>)]]></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>
        <groups>
          <group>
            <name>inputParam</name>
            <elements>inId inFile</elements>
            <required>true</required>
            <exclusive>true</exclusive>
            <textDesc>Please enter either:</textDesc>
          </group>
          <group>
            <name>ForceFieldGroup</name>
            <elements>forcefield </elements>
            <required>true</required>
            <textDesc>Pick a forcefield to use:</textDesc>
          </group>
          <group>
            <name>UserForceFieldGroup</name>
            <elements>user-forcefield usernames</elements>
            <required>true</required>
            <textDesc>User forcefield to use (overwrites previous forcefield):</textDesc>
          </group>
          <group>
            <name>outputFile</name>
            <elements>output-file</elements>
            <required>true</required>
            <textDesc>Output file name</textDesc>
          </group>
          <group>
            <name>ffoutGroup</name>
            <elements>ffout</elements>
            <required>false</required>
            <textDesc>Pick an output naming scheme to use</textDesc>
          </group>
          <group>
            <name>AvailableOptionsGroup</name>
            <elements>clean nodebump noopt chain assign-only ph-calc-method with-ph apbs-input 
                      ligand whitespace typemap neutraln neutralc verbose </elements>
            <required>false</required>
            <textDesc>Available options </textDesc>
          </group>
          <group>
            <name>ExtensionOptionsGroup</name>
            <elements>chi contact salt summary </elements>
            <textDesc>Extensions options:</textDesc>
          </group>
          <group>
            <name>HbondExtensionOptionsGroup</name>
            <elements>hbond whatif angle_cutoff distance_cutoff old_distance_method </elements>
            <textDesc> Hbond Extensions options:</textDesc>
          </group>
          <group>
            <name>ResinterExtensionOptionsGroup</name>
            <elements>resinter residue_combinations all_residue_combinations </elements>
            <textDesc>Resinter Extensions options:</textDesc>
          </group>
          <group>
            <name>RamaExtensionOptionsGroup</name>
            <elements>rama phi_only psi_only </elements>
            <textDesc>Rama Extensions options:</textDesc>
          </group>
        </groups>
    </types>

  </metadata>

  <binaryLocation>/share/apps/pdb2pqr/pdb2pqr.py</binaryLocation>
 <drmaaQueue>si</drmaaQueue> 
   <parallel>false</parallel>
</appConfig>
