4 from IMP
import ArgumentParser
6 __doc__ =
"Add RMSD to reference to each fitting file."
11 Given a set of local fits (e.g. generated by fit_fft), the RMSD between each
12 subunit and a reference orientation is calculated and added to each fitting
13 file, in the final "RMSD to reference" column. (The original fitting file is
14 not modified; a new fitting file is created with a '.RMSD' extension.)
16 Note that the assembly input file must contain a reference PDB filename for
17 each subunit (in the rightmost column).
19 p = ArgumentParser(description=desc)
20 p.add_argument(
"-d", action=
"store_true", dest=
"use_dock",
21 help=
"if set the docking transformation is used (and not "
22 "the fitting transformation)")
23 p.add_argument(
"assembly_file", help=
"assembly file name")
24 p.add_argument(
"proteomics_file", help=
"proteomics file name")
25 p.add_argument(
"mapping_file", help=
"mapping file name")
26 p.add_argument(
"param_file", help=
"parameter file name")
30 def run(asmb_fn, proteomics_fn, mapping_fn, params_fn, dock_trans):
36 prot_data, mapping_fn)
37 alignment_params = IMP.multifit.AlignmentParams(params_fn)
39 mapping_data, asmb, alignment_params)
42 mdl = align.get_model()
43 mhs = align.get_molecules()
44 for i, mh
in enumerate(mhs):
45 fits_fn = asmb.get_component_header(i).get_transformations_fn()
47 print(
"calculating rmsd for", len(fits),
"fits of protein",
51 asmb.get_component_header(i).get_reference_fn(),
56 for i, rec
in enumerate(fits):
57 fit_t = rec.get_fit_transformation()
59 fit_t = rec.get_dock_transformation()
62 rec.set_rmsd_to_reference(rmsd)
70 run(args.assembly_file, args.proteomics_file, args.mapping_file,
71 args.param_file, args.use_dock)
74 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)