rotamer_pdb.py is a script demonstrating the usage of RotamerCalculator and RotamerLibrary. It reads a PDB file and a rotamer library file, and tries to rotate the atoms based on the most probable chi angles from the rotamer library. Then it saves the rotated atoms to a specified output PDB file.
Usage:
python rotamer_pdb.py -i <input>.pdb -l <rotamer_library>.lib -o <output>.pdb
Example (the result will be saved into transformed_1z5s_A.pdb):
../../../tools/imppy.sh python rotamer_pdb.py -i ../../atom/test/input/1z5s_A.pdb \ -l /path/to/ALL.bbdep.rotamers.lib -o transformed_1z5s_A.pdb
20 from __future__
import print_function
28 def transform(input_pdb, input_lib, output_pdb):
31 rl.read_library_file(input_lib)
37 mh = IMP.atom.get_by_type(orig_h, IMP.atom.RESIDUE_TYPE)
41 rc.transform(orig_h, hps, 0.9, 1e-6, 6)
53 if __name__ ==
'__main__':
58 P.add_option(
'--input_pdb',
'-i', action=
'store', type=
'string',
59 help=
'input PDB file (required)')
60 P.add_option(
'--input_lib',
'-l', action=
'store', type=
'string',
61 help=
'input rotamer library file (required)')
62 P.add_option(
'--output_pdb',
'-o', action=
'store', type=
'string',
63 help=
'output PDB file (required)')
64 P.add_option(
'--verbose',
'-v', action=
'store_true',
65 help=
'show more messages')
66 opts, args = P.parse_args()
68 not (opts.input_pdb
or opts.input_lib
or opts.output_pdb):
71 if not opts.input_pdb:
72 print(
'--input_pdb is required')
74 if not opts.output_pdb:
75 print(
'--output_pdb is required')
77 if not opts.input_lib:
78 print(
'--input_lib is required')
84 transform(opts.input_pdb, opts.input_lib, opts.output_pdb)