IMP  2.3.0
The Integrative Modeling Platform
models.py
1 #!/usr/bin/env python
2 
3 __doc__ = "Write output models as PDB files."
4 
5 # analyse the ensemble, first we will do the rmsd stuff
6 import IMP.multifit
7 from IMP import OptionParser
8 
9 
10 def parse_args():
11  usage = """%prog [options] <asmb.input> <proteomics.input>
12  <mapping.input> <combinations> <model prefix>
13 
14 Write output models.
15 """
16  parser = OptionParser(usage)
17  parser.add_option("-m", "--max", type="int", dest="max", default=None,
18  help="maximum number of models to write")
19  (options, args) = parser.parse_args()
20  if len(args) != 5:
21  parser.error("incorrect number of arguments")
22  return options, args
23 
24 
25 def run(asmb_fn, proteomics_fn, mapping_fn, combs_fn, model_output, max_comb):
26  # get rmsd for subunits
27  mdl = IMP.kernel.Model()
28  combs = IMP.multifit.read_paths(combs_fn)
29  sd = IMP.multifit.read_settings(asmb_fn)
30  sd.set_was_used(True)
31  prot_data = IMP.multifit.read_proteomics_data(proteomics_fn)
32  mapping_data = IMP.multifit.read_protein_anchors_mapping(prot_data,
33  mapping_fn)
34  ensmb = IMP.multifit.load_ensemble(sd, mdl, mapping_data)
35  mhs = ensmb.get_molecules()
36  print "number of combinations:", len(combs), max_comb
37  for i, comb in enumerate(combs[:max_comb]):
38  if i % 500 == 0:
39  print i
40  ensmb.load_combination(comb)
41  print model_output + "." + str(i) + ".pdb"
42  IMP.atom.write_pdb(mhs, model_output + "." + str(i) + ".pdb")
43  ensmb.unload_combination(comb)
44 
45 
46 def main():
47  options, args = parse_args()
48  run(args[0], args[1], args[2], args[3], args[4], options.max)
49 
50 if __name__ == "__main__":
51  main()
void write_pdb(const Selection &mhd, base::TextOutput out, unsigned int model=1)
SettingsData * read_settings(const char *filename)
ProteinsAnchorsSamplingSpace read_protein_anchors_mapping(multifit::ProteomicsData *prots, const std::string &anchors_prot_map_fn, int max_paths=INT_MAX)
Ensemble * load_ensemble(multifit::SettingsData *sd, Model *mdl, const ProteinsAnchorsSamplingSpace &mapping_data)
Fitting atomic structures into a cryo-electron microscopy density map.
ProteomicsData * read_proteomics_data(const char *proteomics_fn)
Proteomics reader.
IMP::kernel::OptionParser OptionParser
IntsList read_paths(const char *txt_filename, int max_paths=INT_MAX)
Read paths.
Class for storing model, its restraints, constraints, and particles.
Definition: kernel/Model.h:73