3 from __future__
import print_function
5 from IMP
import ArgumentParser
7 __doc__ =
"Add RMSD to reference to each fitting file."
12 Given a set of local fits (e.g. generated by fit_fft), the RMSD between each
13 subunit and a reference orientation is calculated and added to each fitting
14 file, in the final "RMSD to reference" column. (The original fitting file is
15 not modified; a new fitting file is created with a '.RMSD' extension.)
17 Note that the assembly input file must contain a reference PDB filename for
18 each subunit (in the rightmost column).
20 p = ArgumentParser(description=desc)
21 p.add_argument(
"-d", action=
"store_true", dest=
"use_dock",
22 help=
"if set the docking transformation is used (and not "
23 "the fitting transformation)")
24 p.add_argument(
"assembly_file", help=
"assembly file name")
25 p.add_argument(
"proteomics_file", help=
"proteomics file name")
26 p.add_argument(
"mapping_file", help=
"mapping file name")
27 p.add_argument(
"param_file", help=
"parameter file name")
31 def run(asmb_fn, proteomics_fn, mapping_fn, params_fn, dock_trans):
37 prot_data, mapping_fn)
38 alignment_params = IMP.multifit.AlignmentParams(params_fn)
40 mapping_data, asmb, alignment_params)
43 mdl = align.get_model()
44 mhs = align.get_molecules()
45 for i, mh
in enumerate(mhs):
46 fits_fn = asmb.get_component_header(i).get_transformations_fn()
48 print(
"calculating rmsd for", len(fits),
"fits of protein",
52 asmb.get_component_header(i).get_reference_fn(),
57 for i, rec
in enumerate(fits):
58 fit_t = rec.get_fit_transformation()
60 fit_t = rec.get_dock_transformation()
63 rec.set_rmsd_to_reference(rmsd)
71 run(args.assembly_file, args.proteomics_file, args.mapping_file,
72 args.param_file, args.use_dock)
75 if __name__ ==
"__main__":
def main
Run a set of tests; similar to unittest.main().
SettingsData * read_settings(const char *filename)
GenericHierarchies get_leaves(Hierarchy mhd)
Get all the leaves of the bit of hierarchy.
void read_pdb(TextInput input, int model, Hierarchy h)
ProteinsAnchorsSamplingSpace read_protein_anchors_mapping(multifit::ProteomicsData *prots, const std::string &anchors_prot_map_fn, int max_paths=INT_MAX)
Align proteomics graph to EM density map.
double get_rmsd(const Selection &s0, const Selection &s1)
void transform(XYZ a, const algebra::Transformation3D &tr)
Apply a transformation to the particle.
Fitting atomic structures into a cryo-electron microscopy density map.
void write_fitting_solutions(const char *fitting_fn, const FittingSolutionRecords &fit_sols, int num_sols=-1)
Write fitting solutions to a file.
ProteomicsData * read_proteomics_data(const char *proteomics_fn)
Proteomics reader.
FittingSolutionRecords read_fitting_solutions(const char *fitting_fn)
Fitting solutions reader.
IMP::core::RigidBody create_rigid_body(Hierarchy h)