IMP  2.0.0
The Integrative Modeling Platform
IMP::multifit Namespace Reference

See IMP.multifit Overview for more information.

Classes

class  AssemblyHeader
 Holds data about the assembly density needed for optimization. More...
 
class  ComplementarityRestraint
 Compute the complementarity between two molecules. More...
 
class  ComponentHeader
 Holds data about a component needed for optimization. More...
 
class  DataPointsAssignment
 
class  DensityDataPoints
 Stores density voxels as a vector of Array1D. More...
 
class  FittingSolutionRecord
 A fitting solution record. More...
 
class  FittingStates
 
class  ProteinsAnchorsSamplingSpace
 stores the anchors sampling space for each protein More...
 
class  RadiusOfGyrationRestraint
 Ensure the radius of gyration of particles fits the predicted one. More...
 
class  RMSDClustering
 RMSD clustering. More...
 
class  SettingsData
 Holds header data for optimization. More...
 
class  WeightedExcludedVolumeRestraint
 Calculate score based on fit to EM map. More...
 

Typedefs

typedef IMP::base::Vector
< AlignmentParams > 
AlignmentParamsList
 
typedef IMP::base::Vector
< AnchorsData > 
AnchorsDataList
 
typedef std::map< IntPair, int > CEdges
 
typedef IMP::base::Vector
< ComplementarityParams > 
ComplementarityParamsList
 
typedef IMP::base::Vector
< IMP::base::Pointer
< ComponentHeader > > 
ComponentHeaders
 
typedef IMP::base::Vector
< ConnectivityParams > 
ConnectivityParamsList
 
typedef
IMP::algebra::DenseGrid3D
< double > 
DensGrid
 
typedef IMP::base::Vector
< IMP::base::Pointer
< DensityDataPoints > > 
DensityDataPointsList
 
typedef IMP::base::Vector
< DominoParams > 
DominoParamsList
 
typedef IMP::base::Vector
< IMP::base::Pointer< Ensemble > > 
Ensembles
 
typedef IMP::base::Vector
< EVParams > 
EVParamsList
 
typedef IMP::base::Vector
< FiltersParams > 
FiltersParamsList
 
typedef IMP::base::Vector
< FittingParams > 
FittingParamsList
 
typedef IMP::base::Vector
< FittingSolutionRecord
FittingSolutionRecords
 
typedef IMP::base::Vector
< FragmentsParams > 
FragmentsParamsList
 
typedef IMP::base::Vector
< IMP::base::Pointer
< ProbabilisticAnchorGraph > > 
ProbabilisticAnchorGraphs
 
typedef IMP::base::Vector
< ProteinRecordData > 
ProteinRecordDataList
 
typedef IMP::base::Vector
< ProteinsAnchorsSamplingSpace
ProteinsAnchorsSamplingSpaces
 
typedef IMP::base::Vector
< IMP::base::Pointer
< ProteomicsEMAlignmentAtomic > > 
ProteomicsEMAlignmentAtomics
 
typedef IMP::base::Vector
< RogParams > 
RogParamsList
 
typedef IMP::base::Vector
< IMP::base::Pointer
< TransformationClustering > > 
TransformationClusterings
 
typedef IMP::base::Vector
< XlinkParams > 
XlinkParamsList
 

Functions

void add_surface_index (core::Hierarchy mhd, Float apix, FloatKey shell_key=FloatKey("surf_ind"), FloatKey radius_key=core::XYZR::get_radius_key(), FloatKey weight_key=atom::Mass::get_mass_key())
 add shell index to leaves More...
 
FittingSolutionRecords convert_em_to_multifit_format (const em::FittingSolutions &em_fits)
 
algebra::Transformation3Ds convert_multifit_format_to_transformations (const FittingSolutionRecords &recs)
 
em::FittingSolutions convert_multifit_to_em_format (const FittingSolutionRecords &multifit_fits)
 
FittingSolutionRecords convert_transformations_to_multifit_format (const algebra::Transformation3Ds &trans)
 
atom::Hierarchy create_coarse_molecule_from_density (em::DensityMap *dmap, float dens_threshold, int num_beads, Model *mdl, float bead_radius)
 Coarsen a density map based on voxels clustering. More...
 
atom::Hierarchy create_coarse_molecule_from_molecule (const atom::Hierarchy &mh, int num_beads, Model *mdl, float bead_radius, bool add_conn_restraint=false)
 Coarsen a molecule based on atom clustering. More...
 
atom::Hierarchies create_coarse_molecules_from_molecules (const atom::Hierarchies &mhs, int frag_len, Model *mdl, float bead_radius, bool add_conn_restraint=false)
 Coarsen molecules based on atom clustering. More...
 
em::DensityMapcreate_hit_map (core::RigidBody rb, Refiner *rb_ref, const FittingSolutionRecords &sols, em::DensityMap *damp)
 
IMP::Restraintcreate_weighted_excluded_volume_restraint (core::RigidBody rb1, core::RigidBody rb2, FloatKey shell_key=FloatKey("surf_ind"))
 create a weighted excluded volume restraint between two rigid bodies More...
 
multifit::FittingSolutionRecords fft_based_rigid_fitting (atom::Hierarchy mol2fit, em::DensityMap *dmap, double density_threshold, double angle_sampling_interval_rad)
 FFT fit of a molecule in the density. More...
 
em::FittingSolutions fitting_clustering (const atom::Hierarchy &mh, const em::FittingSolutions &ts, float spacing, int top_sols, float rmsd)
 
float get_actual_radius_of_gyration (ParticlesTemp ps)
 
IntsList get_anchor_indices_matching_secondary_structure (const AnchorsData &ad, const atom::SecondaryStructureResidues &ssrs, Float max_rmsd=0.7)
 Get lists of anchors that match a sequence of secondary structures. More...
 
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.
 
float get_approximated_radius (int len)
 
float get_approximated_radius_of_gyration (int len)
 
FittingSolutionRecords get_close_to_point (const FittingSolutionRecords &fit_sols, atom::Hierarchy mh, IMP::Particle *ap, Float dist)
 prune solutions by distance to an anchor point More...
 
IntsList get_clustered (Particles ps, const algebra::Transformation3Ds &trans, float max_rmsd, float max_angle_diff_in_rad, float max_displace, int min_cluster_size)
 Cluster transformations. More...
 
IntsList get_connected_components (em::DensityMap *dmap, float threshold, float edge_threshold)
 Return connected components based on density values. More...
 
std::string get_data_path (std::string file_name)
 Return the full path to installed data. More...
 
statistics::Histogram get_density_histogram (const em::DensityMap *dmap, float threshold, int num_bins)
 Get a histogram of density values.
 
std::string get_example_path (std::string file_name)
 Return the path to installed example data for this module. More...
 
ProteinsAnchorsSamplingSpace get_part_of_sampling_space (const ProteinsAnchorsSamplingSpace &prots_ss, const Strings &prot_names)
 Get the sampling space of few of the proteins.
 
multifit::SettingsDataget_partial_assembly_setting_data (multifit::SettingsData *prots_sd, const Strings &prot_names)
 Get the assembly data for a few of the proteins.
 
ProteomicsData * get_partial_proteomics_data (const ProteomicsData *pd, const Strings &prot_names)
 
algebra::Vector3Ds get_points_close_to_molecule (const atom::Hierarchy &mh, const algebra::Vector3Ds points, Float max_dist)
 
algebra::Vector3Ds get_points_far_from_molecule (const atom::Hierarchy &mh, const algebra::Vector3Ds points, Float max_dist)
 
algebra::Vector3D get_segment_maximum (const DataPointsAssignment &dpa, em::DensityMap *dmap, int segment_id)
 
algebra::Vector3D get_segment_maximum (const DataPointsAssignment &dpa, DensGrid *dmap, int segment_id)
 
em::DensityMapgrid2map (const DensGrid &dg, float spacing)
 
Ensemble * load_ensemble (multifit::SettingsData *sd, Model *mdl, const ProteinsAnchorsSamplingSpace &mapping_data)
 
AnchorsData molecule2anchors (atom::Hierarchy mh, int k)
 
em::FittingSolutions pca_based_rigid_fitting (core::RigidBody rb, Refiner *rb_refiner, em::DensityMap *em_map, Float threshold, FloatKey wei_key=atom::Mass::get_mass_key(), algebra::PrincipalComponentAnalysis dens_pca_input=algebra::PrincipalComponentAnalysis())
 Compute fitting scores for a given set of rigid transformations. More...
 
em::FittingSolutions pca_based_rigid_fitting (ParticlesTemp ps, em::DensityMap *em_map, Float threshold, FloatKey wei_key=atom::Mass::get_mass_key(), algebra::PrincipalComponentAnalysis dens_pca_input=algebra::PrincipalComponentAnalysis())
 Compute fitting scores for a given set of rigid transformations. More...
 
AnchorsData read_anchors_data (const char *txt_filename)
 
std::pair< algebra::Vector3Ds,
CEdges > 
read_cmm (const std::string &cmm_filename)
 
FittingSolutionRecords read_fitting_solutions (const char *fitting_fn)
 Fitting solutions reader. More...
 
IntsList read_paths (const char *txt_filename, int max_paths=INT_MAX)
 Read paths. More...
 
ProteinsAnchorsSamplingSpace read_protein_anchors_mapping (multifit::ProteomicsData *prots, const std::string &anchors_prot_map_fn, int max_paths=INT_MAX)
 
ProteomicsData * read_proteomics_data (const char *proteomics_fn)
 Proteomics reader. More...
 
SettingsDataread_settings (const char *filename)
 
em::DensityMapremove_background (em::DensityMap *dmap, float threshold, float edge_threshold)
 Returns a map containing all density without the background. More...
 
void write_chimera (const std::string &chimera_filename, const DataPointsAssignment &dpa)
 
void write_cmm (const std::string &cmm_filename, const std::string &marker_set_name, const AnchorsData &dpa)
 
void write_connolly_surface (atom::Atoms as, base::TextOutput fn, float density, float probe_radius)
 Write the Connolly surface for a set of atoms to a file. More...
 
void write_fitting_solutions (const char *fitting_fn, const FittingSolutionRecords &fit_sols, int num_sols=-1)
 Write fitting solutions to a file. More...
 
void write_markers (const algebra::PrincipalComponentAnalysisD< 3 > &pca, std::ostream &out)
 
void write_paths (const IntsList &paths, const std::string &txt_filename)
 
void write_pdb (const std::string &pdb_filename, const DataPointsAssignment &dpa)
 
void write_protein_anchors_mapping (const std::string &anchors_prot_map_fn, const std::string &anchors_fn, const std::vector< std::pair< String, String > > &prot_paths)
 
void write_protein_anchors_mapping (const std::string &anchors_prot_map_fn, const ProteinsAnchorsSamplingSpace &pa, const Strings &prot_names)
 
void write_segment_as_mrc (em::DensityMap *dmap, const DataPointsAssignment &dpa, int segment_id, Float resolution, Float apix, const std::string &filename)
 
void write_segment_as_pdb (const DataPointsAssignment &dpa, int segment_id, const std::string &filename)
 
void write_segments_as_mrc (em::DensityMap *dmap, const DataPointsAssignment &dpa, Float resolution, Float apix, Float threshold, const std::string &filename)
 Write segments in MRC format. More...
 
void write_segments_as_pdb (const DataPointsAssignment &dpa, const std::string &filename)
 
void write_settings (const char *filename, const SettingsData *sd)
 
void write_txt (const std::string &txt_filename, const AnchorsData &ad)
 

Standard module methods

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

std::string get_module_version ()
 
std::string get_module_name ()
 

Typedef Documentation

Pass or store a set of AlignmentParams .

Definition at line 300 of file AlignmentParams.h.

Pass or store a set of AnchorsData .

Definition at line 88 of file anchors_reader.h.

Pass or store a set of ComplementarityParams .

Definition at line 258 of file AlignmentParams.h.

Store a set of objects.

Definition at line 71 of file SettingsData.h.

Pass or store a set of ConnectivityParams .

Definition at line 94 of file AlignmentParams.h.

Pass or store a set of DominoParams .

Definition at line 46 of file AlignmentParams.h.

Store a set of objects.

Definition at line 48 of file ensemble_analysis.h.

Pass or store a set of EVParams .

Definition at line 181 of file AlignmentParams.h.

Pass or store a set of FiltersParams .

Definition at line 202 of file AlignmentParams.h.

Pass or store a set of FittingParams .

Definition at line 227 of file AlignmentParams.h.

Pass or store a set of FragmentsParams .

Definition at line 121 of file AlignmentParams.h.

Store a set of objects.

Definition at line 67 of file anchor_graph.h.

Pass or store a set of ProteinRecordData .

Definition at line 69 of file proteomics_reader.h.

Store a set of objects.

Definition at line 108 of file proteomics_em_alignment_atomic.h.

Pass or store a set of RogParams .

Definition at line 139 of file AlignmentParams.h.

Store a set of objects.

Definition at line 71 of file TransformationClustering.h.

Pass or store a set of XlinkParams .

Definition at line 71 of file AlignmentParams.h.

Function Documentation

void IMP::multifit::add_surface_index ( core::Hierarchy  mhd,
Float  apix,
FloatKey  shell_key = FloatKey("surf_ind"),
FloatKey  radius_key = core::XYZR::get_radius_key(),
FloatKey  weight_key = atom::Mass::get_mass_key() 
)

/param[in] apix sets the resolution of the surface /note we assume that the leaves are xyz particles

atom::Hierarchy IMP::multifit::create_coarse_molecule_from_density ( em::DensityMap *  dmap,
float  dens_threshold,
int  num_beads,
Model *  mdl,
float  bead_radius 
)
Parameters
[in]dmapthe density map to coarsen
[in]dens_thresholduse only voxels above this threshold for clustering
[in]num_beadsthe number of beads
[in]mdlmodel to add the new molecule to
[in]bead_radiusbead radius
atom::Hierarchy IMP::multifit::create_coarse_molecule_from_molecule ( const atom::Hierarchy &  mh,
int  num_beads,
Model *  mdl,
float  bead_radius,
bool  add_conn_restraint = false 
)
Parameters
[in]mhthe molecule to coarsen
[in]num_beadsthe output number of beads
[in]mdlmodel to add the new molecule to
[in]bead_radiusbead radius
[in]add_conn_restraintif true a connectivity restraint between the particles of the new molecule is added
atom::Hierarchies IMP::multifit::create_coarse_molecules_from_molecules ( const atom::Hierarchies &  mhs,
int  frag_len,
Model *  mdl,
float  bead_radius,
bool  add_conn_restraint = false 
)
Parameters
[in]mhsthe molecules to coarsen
[in]frag_lenthe number of beads for each molecule will be its number of residues / frag_len
[in]mdlmodel to add the new molecule to
[in]bead_radiusbead radius
[in]add_conn_restraintif true a connectivity restraint between the particles of the new molecule is added
IMP::Restraint* IMP::multifit::create_weighted_excluded_volume_restraint ( core::RigidBody  rb1,
core::RigidBody  rb2,
FloatKey  shell_key = FloatKey("surf_ind") 
)

/param[in] rb1 the first rigid body /param[in] rb2 the second rigid body /param[in] shell_key the attribute that stored the particles surface level with respect to its molecule

multifit::FittingSolutionRecords IMP::multifit::fft_based_rigid_fitting ( atom::Hierarchy  mol2fit,
em::DensityMap *  dmap,
double  density_threshold,
double  angle_sampling_interval_rad 
)
Parameters
[in]mol2fita rigid body molecule to fit
[in]dmapthe map to fit into
[in]angle_sampling_interval_radsampling internal in radians
em::FittingSolutions IMP::multifit::fitting_clustering ( const atom::Hierarchy &  mh,
const em::FittingSolutions &  ts,
float  spacing,
int  top_sols,
float  rmsd 
)
Parameters
[in]mhcluster transformations with respect to this protein
[in]tsthe transformations with respect to the transformation in the PDB
[in]spacingtransformations with rmsd < spacing*2 are clustered together
[in]top_solscluster no more than this many top solutions
[in]rmsdmaximum RMSD between transformations in the same cluster
Returns
the clustered transformations
IntsList IMP::multifit::get_anchor_indices_matching_secondary_structure ( const AnchorsData &  ad,
const atom::SecondaryStructureResidues &  ssrs,
Float  max_rmsd = 0.7 
)
Parameters
[in]adThe AnchorsData
[in]sse_psThe SecondaryStructureResidue particles to match
[in]min_correlationSecondaryStructureResidue match must be below this value (0.816 is rmsd of known SSE to random)
FittingSolutionRecords IMP::multifit::get_close_to_point ( const FittingSolutionRecords &  fit_sols,
atom::Hierarchy  mh,
IMP::Particle ap,
Float  dist 
)
Parameters
[in]fit_solsinitial fitting solutions
[in]mhthe molecule the fitting solutions apply for
[in]apanchor point for which the transformed mh (fit) should be close to
[in]distall fits such that the distance between ap and the fit center is smaller than dist will be included
Returns
the pruned fitting solutions
IntsList IMP::multifit::get_clustered ( Particles  ps,
const algebra::Transformation3Ds &  trans,
float  max_rmsd,
float  max_angle_diff_in_rad,
float  max_displace,
int  min_cluster_size 
)
Parameters
[in]psCluster transformation with respect to these particles
[in]transThe transformations to cluster
[in]max_rmsdMaximum RMSD between transformations within a cluster
[in]max_angle_diff_in_radmaximum angle between rotations in a cluster
[in]max_displacemaximum translation between transformations within a cluster
[in]min_cluster_sizeprune out clusters of size smaller
Returns
representatives of the clustered transformations
Note
This is one possible protocol for clustering. For flexibility use internal clustering functions directly.
IntsList IMP::multifit::get_connected_components ( em::DensityMap *  dmap,
float  threshold,
float  edge_threshold 
)
Parameters
[in]dmapthe density map to analyze
[in]thresholdconsider only voxels above this threshold
[in]edge_thresholdan edge is added between two neighboring voxels if their density difference is below this threshold
Returns
List of indexes for each connected component
std::string IMP::multifit::get_data_path ( std::string  file_name)

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 tools/imppy.sh script.

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

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

IMP::atom::read_pdb(IMP::atom::get_example_path("example_protein.pdb", model));

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

algebra::Vector3Ds IMP::multifit::get_points_close_to_molecule ( const atom::Hierarchy &  mh,
const algebra::Vector3Ds  points,
Float  max_dist 
)

Given a molecule and a set of points, return the indexes of the points that are close to the molecule (up to max_dist) and the res

em::FittingSolutions IMP::multifit::pca_based_rigid_fitting ( core::RigidBody  rb,
Refiner *  rb_refiner,
em::DensityMap *  em_map,
Float  threshold,
FloatKey  wei_key = atom::Mass::get_mass_key(),
algebra::PrincipalComponentAnalysis  dens_pca_input = algebra::PrincipalComponentAnalysis() 
)

Fit a protein to its density by principle component matching

Parameters
[in]rbThe rigid body to be fitted
[in]rb_refinerThe rigid body refiner
[in]em_mapThe density map to fit to
[in]thresholdUse voxels above this threshold for PCA calculations
[in]wei_keyThe weight key of the particles in the rigid body
[in]dens_pca_inputprovide precalculated em_map PCA is available
Returns
fitting solutions
Note
the function assumes the density map holds its density
em::FittingSolutions IMP::multifit::pca_based_rigid_fitting ( ParticlesTemp  ps,
em::DensityMap *  em_map,
Float  threshold,
FloatKey  wei_key = atom::Mass::get_mass_key(),
algebra::PrincipalComponentAnalysis  dens_pca_input = algebra::PrincipalComponentAnalysis() 
)

Fit a protein to its density by principle component matching

Parameters
[in]psThe particles to fit (treated as rigid)
[in]em_mapThe density map to fit to
[in]thresholdUse voxels above this threshold for PCA calculations
[in]wei_keyThe weight key of the particles in the rigid body
[in]dens_pca_inputprovide precalculated em_map PCA is available
Returns
fitting solutions
Note
the function assumes the density map holds its density
FittingSolutionRecords IMP::multifit::read_fitting_solutions ( const char *  fitting_fn)
IntsList IMP::multifit::read_paths ( const char *  txt_filename,
int  max_paths = INT_MAX 
)
Note
Notice that for the function to read the last line it should end with
ProteomicsData* IMP::multifit::read_proteomics_data ( const char *  proteomics_fn)
em::DensityMap* IMP::multifit::remove_background ( em::DensityMap *  dmap,
float  threshold,
float  edge_threshold 
)
Parameters
[in]dmapthe density map to segment
[in]thresholdconsider only voxels above this threshold
[in]edge_thresholdconsider only voxels above this threshold
Returns
the segmented map
void IMP::multifit::write_connolly_surface ( atom::Atoms  as,
base::TextOutput  fn,
float  density,
float  probe_radius 
)

The algorithm is taken from Connolly's original MS program, which is freely distributable and Copyright 1983, Michael Connolly.

M.L. Connolly, "Solvent-accessible surfaces of proteins and nucleic acids", Science, 221, p709-713 (1983).

M.L. Connolly, "Analytical molecular surface calculation", J. Appl. Cryst. 16, p548-558 (1983).

void IMP::multifit::write_fitting_solutions ( const char *  fitting_fn,
const FittingSolutionRecords &  fit_sols,
int  num_sols = -1 
)
Parameters
[in]fitting_fnthe fitting filename
[in]fit_solsthe fitting solutions to write to file
[in]num_solsoptional, only write the first num_sols fits.
void IMP::multifit::write_segments_as_mrc ( em::DensityMap *  dmap,
const DataPointsAssignment &  dpa,
Float  resolution,
Float  apix,
Float  threshold,
const std::string &  filename 
)
Note
segments are written as filename_0.mrc
an additional file filename.cmd is generated for easy loading of all segments