IMP logo
IMP Reference Guide  develop.d97d4ead1f,2024/11/21
The Integrative Modeling Platform
indexes.py
1 #!/usr/bin/env python
2 
3 import IMP.multifit
4 from IMP import ArgumentParser
5 
6 __doc__ = "Generate indexes of fitting solutions."
7 
8 
9 def parse_args():
10  desc = """Generate indexes of fitting solutions."""
11  p = ArgumentParser(description=desc)
12  p.add_argument("assembly_name", help="name of the assembly")
13  p.add_argument("assembly_file", help="assembly file name")
14  p.add_argument("num_fits", type=int, help="number of fits")
15  p.add_argument("indexes_file", help="indexes file name")
16  return p.parse_args()
17 
18 
19 def run(assembly_name, asmb_fn, num_fits, mapping_fn=""):
20  IMP.set_log_level(IMP.WARNING)
21  asmb_input = IMP.multifit.read_settings(asmb_fn)
22  asmb_input.set_was_used(True)
23  ap_em_fn = asmb_input.get_assembly_header().get_coarse_over_sampled_ap_fn()
24  if mapping_fn == "":
25  mapping_fn = assembly_name + ".indexes.mapping.input"
26  mapping_data = open(mapping_fn, "w")
27  mapping_data.write("|anchors|" + ap_em_fn + "|\n")
28  for i in range(asmb_input.get_number_of_component_headers()):
29  name = asmb_input.get_component_header(i).get_name()
30  trans_fn = asmb_input.get_component_header(i).get_transformations_fn()
32  print("number of fits for component", i, "is", len(fits), trans_fn)
33  index_fn = assembly_name + "." + name + ".fit.indexes.txt"
34  indexes = []
35  for i in range(min(num_fits, len(fits))):
36  indexes.append([i])
37  IMP.multifit.write_paths(indexes, index_fn)
38  mapping_data.write("|protein|" + name + "|" + index_fn + "|\n")
39  mapping_data.close()
40 
41 
42 def main():
43  args = parse_args()
44  run(args.assembly_name, args.assembly_file, args.num_fits,
45  args.indexes_file)
46 
47 
48 if __name__ == "__main__":
49  main()
void write_paths(const IntsList &paths, const std::string &txt_filename)
SettingsData * read_settings(const char *filename)
Fitting atomic structures into a cryo-electron microscopy density map.
void set_log_level(LogLevel l)
Set the current global log level.
FittingSolutionRecords read_fitting_solutions(const char *fitting_fn)
Fitting solutions reader.