diff --git a/actions/doc/index.rst b/actions/doc/index.rst index aa14b3f87cf571511cc3d02b519a87508350340e..6f997647d88c93065000eaf46b0f9163c40ba73d 100644 --- a/actions/doc/index.rst +++ b/actions/doc/index.rst @@ -123,19 +123,25 @@ You can (re-)construct the sidechains in a model from the command line. .. code-block:: console - $ pm build-sidechains [-h] [-o <FILENAME>] [-k] [-n] [-r] in_file + $ usage: build-sidechains [-h] (-p <FILE> | -e <FILE>) [-o <FILENAME>] [-k] + [-n] [-r] Example usage: .. code-block:: console - $ pm build-sidechains input.pdb + $ pm build-sidechains -p input.pdb This reads a structure stored in in.pdb, strips all sidechains, detects and models disulfid bonds and reconstructs all sidechains with the flexible rotamer model. The result is stored as :file:`out.pdb`. The output filename can be controlled with the ``-o`` flag. +A structure can be provided in PDB (``-p``) or in any format readable by the +:func:`ost.io.LoadEntity` method (``-e``). In the latter case, the format is +chosen by file ending. Recognized File Extensions: ``.ent``, ``.pdb``, +``.ent.gz``, ``.pdb.gz``, ``.cif``, ``.cif.gz``. + Several flags control the modelling behaviour: .. option:: -k, --keep-sidechains diff --git a/actions/pm-build-sidechains b/actions/pm-build-sidechains index f67a32c3ac5b335c417b41835e78bc82dcae96b1..a04cd7b1b927994ee2603f7b24280ab2e500f3b4 100644 --- a/actions/pm-build-sidechains +++ b/actions/pm-build-sidechains @@ -20,20 +20,16 @@ ost.PushVerbosityLevel(2) # parse command line parser = pm3argparse.PM3ArgumentParser(__doc__, action=True) -parser.add_argument('in_file', type=str, help='File to load coordinates ' + - '(PDB format)') - +parser.AddStructure() +parser.AssembleParser() parser.add_argument('-o', '--out-file', metavar='<FILENAME>', type=str, default='out.pdb', help='File to store coordinates ' + '(default: %(default)s)') - parser.add_argument('-k', '--keep-sidechains', action='store_true', help='Keep existing sidechains') - parser.add_argument('-n', '--no-disulfids', action='store_true', help='Do not build disulfid bonds before sidechain ' + 'optimization') - parser.add_argument('-r', '--rigid-rotamers', action='store_true', help='Do not use rotamers with subrotamers') @@ -41,10 +37,10 @@ opts = parser.Parse() ost.PushVerbosityLevel(3) -if not os.path.isfile(opts.in_file): - helper.MsgErrorAndExit("Failed to load input file '%s'." % opts.in_file, 4) +if len(opts.structures) != 1: + helper.MsgErrorAndExit("Expect exactly one input structure", 4) -prot = io.LoadPDB(opts.in_file) +prot = opts.structures[0] rotamer_model = "frm" if opts.rigid_rotamers: rotamer_model = "rrm"