Source code for prody.apps.prody_apps.prody_biomol

"""Generate biomolecule structure using the transformation from the header
section of the PDB file."""

from ..apptools import *

__all__ = ['prody_biomol']

[docs]def prody_biomol(pdbname,**kwargs): """Generate biomolecule coordinates. :arg pdb: PDB identifier or filename :arg prefix: prefix for output files, default is :file:`_biomol` :arg biomol: index of the biomolecule, by default all are generated""" import prody LOGGER = prody.LOGGER prefix, biomol = kwargs.get('prefix',None), kwargs.get('biomol') pdb, header = prody.parsePDB(pdbname, header=True) if not prefix: prefix = pdb.getTitle() biomols = prody.buildBiomolecules(header, pdb, biomol=biomol) if not isinstance(biomols, list): biomols = [biomols] for i, biomol in enumerate(biomols): if isinstance(biomol, prody.Atomic): outfn = '{0}_biomol_{1}.pdb'.format(prefix, i+1) LOGGER.info('Writing {0}'.format(outfn)) prody.writePDB(outfn, biomol) elif isinstance(biomol, tuple): for j, part in enumerate(biomol): outfn = ('{0}_biomol_{1}_part_{2}.pdb' .format(prefix, i+1, j+1)) LOGGER.info('Writing {0}'.format(outfn)) prody.writePDB(outfn, part)
def addCommand(commands): subparser = commands.add_parser('biomol', help='build biomolecules') subparser.add_argument('--quiet', help="suppress info messages to stderr", action=Quiet, nargs=0) subparser.add_argument('--examples', action=UsageExample, nargs=0, help='show usage examples and exit') subparser.set_defaults(usage_example= """Generate biomolecule coordinates: $ prody biomol 2bfu""", test_examples=[0] ) subparser.add_argument('-p', '--prefix', dest='prefix', type=str, default=None, metavar='STR', help=('prefix for output files (default: pdb_biomol_)')) subparser.add_argument('-b', '--biomol', dest='biomol', type=int, default=None, metavar='INT', help='index of the biomolecule, by default all are generated') subparser.add_argument('pdb', help='PDB identifier or filename') subparser.set_defaults(func=lambda ns: prody_biomol(ns.pdb, **ns.__dict__)) subparser.set_defaults(subparser=subparser)