IMP  2.3.0
The Integrative Modeling Platform
IMP::cnmultifit Namespace Reference

Generate cyclic atomic structures using cryo-electron microscopy data. More...

Detailed Description

Generate cyclic atomic structures using cryo-electron microscopy data.

This module implements a protocol for generating atomic structures of complexes with cyclic symmetry (such as rings), using only the atomic structure of a single subunit and a cryo-electron microscopy density map of the complex. See the IMP::multifit module for a similar protocol for handling non-symmetric complexes.

Generally, this module is not used directly; instead, the cnmmultifit application is used.

Info

Author(s): Keren Lasker

Maintainer: benmwebb

License: LGPL This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

Publications:

Classes

class  AlignSymmetric
 A class for fast alignment of a cyclic model to its density. More...
 
class  CnSymmAxisDetector
 Detect cn symmetry in proteins and density maps. More...
 
class  MolCnSymmAxisDetector
 molecule symmetry detector More...
 

Typedefs

typedef IMP::base::Vector
< AlignSymmetric
AlignSymmetrics
 
typedef IMP::base::Vector
< CnSymmAxisDetector
CnSymmAxisDetectors
 
typedef IMP::base::Vector
< MolCnSymmAxisDetector
MolCnSymmAxisDetectors
 

Functions

em::DensityMapbuild_cn_dens_assembly (em::DensityMap *subunit_dens, const em::DensityHeader &asmb_dens_header, algebra::Transformation3D monomer_t, int symm_deg)
 
algebra::Transformation3D calc_transformation_around_axis (algebra::Vector3D a, algebra::Vector3D b, float angle_rad)
 
float cn_symm_score (atom::Hierarchies mhs, const algebra::Vector3D &center, const algebra::Vector3D &direction, int symm_deg)
 scores an input vector as a symmetry axis More...
 
void do_all_fitting (const std::string param_filename, const std::string chimera_filename="")
 High level interface to build cyclic symmetric complexes. More...
 
em::FittingSolutions fit_cn_assembly (atom::Hierarchies mhs, int dn_symm_deg, em::DensityMap *dmap, float threshold, const AlignSymmetric &aligner, bool sample_translation=false, bool fine_rotational_sampling=true)
 Fit a symmetric model to its density. More...
 
em::FittingSolutions fit_cn_assembly (em::DensityMap *asmb_map, const MolCnSymmAxisDetector &symm_mol, em::DensityMap *dmap, const CnSymmAxisDetector &symm_map, int symm_deg, float threshold)
 
algebra::Transformation3Ds generate_cn_transformations (atom::Hierarchies mhs, int symm_deg)
 
algebra::Transformation3Ds generate_translations_along_symm_axis (atom::Hierarchies mhs, int symm_deg)
 
float get_cn_rmsd (atom::Hierarchies mh1, atom::Hierarchies mh2)
 Find correspondence between the two rings and calculate rmsd. More...
 
Floats get_rmsd_for_models (const std::string param_filename, const std::string trans_filename, const std::string ref_filename, int start_model=0, int end_model=-1)
 
bool pca_matching (const algebra::PrincipalComponentAnalysis &pca1, const algebra::PrincipalComponentAnalysis &pca2, float resolution)
 
multifit::FittingSolutionRecords prune_by_pca (const std::string &param_fn, const multifit::FittingSolutionRecords &sols, int dn=1)
 
em::FittingSolutions symmetry_local_fitting (atom::Hierarchies mhs, int cn_symm_deg, int dn_symm_deg, em::DensityMap *dmap, int num_of_trans_to_consider)
 
void transform_cn_assembly (atom::Hierarchies mhs, algebra::Transformation3D monomer_t)
 

Standard module functions

All IMP modules have a set of standard functions to help get information about the module and about files associated with the module.

std::string get_module_version ()
 
std::string get_module_name ()
 
std::string get_data_path (std::string file_name)
 Return the full path to installed data. More...
 
std::string get_example_path (std::string file_name)
 Return the path to installed example data for this module. More...
 

Typedef Documentation

Pass or store a set of AlignSymmetric .

Definition at line 62 of file AlignSymmetric.h.

Function Documentation

float IMP::cnmultifit::cn_symm_score ( atom::Hierarchies  mhs,
const algebra::Vector3D &  center,
const algebra::Vector3D &  direction,
int  symm_deg 
)

scores an input vector as a symmetry axis

void IMP::cnmultifit::do_all_fitting ( const std::string  param_filename,
const std::string  chimera_filename = "" 
)

High level interface to build cyclic symmetric complexes.

Given a parameter file, this function does all the work to build a number of fits of the monomer into a density map of the symmetric complex.

Parameters
param_filenameName of a parameter file.
chimera_filenameIf not empty, the name of a file that will be generated containing Chimera-compatible fit information.
em::FittingSolutions IMP::cnmultifit::fit_cn_assembly ( atom::Hierarchies  mhs,
int  dn_symm_deg,
em::DensityMap *  dmap,
float  threshold,
const AlignSymmetric &  aligner,
bool  sample_translation = false,
bool  fine_rotational_sampling = true 
)

Fit a symmetric model to its density.

float IMP::cnmultifit::get_cn_rmsd ( atom::Hierarchies  mh1,
atom::Hierarchies  mh2 
)

Find correspondence between the two rings and calculate rmsd.

std::string IMP::cnmultifit::get_data_path ( std::string  file_name)

Return the full path to installed data.

Each module has its own data directory, so be sure to use the version of this function in the correct module. To read the data file "data_library" that was placed in the data directory of module "mymodule", do something like

std::ifstream in(IMP::mymodule::get_data_path("data_library"));

This will ensure that the code works when IMP is installed or used via the setup_environment.sh script.

std::string IMP::cnmultifit::get_example_path ( std::string  file_name)

Return the path to installed example data for this module.

Each module has its own example directory, so be sure to use the version of this function in the correct module. For example to read the file example_protein.pdb located in the examples directory of the IMP::atom module, do

model));

This will ensure that the code works when IMP is installed or used via the setup_environment.sh script.