IMP logo
IMP Reference Guide  2.19.0
The Integrative Modeling Platform
anchors.py
1 #!/usr/bin/env python
2 
3 from __future__ import print_function
4 import IMP.multifit
5 import IMP.em
6 from IMP import ArgumentParser
7 
8 __doc__ = "Generate anchors for a density map."
9 
10 def parse_args():
11  desc = """Generate anchors for a density map."""
12  p = ArgumentParser(description=desc)
13  p.add_argument("-s", "--size", type=int, dest="size", default=-1,
14  help="number of residues per bead")
15  p.add_argument("assembly_file", help="assembly file name")
16  p.add_argument("anchor_prefix", help="prefix for output anchors file names")
17 
18  return p.parse_args()
19 
20 
21 def main():
22  args = parse_args()
23  output = args.anchor_prefix
24  asmb = IMP.multifit.read_settings(args.assembly_file)
25  asmb.set_was_used(True)
26  dmap = IMP.em.read_map(asmb.get_assembly_header().get_dens_fn(),
28  if args.size == -1:
29  number_of_means = asmb.get_number_of_component_headers()
30  else:
31  total_num_residues = 0
32  mdl = IMP.Model()
33  for i in range(asmb.get_number_of_component_headers()):
34  total_num_residues += len(
35  IMP.atom.get_by_type(
37  asmb.get_component_header(
38  i).get_filename(
39  ),
40  mdl),
41  IMP.atom.RESIDUE_TYPE))
42  number_of_means = total_num_residues / args.size
43  print("Calculating a segmentation into", number_of_means, "regions")
44  density_threshold = asmb.get_assembly_header().get_threshold()
45 
46  IMP.multifit.get_anchors_for_density(dmap, number_of_means,
47  density_threshold,
48  output + ".pdb", output + ".cmm",
49  "", output + ".txt")
50 
51 if __name__ == "__main__":
52  main()
SettingsData * read_settings(const char *filename)
void read_pdb(TextInput input, int model, Hierarchy h)
Class for storing model, its restraints, constraints, and particles.
Definition: Model.h:86
void get_anchors_for_density(em::DensityMap *dmap, int number_of_means, float density_threshold, std::string pdb_filename, std::string cmm_filename, std::string seg_filename, std::string txt_filename)
Generate anchors in several formats for a given density map.
Fitting atomic structures into a cryo-electron microscopy density map.
Basic utilities for handling cryo-electron microscopy 3D density maps.