Rosetta
Public Member Functions | Static Public Member Functions | Private Member Functions | Static Private Member Functions | Private Attributes | Friends | List of all members
protocols::energy_based_clustering::EnergyBasedClusteringProtocol Class Reference

Performs the work done by the energy_based_clustering app. Uses an energy-biased cookie-cutter approach to cluster a large number of structures without generating an all-by-all RMSD matrix. More...

#include <EnergyBasedClusteringProtocol.hh>

Inheritance diagram for protocols::energy_based_clustering::EnergyBasedClusteringProtocol:
Inheritance graph
[legend]

Public Member Functions

 EnergyBasedClusteringProtocol ()
 Default constructor – initializes from global options system. More...
 
 EnergyBasedClusteringProtocol (EnergyBasedClusteringOptions const &options)
 Options constructor – avoids access to global options system. More...
 
 ~EnergyBasedClusteringProtocol () override
 
EnergyBasedClusteringProtocolOP clone () const
 
void go ()
 Perform the clustering, based on options set in the options object. More...
 
core::Size n_clusters_from_last_run () const
 Get the number of clusters returned from the last call to go(). More...
 

Static Public Member Functions

static void register_options ()
 Indicate which options-system options are relvant. More...
 

Private Member Functions

bool is_in_list (core::Size const val, utility::vector1< core::Size > const &vallist) const
 Function to determine whether a value is in a list. More...
 
std::string do_ABOXYZ_bin_analysis (core::pose::Pose const &pose) const
 Given a pose, generate a string for its ABOXYZ bins. More...
 
bool is_all_alpha_aa_or_peptoid (core::pose::Pose const &pose) const
 Is a pose composed only of alpha amino acids and peptoid residues (returns true), or does it have other residues (returns false)? More...
 
void align_with_offset (core::pose::Pose &pose1, core::pose::Pose const &pose2, core::Size const offset, utility::vector1< core::id::NamedAtomID > const &extra_atom_list) const
 Align one pose to another with an offset in the residue count. More...
 
void pose_from_posedata (core::pose::Pose const &inputpose, core::pose::Pose &outputpose, EBC_ClusterType const clustermode, std::string const &pose_descriptor, utility::vector1< core::Real > const &posedata, utility::vector1< core::Real > const &reconstruction_data, bool const rebuild_all_in_dihedral_mode=false) const
 Reconstruct a pose from posedata. More...
 
void sort_cluster_list (utility::vector1< core::Size > &statelist, utility::vector1< core::Real > &poseenergies) const
 Sort the list of states in a cluster by energies. More...
 
core::Real calc_dist (utility::vector1< core::Real > const &vect1, utility::vector1< core::Real > const &vect2, EBC_ClusterType const clustmode, utility::vector1< numeric::xyzVector< core::Real > > const &alignmentvect1, utility::vector1< numeric::xyzVector< core::Real > > const &alignmentvect2, core::Size const nresidues, core::pose::Pose const &firstpose) const
 Function to calculate the RMSD between two poses, based on whatever is in "posedata" for the second only. This assumes that a pose already exists for the first, and that this is provided in refpose. More...
 
core::Real calc_dist (utility::vector1< core::Real > const &vect1, utility::vector1< core::Real > const &vect2, EBC_ClusterType const clustmode, utility::vector1< numeric::xyzVector< core::Real > > const &alignmentvect1, utility::vector1< numeric::xyzVector< core::Real > > const &alignmentvect2, core::Size const nresidues, core::pose::Pose const &firstpose, core::Size &offset, core::Size &permutation) const
 Overloaded form of calc_dist for cyclic permutations and for homooligomer swapping. More...
 
void swap_alignment_vector (utility::vector1< numeric::xyzVector< core::Real > > const &parentvect, utility::vector1< numeric::xyzVector< core::Real > > &swappedvect, core::pose::Pose const &refpose, core::Size const permutation_number) const
 Swap chains in an alignment vector (vector of x,y,z atom coordinates). More...
 
core::Size alignment_atoms_in_res (core::pose::Pose const &pose, core::Size const position) const
 Returns the number of alignment atoms in a given residue. More...
 
core::Size alignment_torsions_in_res (core::pose::Pose const &pose, core::Size const position) const
 Returns the number of alignment torsion angles stored for a given residue. More...
 
bool use_this_atom (core::conformation::Residue const &res1, core::conformation::Residue const &res2, core::Size const atomno, std::string const &atname1, std::string const &atname2="") const
 Function containing the special-case logic for alpha, beta, and gamma-amino acids. More...
 
bool use_in_rmsd (core::pose::Pose const &pose1, core::pose::Pose const &pose2, core::Size resno, core::Size atomno, utility::vector1< core::id::NamedAtomID > const &extra_atom_list) const
 Given a residue number, and atom number, and a pose, determine whether that atom gets used in the RMSD calculation. More...
 
bool use_in_rmsd_offset (core::pose::Pose const &pose1, core::pose::Pose const &pose2, core::Size resno2, core::Size atomno, core::Size const pose1_offset, utility::vector1< core::id::NamedAtomID > const &extra_atom_list) const
 Given two poses, a residue number in the second pose, and atom number, and and offset for circular permutation, determine whether the atom is to be used in RMSD calculation. More...
 
void do_option_checks () const
 Check that options have been set sensibly. More...
 
core::scoring::ScoreFunctionOP set_up_scorefunction () const
 Get the global scorefunction, and set up constraints energies appropriately. More...
 
void parse_extra_atom_list (utility::vector1< core::id::NamedAtomID > &extra_atom_list) const
 Given a vector of strings of format resnum:atomname, parse this out into a vector of NamedAtomIDs. More...
 
void add_user_constraints (core::pose::Pose &mypose) const
 Function to add user-specified constraints (specified with a CST file) to a pose. More...
 
void swap_chains (core::pose::Pose &currentpose, core::Size const permutation_number) const
 Swap chains around in a pose (circular permutation of chain indices). More...
 
void get_start_and_end_aa (core::Size const chain_index, core::pose::Pose const &pose, core::Size &startaa, core::Size &endaa) const
 Get the start and end indices of chain chain_index, and store these in startaa and endaa. More...
 
void get_start_and_end_indices (core::Size const chain_index, core::pose::Pose const &pose, core::Size &startindex, core::Size &endindex) const
 Get the start and end indices of chain chain_index, and store these in startaa and endaa. More...
 
void make_disulfides (core::pose::Pose &mypose) const
 Function to form the disulfides based on user-specified disulfide positions (if provided), or based on automatic detection (if not). More...
 
void mutate_to_alanine (core::pose::Pose &mypose) const
 Function to mutate a pose to a chain of alanines. More...
 
void check_backbones_match (core::pose::Pose const &pose1, core::pose::Pose const &pose2) const
 Function to check whether two poses have matching classes of residues at matching positions: More...
 
void storeposedata (core::pose::Pose const &pose, utility::vector1< core::Real > &posedata, utility::vector1< numeric::xyzVector< core::Real > > &alignmentdata, utility::vector1< core::Real > &dihedral_mode_reconstruction_data, EBC_ClusterType const clustermode, utility::vector1< core::id::NamedAtomID > const &extra_atom_list) const
 Given an input pose, store only the relevant data needed for clustering. More...
 
void do_initial_import_and_scoring (core::Size &count, core::Real &lowestE, core::Size &lowestE_index, core::pose::Pose &firstpose, protocols::cyclic_peptide::CycpepSymmetryFilter const &symmfilter, utility::vector1< core::Real > &poseenergies, utility::vector1< std::string > &pose_descriptors, utility::vector1< utility::vector1< core::Real > > &posedata, utility::vector1< utility::vector1< numeric::xyzVector< core::Real > > > &alignmentdata, utility::vector1< utility::vector1< core::Real > > &dihedral_reconstruction_data, utility::vector1< std::string > &pose_binstrings, utility::vector1< core::Size > &cluster_assignments, utility::vector1< core::Size > &cluster_offsets, utility::vector1< core::Size > &cluster_oligomer_permutations, core::scoring::ScoreFunctionOP sfxn, std::map< std::string, core::Real > const &loaded_scores, utility::vector1< core::id::NamedAtomID > const &extra_atom_list) const
 Import all structures and score them, setting up derived data. More...
 
void remove_extraneous_virtuals (core::pose::Pose &pose) const
 Remove cutpoint variants that add extraneous virtual atoms that mess up atom indexing. More...
 
void add_cyclic_constraints (core::pose::Pose &mypose) const
 Function to add cyclic constraints to a pose. More...
 
void parse_alternative_score_file (std::map< std::string, core::Real > &scores) const
 Loads alternative scores from file and writes them into scores. More...
 

Static Private Member Functions

static core::Size num_asymmetric_binstrings (std::set< std::string > const &binstrings, bool const circularly_permute)
 Count the number of binstrings which are not the same as their mirror image. More...
 
static core::Size num_asymmetric_binstrings_with_mirror_counterpart_represented (std::set< std::string > const &binstrings, bool const circularly_permute)
 Count the number of asymmetric binstrings (binstrings which are not the same as their mirror image) for which the mirror image is also in the set. More...
 
static std::string permute_string (std::string const &string_in)
 Given a string of the form "ABCDEFG", return "BCDEFGA". More...
 
static char get_mirror_bin (char const bin_in)
 Given a bin, get its mirror. (A–X, B–Y, O–Z). More...
 
static std::string get_mirror_bin_sequence (std::string const &binstring_in, bool const circularly_permuted_for_alphabetization)
 Given a bin string, get its mirror. More...
 
static char determine_ABOXYZ_bin (core::Real const &phi, core::Real const &psi, core::Real const &omega)
 Given phi, psi, and omega, determine the ABOXYZ bin. More...
 
static std::string get_circular_permutation_first_in_alphabetical_order (std::string const &string_in)
 Given an alpha-amino acid bin string, figure out all circular permutations and return the one that's first in alphabetical order. More...
 

Private Attributes

EnergyBasedClusteringOptions options_
 Clustering options, either read from global options system or passed directly to the protocol. More...
 
std::string constraints_file_contents_
 The contents of an optional constraints file. More...
 
core::Size n_clusters_from_last_run_
 The number of clusters produced by the last run. More...
 

Friends

class ::EnergyBasedClusteringTests
 

Detailed Description

Performs the work done by the energy_based_clustering app. Uses an energy-biased cookie-cutter approach to cluster a large number of structures without generating an all-by-all RMSD matrix.

Constructor & Destructor Documentation

◆ EnergyBasedClusteringProtocol() [1/2]

protocols::energy_based_clustering::EnergyBasedClusteringProtocol::EnergyBasedClusteringProtocol ( )

Default constructor – initializes from global options system.

◆ EnergyBasedClusteringProtocol() [2/2]

protocols::energy_based_clustering::EnergyBasedClusteringProtocol::EnergyBasedClusteringProtocol ( EnergyBasedClusteringOptions const &  options)

Options constructor – avoids access to global options system.

◆ ~EnergyBasedClusteringProtocol()

protocols::energy_based_clustering::EnergyBasedClusteringProtocol::~EnergyBasedClusteringProtocol ( )
overridedefault

Member Function Documentation

◆ add_cyclic_constraints()

void protocols::energy_based_clustering::EnergyBasedClusteringProtocol::add_cyclic_constraints ( core::pose::Pose mypose) const
private

◆ add_user_constraints()

void protocols::energy_based_clustering::EnergyBasedClusteringProtocol::add_user_constraints ( core::pose::Pose mypose) const
private

Function to add user-specified constraints (specified with a CST file) to a pose.

References protocols::energy_based_clustering::EnergyBasedClusteringOptions::cst_files_, and options_.

Referenced by do_initial_import_and_scoring().

◆ align_with_offset()

void protocols::energy_based_clustering::EnergyBasedClusteringProtocol::align_with_offset ( core::pose::Pose pose1,
core::pose::Pose const &  pose2,
core::Size const  offset,
utility::vector1< core::id::NamedAtomID > const &  extra_atom_list 
) const
private

◆ alignment_atoms_in_res()

core::Size protocols::energy_based_clustering::EnergyBasedClusteringProtocol::alignment_atoms_in_res ( core::pose::Pose const &  pose,
core::Size const  position 
) const
private

◆ alignment_torsions_in_res()

core::Size protocols::energy_based_clustering::EnergyBasedClusteringProtocol::alignment_torsions_in_res ( core::pose::Pose const &  pose,
core::Size const  position 
) const
private

◆ calc_dist() [1/2]

core::Real protocols::energy_based_clustering::EnergyBasedClusteringProtocol::calc_dist ( utility::vector1< core::Real > const &  vect1,
utility::vector1< core::Real > const &  vect2,
EBC_ClusterType const  clustmode,
utility::vector1< numeric::xyzVector< core::Real > > const &  alignmentvect1,
utility::vector1< numeric::xyzVector< core::Real > > const &  alignmentvect2,
core::Size const  nresidues,
core::pose::Pose const &  firstpose 
) const
private

◆ calc_dist() [2/2]

core::Real protocols::energy_based_clustering::EnergyBasedClusteringProtocol::calc_dist ( utility::vector1< core::Real > const &  vect1,
utility::vector1< core::Real > const &  vect2,
EBC_ClusterType const  clustmode,
utility::vector1< numeric::xyzVector< core::Real > > const &  alignmentvect1,
utility::vector1< numeric::xyzVector< core::Real > > const &  alignmentvect2,
core::Size const  nresidues,
core::pose::Pose const &  firstpose,
core::Size offset,
core::Size permutation 
) const
private

◆ check_backbones_match()

void protocols::energy_based_clustering::EnergyBasedClusteringProtocol::check_backbones_match ( core::pose::Pose const &  pose1,
core::pose::Pose const &  pose2 
) const
private

◆ clone()

EnergyBasedClusteringProtocolOP protocols::energy_based_clustering::EnergyBasedClusteringProtocol::clone ( ) const

◆ determine_ABOXYZ_bin()

char protocols::energy_based_clustering::EnergyBasedClusteringProtocol::determine_ABOXYZ_bin ( core::Real const &  phi,
core::Real const &  psi,
core::Real const &  omega 
)
staticprivate

Given phi, psi, and omega, determine the ABOXYZ bin.

Based on the definition in David Baker's cyclic_utilities.py Python script from 2016, with slight modification for symmetry

  • If phi is in the interval (-180, 0], bin is A, B, or O. If it's in the interval (0, 180], the bin is X, Y, or Z.
  • In the negative phi case {
    • If omega is in the range (-90, 90], it's O.

If psi is in the range (-80, 50], it's B.

  • Else, it's A. }

In the positive phi case {

  • If omega is in the range [-90, 90), it's Z.

If psi is in the range [-50, 80), it's Y.

  • Else, it's X. }

References core::scoring::omega.

Referenced by do_ABOXYZ_bin_analysis().

◆ do_ABOXYZ_bin_analysis()

std::string protocols::energy_based_clustering::EnergyBasedClusteringProtocol::do_ABOXYZ_bin_analysis ( core::pose::Pose const &  pose) const
private

◆ do_initial_import_and_scoring()

void protocols::energy_based_clustering::EnergyBasedClusteringProtocol::do_initial_import_and_scoring ( core::Size count,
core::Real lowestE,
core::Size lowestE_index,
core::pose::Pose firstpose,
protocols::cyclic_peptide::CycpepSymmetryFilter const &  symmfilter,
utility::vector1< core::Real > &  poseenergies,
utility::vector1< std::string > &  pose_descriptors,
utility::vector1< utility::vector1< core::Real > > &  posedata,
utility::vector1< utility::vector1< numeric::xyzVector< core::Real > > > &  alignmentdata,
utility::vector1< utility::vector1< core::Real > > &  dihedral_reconstruction_data,
utility::vector1< std::string > &  pose_binstrings,
utility::vector1< core::Size > &  cluster_assignments,
utility::vector1< core::Size > &  cluster_offsets,
utility::vector1< core::Size > &  cluster_oligomer_permutations,
core::scoring::ScoreFunctionOP  sfxn,
std::map< std::string, core::Real > const &  loaded_scores,
utility::vector1< core::id::NamedAtomID > const &  extra_atom_list 
) const
private

Import all structures and score them, setting up derived data.

Performs disk access.

References add_cyclic_constraints(), add_user_constraints(), protocols::relax::FastRelax::apply(), protocols::cyclic_peptide::CycpepSymmetryFilter::apply(), core::pose::Pose::chain_sequence(), check_backbones_match(), protocols::energy_based_clustering::EnergyBasedClusteringOptions::cluster_by_, protocols::energy_based_clustering::EnergyBasedClusteringOptions::cluster_cyclic_permutations_, protocols::energy_based_clustering::EnergyBasedClusteringOptions::cyclic_, protocols::energy_based_clustering::EnergyBasedClusteringOptions::cyclic_symmetry_, protocols::energy_based_clustering::EnergyBasedClusteringOptions::cyclic_symmetry_mirroring_, do_ABOXYZ_bin_analysis(), protocols::energy_based_clustering::EBC_bb_cartesian, protocols::energy_based_clustering::EBC_bb_dihedral, core::pose::Pose::energies(), core::import_pose::pose_stream::MetaPoseInputStream::fill_pose(), core::import_pose::pose_stream::MetaPoseInputStream::get_last_pose_descriptor_string(), core::conformation::Residue::has(), core::import_pose::pose_stream::MetaPoseInputStream::has_another_pose(), protocols::energy_based_clustering::EnergyBasedClusteringOptions::homooligomer_swap_, is_all_alpha_aa_or_peptoid(), make_disulfides(), protocols::energy_based_clustering::EnergyBasedClusteringOptions::mutate_to_ala_, mutate_to_alanine(), core::pose::Pose::num_jump(), options_, protocols::energy_based_clustering::EnergyBasedClusteringOptions::perform_ABOXYZ_bin_analysis_, protocols::energy_based_clustering::EnergyBasedClusteringOptions::prerelax_, protocols::energy_based_clustering::EnergyBasedClusteringOptions::rebuild_all_in_dihedral_mode_, protocols::energy_based_clustering::EnergyBasedClusteringOptions::relax_rounds_, remove_extraneous_virtuals(), core::pose::Pose::residue(), storeposedata(), core::import_pose::pose_stream::streams_from_cmd_line(), core::scoring::Energies::total_energy(), core::pose::Pose::total_residue(), protocols::TR(), and protocols::energy_based_clustering::EnergyBasedClusteringOptions::use_CB_.

Referenced by go().

◆ do_option_checks()

void protocols::energy_based_clustering::EnergyBasedClusteringProtocol::do_option_checks ( ) const
private

◆ get_circular_permutation_first_in_alphabetical_order()

std::string protocols::energy_based_clustering::EnergyBasedClusteringProtocol::get_circular_permutation_first_in_alphabetical_order ( std::string const &  string_in)
staticprivate

Given an alpha-amino acid bin string, figure out all circular permutations and return the one that's first in alphabetical order.

Strings must be provided in uppercase only.

References permute_string().

Referenced by do_ABOXYZ_bin_analysis(), get_mirror_bin_sequence(), num_asymmetric_binstrings(), and num_asymmetric_binstrings_with_mirror_counterpart_represented().

◆ get_mirror_bin()

char protocols::energy_based_clustering::EnergyBasedClusteringProtocol::get_mirror_bin ( char const  bin_in)
staticprivate

Given a bin, get its mirror. (A–X, B–Y, O–Z).

Referenced by get_mirror_bin_sequence().

◆ get_mirror_bin_sequence()

std::string protocols::energy_based_clustering::EnergyBasedClusteringProtocol::get_mirror_bin_sequence ( std::string const &  binstring_in,
bool const  circularly_permuted_for_alphabetization 
)
staticprivate

Given a bin string, get its mirror.

If the boolean is true, the sequence put through every circular permutation, and the one that's first alphabetically is selected and returned.

References get_circular_permutation_first_in_alphabetical_order(), and get_mirror_bin().

Referenced by go(), num_asymmetric_binstrings(), and num_asymmetric_binstrings_with_mirror_counterpart_represented().

◆ get_start_and_end_aa()

void protocols::energy_based_clustering::EnergyBasedClusteringProtocol::get_start_and_end_aa ( core::Size const  chain_index,
core::pose::Pose const &  pose,
core::Size startaa,
core::Size endaa 
) const
private

Get the start and end indices of chain chain_index, and store these in startaa and endaa.

References core::pose::Pose::chain(), and core::pose::Pose::total_residue().

Referenced by swap_alignment_vector(), and swap_chains().

◆ get_start_and_end_indices()

void protocols::energy_based_clustering::EnergyBasedClusteringProtocol::get_start_and_end_indices ( core::Size const  chain_index,
core::pose::Pose const &  pose,
core::Size startindex,
core::Size endindex 
) const
private

Get the start and end indices of chain chain_index, and store these in startaa and endaa.

References alignment_atoms_in_res(), core::pose::Pose::chain(), and core::pose::Pose::total_residue().

Referenced by swap_alignment_vector().

◆ go()

void protocols::energy_based_clustering::EnergyBasedClusteringProtocol::go ( )

Perform the clustering, based on options set in the options object.

References align_with_offset(), calc_dist(), protocols::energy_based_clustering::EnergyBasedClusteringOptions::cluster_by_, protocols::energy_based_clustering::EnergyBasedClusteringOptions::cluster_cyclic_permutations_, protocols::energy_based_clustering::EnergyBasedClusteringOptions::cluster_radius_, protocols::energy_based_clustering::EnergyBasedClusteringOptions::cyclic_symmetry_, protocols::energy_based_clustering::EnergyBasedClusteringOptions::cyclic_symmetry_mirroring_, protocols::energy_based_clustering::EnergyBasedClusteringOptions::cyclic_symmetry_threshold_, do_initial_import_and_scoring(), do_option_checks(), core::pose::Pose::dump_pdb(), get_mirror_bin_sequence(), protocols::energy_based_clustering::EnergyBasedClusteringOptions::homooligomer_swap_, protocols::energy_based_clustering::EnergyBasedClusteringOptions::limit_clusters_, protocols::energy_based_clustering::EnergyBasedClusteringOptions::limit_structures_per_cluster_, n_clusters_from_last_run_, num_asymmetric_binstrings(), num_asymmetric_binstrings_with_mirror_counterpart_represented(), options_, protocols::energy_based_clustering::EnergyBasedClusteringOptions::output_prefix_, parse_alternative_score_file(), parse_extra_atom_list(), protocols::energy_based_clustering::EnergyBasedClusteringOptions::path_to_scores_file_, protocols::energy_based_clustering::EnergyBasedClusteringOptions::perform_ABOXYZ_bin_analysis_, pose_from_posedata(), core::io::silent::SilentFileOptions::read_from_global_options(), protocols::energy_based_clustering::EnergyBasedClusteringOptions::rebuild_all_in_dihedral_mode_, protocols::cyclic_peptide::CycpepSymmetryFilter::set_angle_threshold(), protocols::cyclic_peptide::CycpepSymmetryFilter::set_mirror_symm(), protocols::cyclic_peptide::CycpepSymmetryFilter::set_symm_repeats(), set_up_scorefunction(), protocols::energy_based_clustering::EnergyBasedClusteringOptions::silent_output_, core::pose::Pose::size(), sort_cluster_list(), swap_chains(), protocols::TR(), and core::io::silent::SilentFileData::write_silent_struct().

◆ is_all_alpha_aa_or_peptoid()

bool protocols::energy_based_clustering::EnergyBasedClusteringProtocol::is_all_alpha_aa_or_peptoid ( core::pose::Pose const &  pose) const
private

Is a pose composed only of alpha amino acids and peptoid residues (returns true), or does it have other residues (returns false)?

Ignores virtual residues and ligands.

References core::pose::Pose::empty(), core::chemical::ResidueType::is_alpha_aa(), core::chemical::ResidueType::is_ligand(), core::chemical::ResidueTypeBase::is_peptoid(), core::chemical::ResidueType::is_virtual_residue(), core::pose::Pose::residue_type(), and core::pose::Pose::total_residue().

Referenced by do_initial_import_and_scoring().

◆ is_in_list()

bool protocols::energy_based_clustering::EnergyBasedClusteringProtocol::is_in_list ( core::Size const  val,
utility::vector1< core::Size > const &  vallist 
) const
inlineprivate

◆ make_disulfides()

void protocols::energy_based_clustering::EnergyBasedClusteringProtocol::make_disulfides ( core::pose::Pose mypose) const
private

◆ mutate_to_alanine()

void protocols::energy_based_clustering::EnergyBasedClusteringProtocol::mutate_to_alanine ( core::pose::Pose mypose) const
private

◆ n_clusters_from_last_run()

core::Size protocols::energy_based_clustering::EnergyBasedClusteringProtocol::n_clusters_from_last_run ( ) const
inline

Get the number of clusters returned from the last call to go().

Will be zero if go() has not been called.

References n_clusters_from_last_run_.

◆ num_asymmetric_binstrings()

core::Size protocols::energy_based_clustering::EnergyBasedClusteringProtocol::num_asymmetric_binstrings ( std::set< std::string > const &  binstrings,
bool const  circularly_permute 
)
staticprivate

Count the number of binstrings which are not the same as their mirror image.

References get_circular_permutation_first_in_alphabetical_order(), and get_mirror_bin_sequence().

Referenced by go().

◆ num_asymmetric_binstrings_with_mirror_counterpart_represented()

core::Size protocols::energy_based_clustering::EnergyBasedClusteringProtocol::num_asymmetric_binstrings_with_mirror_counterpart_represented ( std::set< std::string > const &  binstrings,
bool const  circularly_permute 
)
staticprivate

Count the number of asymmetric binstrings (binstrings which are not the same as their mirror image) for which the mirror image is also in the set.

This should always be an even number.

References get_circular_permutation_first_in_alphabetical_order(), and get_mirror_bin_sequence().

Referenced by go().

◆ parse_alternative_score_file()

void protocols::energy_based_clustering::EnergyBasedClusteringProtocol::parse_alternative_score_file ( std::map< std::string, core::Real > &  scores) const
private

Loads alternative scores from file and writes them into scores.

References options_, protocols::energy_based_clustering::EnergyBasedClusteringOptions::path_to_scores_file_, protocols::hybridization::score, and protocols::TR().

Referenced by go().

◆ parse_extra_atom_list()

void protocols::energy_based_clustering::EnergyBasedClusteringProtocol::parse_extra_atom_list ( utility::vector1< core::id::NamedAtomID > &  extra_atom_list) const
private

Given a vector of strings of format resnum:atomname, parse this out into a vector of NamedAtomIDs.

References protocols::energy_based_clustering::EnergyBasedClusteringOptions::extra_rms_atoms_, options_, and protocols::TR().

Referenced by go().

◆ permute_string()

std::string protocols::energy_based_clustering::EnergyBasedClusteringProtocol::permute_string ( std::string const &  string_in)
staticprivate

Given a string of the form "ABCDEFG", return "BCDEFGA".

Referenced by get_circular_permutation_first_in_alphabetical_order().

◆ pose_from_posedata()

void protocols::energy_based_clustering::EnergyBasedClusteringProtocol::pose_from_posedata ( core::pose::Pose const &  inputpose,
core::pose::Pose outputpose,
EBC_ClusterType const  clustermode,
std::string const &  pose_descriptor,
utility::vector1< core::Real > const &  posedata,
utility::vector1< core::Real > const &  reconstruction_data,
bool const  rebuild_all_in_dihedral_mode = false 
) const
private

◆ register_options()

void protocols::energy_based_clustering::EnergyBasedClusteringProtocol::register_options ( )
static

Indicate which options-system options are relvant.

◆ remove_extraneous_virtuals()

void protocols::energy_based_clustering::EnergyBasedClusteringProtocol::remove_extraneous_virtuals ( core::pose::Pose pose) const
private

◆ set_up_scorefunction()

core::scoring::ScoreFunctionOP protocols::energy_based_clustering::EnergyBasedClusteringProtocol::set_up_scorefunction ( ) const
private

◆ sort_cluster_list()

void protocols::energy_based_clustering::EnergyBasedClusteringProtocol::sort_cluster_list ( utility::vector1< core::Size > &  statelist,
utility::vector1< core::Real > &  poseenergies 
) const
private

Sort the list of states in a cluster by energies.

Inefficient selection sort used. That's okay – this sorts small lists.

Referenced by go().

◆ storeposedata()

void protocols::energy_based_clustering::EnergyBasedClusteringProtocol::storeposedata ( core::pose::Pose const &  pose,
utility::vector1< core::Real > &  posedata,
utility::vector1< numeric::xyzVector< core::Real > > &  alignmentdata,
utility::vector1< core::Real > &  dihedral_mode_reconstruction_data,
EBC_ClusterType const  clustermode,
utility::vector1< core::id::NamedAtomID > const &  extra_atom_list 
) const
private

◆ swap_alignment_vector()

void protocols::energy_based_clustering::EnergyBasedClusteringProtocol::swap_alignment_vector ( utility::vector1< numeric::xyzVector< core::Real > > const &  parentvect,
utility::vector1< numeric::xyzVector< core::Real > > &  swappedvect,
core::pose::Pose const &  refpose,
core::Size const  permutation_number 
) const
private

Swap chains in an alignment vector (vector of x,y,z atom coordinates).

Can only be called if options_.cluster_by_ == EBC_bb_cartesian.

References alignment_atoms_in_res(), protocols::energy_based_clustering::EnergyBasedClusteringOptions::cluster_by_, protocols::energy_based_clustering::EBC_bb_cartesian, get_start_and_end_aa(), get_start_and_end_indices(), core::pose::Pose::num_chains(), and options_.

Referenced by calc_dist().

◆ swap_chains()

void protocols::energy_based_clustering::EnergyBasedClusteringProtocol::swap_chains ( core::pose::Pose currentpose,
core::Size const  permutation_number 
) const
private

Swap chains around in a pose (circular permutation of chain indices).

References core::pose::append_subpose_to_pose(), get_start_and_end_aa(), core::pose::Pose::num_chains(), and core::pose::Pose::update_residue_neighbors().

Referenced by go().

◆ use_in_rmsd()

bool protocols::energy_based_clustering::EnergyBasedClusteringProtocol::use_in_rmsd ( core::pose::Pose const &  pose1,
core::pose::Pose const &  pose2,
core::Size  resno,
core::Size  atomno,
utility::vector1< core::id::NamedAtomID > const &  extra_atom_list 
) const
private

◆ use_in_rmsd_offset()

bool protocols::energy_based_clustering::EnergyBasedClusteringProtocol::use_in_rmsd_offset ( core::pose::Pose const &  pose1,
core::pose::Pose const &  pose2,
core::Size  resno2,
core::Size  atomno,
core::Size const  pose1_offset,
utility::vector1< core::id::NamedAtomID > const &  extra_atom_list 
) const
private

◆ use_this_atom()

bool protocols::energy_based_clustering::EnergyBasedClusteringProtocol::use_this_atom ( core::conformation::Residue const &  res1,
core::conformation::Residue const &  res2,
core::Size const  atomno,
std::string const &  atname1,
std::string const &  atname2 = "" 
) const
private

Friends And Related Function Documentation

◆ ::EnergyBasedClusteringTests

friend class ::EnergyBasedClusteringTests
friend

Member Data Documentation

◆ constraints_file_contents_

std::string protocols::energy_based_clustering::EnergyBasedClusteringProtocol::constraints_file_contents_
private

The contents of an optional constraints file.

Referenced by set_up_scorefunction().

◆ n_clusters_from_last_run_

core::Size protocols::energy_based_clustering::EnergyBasedClusteringProtocol::n_clusters_from_last_run_
private

The number of clusters produced by the last run.

Referenced by go(), and n_clusters_from_last_run().

◆ options_

EnergyBasedClusteringOptions protocols::energy_based_clustering::EnergyBasedClusteringProtocol::options_
private

The documentation for this class was generated from the following files: