Rosetta
Public Types | Public Member Functions | Private Member Functions | Private Attributes | Static Private Attributes | List of all members
core::scoring::Ramachandran Class Reference

#include <Ramachandran.hh>

Inheritance diagram for core::scoring::Ramachandran:
Inheritance graph
[legend]

Public Types

typedef pose::Pose Pose
 
typedef chemical::AA AA
 

Public Member Functions

 Ramachandran ()
 
 Ramachandran (std::string const &rama_map_filename, bool use_bicubic_interpolation)
 
 ~Ramachandran () override
 
std::string get_custom_rama_table_filename (Rama_Table_Type const type) const
 Given a custom Rama table type, get the filename of the database file containing the data. More...
 
Rama_Table_Type get_ramatable_type_by_name (std::string const &name) const
 Given a Rama_Table_Type name, return the type. More...
 
std::string get_ramatable_name_by_type (Rama_Table_Type const type) const
 Given a Rama_Table_Type, return the name. More...
 
bool is_canonical_d_aminoacid (AA const res_aa) const
 Returns true if passed a core::chemical::AA corresponding to a D-amino acid, and false otherwise. More...
 
AA get_l_equivalent (AA const d_aa) const
 When passed a d-amino acid, returns the l-equivalent. Returns aa_unk otherwise. More...
 
Real eval_rama_score_residue (conformation::Residue const &res) const
 
Real eval_rama_score_residue (AA const res_aa, Real const phi, Real const psi, bool const force_mirroring=false) const
 
void eval_rama_score_residue (conformation::Residue const &res, Real &rama, Real &drama_dphi, Real &drama_dpsi, bool const force_mirroring=false) const
 
void eval_rama_score_residue (AA const res_aa, Real const phi, Real const psi, Real &rama, Real &drama_dphi, Real &drama_dpsi, bool const force_mirroring=false) const
 
void eval_rama_score_residue (bool use_bicubic_interpolation, bool rama_not_squared, AA const res_aa, Real const phi, Real const psi, Real &rama, Real &drama_dphi, Real &drama_dpsi, bool const force_mirroring=false) const
 
void eval_rama_score_residue_nonstandard_connection (core::pose::Pose const &mypose, conformation::Residue const &res, Real &rama, Real &drama_dphi, Real &drama_dpsi, bool const force_mirroring=false) const
 Function to evaluate the rama score for residues whose connection partners are not necessarily adjacent in linear sequence (e.g. for backbone-cyclized peptides). Note that this assumes that rama is being used only for scoring alpha-amino acids (L- or D-). More...
 
void random_phipsi_from_rama (AA const res_aa, Real &phi, Real &psi) const
 Generate random values for phi and psi, biased by the Ramachandran plot of a particular amino acid. More...
 
void uniform_phipsi_from_allowed_rama (AA const res_aa, Real &phi, Real &psi) const
 Return a phi/psi pair picked uniformly from the regions of rama space with nonzero weight. Sampling with this method will not give a rama distribution; it will give a flat distribution in only the allowed regions of rama space. More...
 
bool phipsi_in_allowed_rama (AA const res_aa, Real phi, Real psi) const
 Return true if the given phi/psi pair is in the allowed space sampled by uniform_phipsi_from_allowed_rama. More...
 
bool phipsi_in_forbidden_rama (AA const res_aa, Real phi, Real psi) const
 Return false if the given phi/psi pair is in the allowed space sampled by uniform_phipsi_from_allowed_rama. More...
 
void random_phipsi_from_rama_by_torsion_bin (AA res_aa, Real &phi, Real &psi, conformation::ppo_torsion_bin torsion_bin) const
 functions for torsion-bin specific but otherwise random phi/psi angles More...
 
void get_entries_per_torsion_bin (AA const res_aa, std::map< conformation::ppo_torsion_bin, core::Size > &tb_frequencies) const
 
void eval_rama_score_all (Pose &pose, ScoreFunction const &scorefxn) const
 evaluate rama score for each (protein) residue and store that score in the pose.energies() object More...
 
void write_rama_score_all (Pose const &pose) const
 
bool is_normally_connected (conformation::Residue const &res) const
 Function to do a quick check that the upper connection is seqpos+1 and the lower connection is seqpos-1. Returns true if this is so, false otherwise. More...
 
bool defines_score_for_residue (conformation::Residue const &rsd) const
 Function to report whether the Ramachandran class will assign a non-zero score for this residue. More...
 
Size n_phi_bins () const
 
Size n_psi_bins () const
 
Real rama_probability (core::chemical::AA aa, Real phi, Real psi) const
 
Real minimum_sampling_probability () const
 
utility::vector1< Real > const & cdf_for_aa (core::chemical::AA aa) const
 
utility::vector1< Real > const & cdf_for_aa_for_torsion_bin (chemical::AA aa, conformation::ppo_torsion_bin) const
 
void draw_random_phi_psi_from_extra_cdf (Rama_Table_Type const type, Real &phi, Real &psi) const
 Pick a random phi, psi value from a custom Rama table. More...
 
bool use_rama_power () const
 Get whether we're using the rama_power option, which scales rama values over 0. More...
 
void set_use_rama_power (bool const setting)
 Set whether we're using the rama_power option, which scales rama values over 0. More...
 
core::Real const & rama_power () const
 Get rama_power value. More...
 
void set_rama_power (core::Real const &setting)
 Set rama_power value. More...
 

Private Member Functions

void read_rama (std::string const &rama_map_filename, bool use_bicubic_interpolation)
 
void load_custom_rama_table (Rama_Table_Type const type) const
 Load a custom Ramachandran table, in addition to the 20x3 standard ones that are always loaded. More...
 
void symmetrize_gly_table (bool const dont_use_shap)
 If the -symmetric_gly_tables option is used, symmetrize the aa_gly table. More...
 
void read_rama_map_file (std::istream &iunit)
 
void read_rama_map_file_shapovalov (std::istream &iunit)
 
void initialize_rama_sampling_tables ()
 
void init_rama_sampling_table (conformation::ppo_torsion_bin torsion_bin)
 
void init_uniform_sampling_table ()
 
void draw_random_phi_psi_from_cdf (utility::vector1< Real > const &cdf, Real &phi, Real &psi) const
 Pick a random phi and psi value given a cumulative distribution function. More...
 
bool has_custom_rama_probability_table (Rama_Table_Type const type) const
 Has a particular custom Rama probability table been loaded? More...
 
bool has_custom_rama_count_table (Rama_Table_Type const type) const
 Has a particular custom Rama count table been loaded? More...
 
bool has_custom_rama_energy_table (Rama_Table_Type const type) const
 Has a particular custom Rama energy table been loaded? More...
 
bool has_custom_rama_cdf (Rama_Table_Type const type) const
 Has a particular custom Rama cumulative distribution function been generated? More...
 
void generate_custom_rama_cdf (Rama_Table_Type const type) const
 Generate a custom Rama cumulative distribution function from the corresponding energy table. More...
 
utility::vector1< core::Real > const & custom_rama_cdf (Rama_Table_Type const type) const
 Get a custom (extra) cumulative distribution function (CDF). More...
 
core::Real const & custom_rama_probability_table (Rama_Table_Type const type, core::Size const phi, core::Size const psi) const
 Get a custom (extra) rama probability table. More...
 

Private Attributes

ObjexxFCL::FArray4D< Realram_probabil_
 The Ramachandran probability tables. More...
 
std::map< Rama_Table_Type, utility::vector1< utility::vector1< core::Real > > > extra_ram_probabil_
 Extra Ramachandran count tables. More...
 
ObjexxFCL::FArray4D_int ram_counts_
 The Ramachandran count tables. More...
 
std::map< Rama_Table_Type, utility::vector1< utility::vector1< core::Size > > > extra_ram_counts_
 Extra Ramachandran count tables. More...
 
ObjexxFCL::FArray4D< Realram_energ_
 The Ramachandran energy tables. More...
 
std::map< Rama_Table_Type, utility::vector1< utility::vector1< core::Real > > > extra_ram_energ_
 Extra Ramachandran energy tables. More...
 
ObjexxFCL::FArray2D< Realram_entropy_
 
utility::vector1< numeric::interpolation::spline::BicubicSpline > rama_energy_splines_
 
utility::vector1< utility::vector1< Real > > cdf_
 The cumulative distribution functions (CDF) for all phi/psi bins for each amino acid. More...
 
std::map< Rama_Table_Type, utility::vector1< Real > > extra_cdf_
 Additional cumulative distribution functions (CDFs). More...
 
ObjexxFCL::FArray2D< utility::vector1< Real > > cdf_by_torsion_bin_
 
ObjexxFCL::FArray2D< Sizen_valid_pp_bins_by_ppo_torbin_
 
utility::vector1< utility::vector1< Size > > phi_psi_bins_above_thold_
 
bool use_rama_power_
 Are we using the rama_power option? More...
 
core::Real rama_power_
 User-specified rama_power value. More...
 

Static Private Attributes

static int const n_phi_ = 36
 
static int const n_psi_ = 36
 
static Real const binw_
 
static Real const rama_sampling_thold_
 
static Real const rama_sampling_factor_
 
static int const n_aa_ = 20
 

Member Typedef Documentation

◆ AA

◆ Pose

Constructor & Destructor Documentation

◆ Ramachandran() [1/2]

core::scoring::Ramachandran::Ramachandran ( )

◆ Ramachandran() [2/2]

core::scoring::Ramachandran::Ramachandran ( std::string const &  rama_map_filename,
bool  use_bicubic_interpolation 
)

◆ ~Ramachandran()

core::scoring::Ramachandran::~Ramachandran ( )
overridedefault

Member Function Documentation

◆ cdf_for_aa()

utility::vector1< Real > const & core::scoring::Ramachandran::cdf_for_aa ( core::chemical::AA  aa) const

◆ cdf_for_aa_for_torsion_bin()

utility::vector1< Real > const & core::scoring::Ramachandran::cdf_for_aa_for_torsion_bin ( chemical::AA  aa,
conformation::ppo_torsion_bin  torsion_bin 
) const

◆ custom_rama_cdf()

utility::vector1< core::Real > const& core::scoring::Ramachandran::custom_rama_cdf ( Rama_Table_Type const  type) const
inlineprivate

Get a custom (extra) cumulative distribution function (CDF).

This function is const. The CDF must already have been generated.

References extra_cdf_, and has_custom_rama_cdf().

Referenced by draw_random_phi_psi_from_extra_cdf().

◆ custom_rama_probability_table()

core::Real const& core::scoring::Ramachandran::custom_rama_probability_table ( Rama_Table_Type const  type,
core::Size const  phi,
core::Size const  psi 
) const
inlineprivate

Get a custom (extra) rama probability table.

This function is const. The probability table must already have been loaded. To keep this consistent with the older Rama probability tables, the phi- and psi-indices are zero-based (running from 0 to 35).

References extra_ram_probabil_, has_custom_rama_probability_table(), n_phi_, and n_psi_.

Referenced by generate_custom_rama_cdf().

◆ defines_score_for_residue()

bool core::scoring::Ramachandran::defines_score_for_residue ( conformation::Residue const &  rsd) const

◆ draw_random_phi_psi_from_cdf()

void core::scoring::Ramachandran::draw_random_phi_psi_from_cdf ( utility::vector1< Real > const &  cdf,
Real phi,
Real psi 
) const
private

Pick a random phi and psi value given a cumulative distribution function.

Parameters
[in]cdfThe cumulative distribution function.
[out]phiThe output phi value.
[out]psiThe output psi value.

A random bin from the cumulative distribution function is chosen first. Then uniform randomness is added within the chosen bin to produce the final phi and psi values.

References binw_, n_phi_, n_psi_, and core::scoring::rg.

Referenced by draw_random_phi_psi_from_extra_cdf(), random_phipsi_from_rama(), and random_phipsi_from_rama_by_torsion_bin().

◆ draw_random_phi_psi_from_extra_cdf()

void core::scoring::Ramachandran::draw_random_phi_psi_from_extra_cdf ( Rama_Table_Type const  type,
Real phi,
Real psi 
) const

Pick a random phi, psi value from a custom Rama table.

The custom Rama table is lazily loaded, so the custom tables must be mutable data. By default, only the 20 canonical Rama tables are loaded.

Note
The lazy loading is not threadsafe. However, there are only a few custom CDFs, which contribute negligibly to the Rosetta memory footprint. As such, to ensure threadsafety, I'm going to have all of these load when the Ramachandran object is initialized in multi-threaded mode. –VK Mulligan, 4 July 2017.
Parameters
[in]typeThe type of custom rama table (an enum value).
[out]phiRandomly-drawn phi value, biased by the custom rama table.
[out]psiRandomly-drawn psi value, biased by the custom rama table.
Author
Vikram K. Mulligan (vmull.nosp@m.ig@u.nosp@m.w.edu).

References custom_rama_cdf(), draw_random_phi_psi_from_cdf(), core::scoring::flat_d_aa_ramatable, core::scoring::flat_d_aa_ramatable_stringent, core::scoring::flat_l_aa_ramatable, core::scoring::flat_l_aa_ramatable_stringent, generate_custom_rama_cdf(), and has_custom_rama_cdf().

◆ eval_rama_score_all()

void core::scoring::Ramachandran::eval_rama_score_all ( pose::Pose pose,
ScoreFunction const &  scorefxn 
) const

◆ eval_rama_score_residue() [1/5]

Real core::scoring::Ramachandran::eval_rama_score_residue ( AA const  res_aa,
Real const  phi,
Real const  psi,
bool const  force_mirroring = false 
) const

◆ eval_rama_score_residue() [2/5]

void core::scoring::Ramachandran::eval_rama_score_residue ( AA const  res_aa,
Real const  phi,
Real const  psi,
Real rama,
Real drama_dphi,
Real drama_dpsi,
bool const  force_mirroring = false 
) const

◆ eval_rama_score_residue() [3/5]

void core::scoring::Ramachandran::eval_rama_score_residue ( bool  use_bicubic_interpolation,
bool  rama_not_squared,
AA const  res_aa,
Real const  phi,
Real const  psi,
Real rama,
Real drama_dphi,
Real drama_dpsi,
bool const  force_mirroring = false 
) const

◆ eval_rama_score_residue() [4/5]

Real core::scoring::Ramachandran::eval_rama_score_residue ( conformation::Residue const &  res) const

◆ eval_rama_score_residue() [5/5]

void core::scoring::Ramachandran::eval_rama_score_residue ( conformation::Residue const &  res,
Real rama,
Real drama_dphi,
Real drama_dpsi,
bool const  force_mirroring = false 
) const

◆ eval_rama_score_residue_nonstandard_connection()

void core::scoring::Ramachandran::eval_rama_score_residue_nonstandard_connection ( core::pose::Pose const &  mypose,
conformation::Residue const &  res,
Real rama,
Real drama_dphi,
Real drama_dpsi,
bool const  force_mirroring = false 
) const

◆ generate_custom_rama_cdf()

void core::scoring::Ramachandran::generate_custom_rama_cdf ( Rama_Table_Type const  type) const
private

Generate a custom Rama cumulative distribution function from the corresponding energy table.

This is generated from the ENERGY table, not from the COUNTS. If the energy table has not been loaded, this function loads the energy table first.

This is generated from the PROBABILITY table, not from the ENERGY table. If the energy table has not been loaded, this function loads the energy table first.

References custom_rama_probability_table(), extra_cdf_, has_custom_rama_probability_table(), load_custom_rama_table(), n_phi_, n_psi_, and core::scoring::unknown_ramatable_type.

Referenced by draw_random_phi_psi_from_extra_cdf(), and Ramachandran().

◆ get_custom_rama_table_filename()

std::string core::scoring::Ramachandran::get_custom_rama_table_filename ( Rama_Table_Type const  type) const

◆ get_entries_per_torsion_bin()

void core::scoring::Ramachandran::get_entries_per_torsion_bin ( AA const  res_aa,
std::map< conformation::ppo_torsion_bin, core::Size > &  tb_frequencies 
) const

◆ get_l_equivalent()

core::chemical::AA core::scoring::Ramachandran::get_l_equivalent ( AA const  d_aa) const

When passed a d-amino acid, returns the l-equivalent. Returns aa_unk otherwise.

Author
Vikram K. Mulligan (vmull.nosp@m.ig@u.nosp@m.w.edu)

References core::chemical::aa_gly, and core::chemical::get_L_equivalent().

Referenced by eval_rama_score_residue(), and random_phipsi_from_rama().

◆ get_ramatable_name_by_type()

std::string core::scoring::Ramachandran::get_ramatable_name_by_type ( Rama_Table_Type const  type) const

◆ get_ramatable_type_by_name()

Rama_Table_Type core::scoring::Ramachandran::get_ramatable_type_by_name ( std::string const &  name) const

Given a Rama_Table_Type name, return the type.

Calls get_rama_table_name_by_type().

Author
Vikram K. Mulligan (vmull.nosp@m.ig@u.nosp@m.w.edu)

Calls get_ramatable_name_by_type().

Author
Vikram K. Mulligan (vmull.nosp@m.ig@u.nosp@m.w.edu)

References core::scoring::end_of_ramatable_type_list, get_ramatable_name_by_type(), and core::scoring::unknown_ramatable_type.

◆ has_custom_rama_cdf()

bool core::scoring::Ramachandran::has_custom_rama_cdf ( Rama_Table_Type const  type) const
inlineprivate

Has a particular custom Rama cumulative distribution function been generated?

Custom Rama tables are lazily loaded, and cumulative distribution functions are lazily generated.

References extra_cdf_, core::scoring::flat_d_aa_ramatable, and core::scoring::flat_l_aa_ramatable.

Referenced by custom_rama_cdf(), and draw_random_phi_psi_from_extra_cdf().

◆ has_custom_rama_count_table()

bool core::scoring::Ramachandran::has_custom_rama_count_table ( Rama_Table_Type const  type) const
inlineprivate

Has a particular custom Rama count table been loaded?

Custom Rama tables are lazily loaded.

References extra_ram_counts_, core::scoring::flat_d_aa_ramatable, and core::scoring::flat_l_aa_ramatable.

Referenced by load_custom_rama_table().

◆ has_custom_rama_energy_table()

bool core::scoring::Ramachandran::has_custom_rama_energy_table ( Rama_Table_Type const  type) const
inlineprivate

Has a particular custom Rama energy table been loaded?

Custom Rama tables are lazily loaded.

References extra_ram_energ_, core::scoring::flat_d_aa_ramatable, and core::scoring::flat_l_aa_ramatable.

Referenced by load_custom_rama_table().

◆ has_custom_rama_probability_table()

bool core::scoring::Ramachandran::has_custom_rama_probability_table ( Rama_Table_Type const  type) const
inlineprivate

Has a particular custom Rama probability table been loaded?

Custom Rama tables are lazily loaded.

References extra_ram_probabil_, core::scoring::flat_d_aa_ramatable, and core::scoring::flat_l_aa_ramatable.

Referenced by custom_rama_probability_table(), generate_custom_rama_cdf(), and load_custom_rama_table().

◆ init_rama_sampling_table()

void core::scoring::Ramachandran::init_rama_sampling_table ( conformation::ppo_torsion_bin  torsion_bin)
private

◆ init_uniform_sampling_table()

void core::scoring::Ramachandran::init_uniform_sampling_table ( )
private

◆ initialize_rama_sampling_tables()

void core::scoring::Ramachandran::initialize_rama_sampling_tables ( )
private

◆ is_canonical_d_aminoacid()

bool core::scoring::Ramachandran::is_canonical_d_aminoacid ( AA const  res_aa) const

Returns true if passed a core::chemical::AA corresponding to a D-amino acid, and false otherwise.

Author
Vikram K. Mulligan (vmull.nosp@m.ig@u.nosp@m.w.edu)

References core::chemical::is_canonical_D_aa().

Referenced by eval_rama_score_residue(), and random_phipsi_from_rama().

◆ is_normally_connected()

bool core::scoring::Ramachandran::is_normally_connected ( conformation::Residue const &  res) const

◆ load_custom_rama_table()

void core::scoring::Ramachandran::load_custom_rama_table ( Rama_Table_Type const  type) const
private

Load a custom Ramachandran table, in addition to the 20x3 standard ones that are always loaded.

Intended for sampling with alternative Ramachandran distributions. Custom tables are lazily loaded so as not to add to total Rosetta memory footprint.

Author
Vikram K. Mulligan (vmull.nosp@m.ig@u.nosp@m.w.edu)

References protocols::buns::energy, extra_ram_counts_, extra_ram_energ_, extra_ram_probabil_, protocols::abinitio::filename(), get_custom_rama_table_filename(), get_ramatable_name_by_type(), has_custom_rama_count_table(), has_custom_rama_energy_table(), has_custom_rama_probability_table(), n_phi_, n_psi_, and core::scoring::TR().

Referenced by generate_custom_rama_cdf().

◆ minimum_sampling_probability()

Real core::scoring::Ramachandran::minimum_sampling_probability ( ) const

References rama_sampling_thold_.

◆ n_phi_bins()

Size core::scoring::Ramachandran::n_phi_bins ( ) const

References n_phi_.

◆ n_psi_bins()

Size core::scoring::Ramachandran::n_psi_bins ( ) const

References n_psi_.

◆ phipsi_in_allowed_rama()

bool core::scoring::Ramachandran::phipsi_in_allowed_rama ( AA const  res_aa,
Real  phi,
Real  psi 
) const

Return true if the given phi/psi pair is in the allowed space sampled by uniform_phipsi_from_allowed_rama.

return true if the bin that the given phi/psi pair falls in has a probability that exceeds the rama_sampling_thold_ constant.

References protocols::cluster::calibur::aa, binw_, ram_probabil_, and rama_sampling_thold_.

Referenced by phipsi_in_forbidden_rama().

◆ phipsi_in_forbidden_rama()

bool core::scoring::Ramachandran::phipsi_in_forbidden_rama ( AA const  res_aa,
Real  phi,
Real  psi 
) const

Return false if the given phi/psi pair is in the allowed space sampled by uniform_phipsi_from_allowed_rama.

References protocols::cluster::calibur::aa, and phipsi_in_allowed_rama().

◆ rama_power()

core::Real const& core::scoring::Ramachandran::rama_power ( ) const
inline

Get rama_power value.

If used, rama values over 0 are raised to the Nth power. Unused by default.

Author
Vikram K. Mulligan (vmull.nosp@m.ig@u.nosp@m.w.edu) and Brian Koepnick.

References rama_power_.

Referenced by eval_rama_score_residue().

◆ rama_probability()

Real core::scoring::Ramachandran::rama_probability ( core::chemical::AA  aa,
Real  phi,
Real  psi 
) const

◆ random_phipsi_from_rama()

void core::scoring::Ramachandran::random_phipsi_from_rama ( AA const  res_aa,
Real phi,
Real psi 
) const

Generate random values for phi and psi, biased by the Ramachandran plot of a particular amino acid.

Parameters
[in]res_aaThe amino acid in question.
[out]phiOutput phi value.
[out]psiOutput psi value.

Sample phi/psi torsions with probabilities proportionate to their Ramachandran probabilities Note – this function had previously required that the option loops::nonpivot_torsion_sampling be active. This function now performs a just-in-time check to initialize these tables the first time they are requested – To properly multi-thread this code, the function should nab a mutex so that no two threads try to execute the code at once. Note2 – this function has been hackily patched to allow it to be used for D-amino acids. (VKM – 21 Aug 2014).

References cdf_, draw_random_phi_psi_from_cdf(), get_l_equivalent(), and is_canonical_d_aminoacid().

Referenced by protocols::loops::loop_closure::kinematic_closure::TorsionSamplingKinematicPerturber::perturb_chain().

◆ random_phipsi_from_rama_by_torsion_bin()

void core::scoring::Ramachandran::random_phipsi_from_rama_by_torsion_bin ( AA  res_aa,
Real phi,
Real psi,
conformation::ppo_torsion_bin  torsion_bin 
) const

functions for torsion-bin specific but otherwise random phi/psi angles

Author
Amelie Stein

Sample phi/psi torsions with probabilities proportionate to their Ramachandran probabilities – this version performs lookup restricted to specified torsion bins based on random_phipsi_from_rama and has the same issue for parallel running

Author
Amelie Stein (ameli.nosp@m.e.st.nosp@m.ein@u.nosp@m.csf..nosp@m.edu)
Date
Fri May 11 15:52:01 PDT 2012

returns a random phi/psi combination within the given torsion bin – WARNING: this will only work for the torsion bins that are currently implemented

References cdf_by_torsion_bin_, and draw_random_phi_psi_from_cdf().

Referenced by protocols::loops::loop_closure::kinematic_closure::TabooSamplingKinematicPerturber::get_random_phi_psi_for_residue(), and protocols::loops::loop_closure::kinematic_closure::TorsionRestrictedKinematicPerturber::perturb_chain().

◆ read_rama()

void core::scoring::Ramachandran::read_rama ( std::string const &  rama_map_filename,
bool  use_bicubic_interpolation 
)
private

◆ read_rama_map_file()

void core::scoring::Ramachandran::read_rama_map_file ( std::istream &  iunit)
private

◆ read_rama_map_file_shapovalov()

void core::scoring::Ramachandran::read_rama_map_file_shapovalov ( std::istream &  iunit)
private

◆ set_rama_power()

void core::scoring::Ramachandran::set_rama_power ( core::Real const &  setting)
inline

Set rama_power value.

If used, rama values over 0 are raised to the Nth power. Unused by default.

Author
Vikram K. Mulligan (vmull.nosp@m.ig@u.nosp@m.w.edu) and Brian Koepnick.

References rama_power_.

Referenced by Ramachandran().

◆ set_use_rama_power()

void core::scoring::Ramachandran::set_use_rama_power ( bool const  setting)
inline

Set whether we're using the rama_power option, which scales rama values over 0.

Author
Vikram K. Mulligan (vmull.nosp@m.ig@u.nosp@m.w.edu) and Brian Koepnick.

References use_rama_power_.

Referenced by Ramachandran().

◆ symmetrize_gly_table()

void core::scoring::Ramachandran::symmetrize_gly_table ( bool const  dont_use_shap)
private

If the -symmetric_gly_tables option is used, symmetrize the aa_gly table.

By default, the gly table is asymmetric because it is based on statistics from the PDB (which disproportionately put glycine in the D-amino acid region of Ramachandran space). However, the intrinsic propensities of glycine make it equally inclined to favour right- or left-handed conformation. (Glycine is achrial, and can't have a preference.) Must be called AFTER gly table load, but prior to bicubic interpolation setup. Note that symmetrization is based on the probability table, and carries over to the energy table; the counts table is left as-is (asymmetric).

Note
If dont_use_shap is set to true, tables for all secondary structures are symmetrized. If it's set to false, then only ss=3 tables have been loaded, so they're the only ones symmetrized.
Author
Vikram K. Mulligan (vmull.nosp@m.ig@u.nosp@m.w.edu).

References core::chemical::aa_gly, n_phi_, n_psi_, ram_energ_, ram_entropy_, ram_probabil_, and core::scoring::TR().

Referenced by read_rama().

◆ uniform_phipsi_from_allowed_rama()

void core::scoring::Ramachandran::uniform_phipsi_from_allowed_rama ( AA const  res_aa,
Real phi,
Real psi 
) const

Return a phi/psi pair picked uniformly from the regions of rama space with nonzero weight. Sampling with this method will not give a rama distribution; it will give a flat distribution in only the allowed regions of rama space.

References binw_, n_psi_, and phi_psi_bins_above_thold_.

◆ use_rama_power()

bool core::scoring::Ramachandran::use_rama_power ( ) const
inline

Get whether we're using the rama_power option, which scales rama values over 0.

Author
Vikram K. Mulligan (vmull.nosp@m.ig@u.nosp@m.w.edu) and Brian Koepnick.

References use_rama_power_.

Referenced by eval_rama_score_residue().

◆ write_rama_score_all()

void core::scoring::Ramachandran::write_rama_score_all ( Pose const &  pose) const

Member Data Documentation

◆ binw_

Real const core::scoring::R::binw_
staticprivate

◆ cdf_

utility::vector1< utility::vector1< Real > > core::scoring::Ramachandran::cdf_
private

The cumulative distribution functions (CDF) for all phi/psi bins for each amino acid.

Referenced by cdf_for_aa(), init_rama_sampling_table(), and random_phipsi_from_rama().

◆ cdf_by_torsion_bin_

ObjexxFCL::FArray2D< utility::vector1< Real > > core::scoring::Ramachandran::cdf_by_torsion_bin_
private

◆ extra_cdf_

std::map< Rama_Table_Type, utility::vector1< Real > > core::scoring::Ramachandran::extra_cdf_
mutableprivate

Additional cumulative distribution functions (CDFs).

Used for several things. For example, for storing CDFs for flat L-alpha amino acid sampling.

Referenced by custom_rama_cdf(), generate_custom_rama_cdf(), and has_custom_rama_cdf().

◆ extra_ram_counts_

std::map< Rama_Table_Type, utility::vector1< utility::vector1 < core::Size > > > core::scoring::Ramachandran::extra_ram_counts_
mutableprivate

Extra Ramachandran count tables.

This is a map of (energy table type -> 2D array of counts by phi, psi).

Referenced by has_custom_rama_count_table(), and load_custom_rama_table().

◆ extra_ram_energ_

std::map< Rama_Table_Type, utility::vector1< utility::vector1 < core::Real > > > core::scoring::Ramachandran::extra_ram_energ_
mutableprivate

Extra Ramachandran energy tables.

This is a map of (energy table type -> 2D array of energies by phi, psi).

Referenced by has_custom_rama_energy_table(), and load_custom_rama_table().

◆ extra_ram_probabil_

std::map< Rama_Table_Type, utility::vector1< utility::vector1 < core::Real > > > core::scoring::Ramachandran::extra_ram_probabil_
mutableprivate

Extra Ramachandran count tables.

This is a map of (energy table type -> 2D array of probabilities by phi, psi).

Referenced by custom_rama_probability_table(), has_custom_rama_probability_table(), and load_custom_rama_table().

◆ n_aa_

int const core::scoring::Ramachandran::n_aa_ = 20
staticprivate

◆ n_phi_

int const core::scoring::Ramachandran::n_phi_ = 36
staticprivate

◆ n_psi_

int const core::scoring::Ramachandran::n_psi_ = 36
staticprivate

◆ n_valid_pp_bins_by_ppo_torbin_

ObjexxFCL::FArray2D< Size > core::scoring::Ramachandran::n_valid_pp_bins_by_ppo_torbin_
private

◆ phi_psi_bins_above_thold_

utility::vector1< utility::vector1< Size > > core::scoring::Ramachandran::phi_psi_bins_above_thold_
private

◆ ram_counts_

ObjexxFCL::FArray4D_int core::scoring::Ramachandran::ram_counts_
private

The Ramachandran count tables.

This is a FORTRAN-style 4D array. The first two dimensions are for phi and psi, respectively. The third is for secondary structure (helix, sheet, loop), though only the loop values are used nowadays. The fourth is for the amino acid type (20 entries). This is another horrible data structure that should be replaced by something much more intuitive.

Referenced by read_rama_map_file().

◆ ram_energ_

ObjexxFCL::FArray4D< Real > core::scoring::Ramachandran::ram_energ_
private

The Ramachandran energy tables.

This is a FORTRAN-style 4D array. The first two dimensions are for phi and psi, respectively. The third is for secondary structure (helix, sheet, loop), though only the loop values are used nowadays. The fourth is for the amino acid type (20 entries). This is also a horrible data structure that should be replaced by something much more intuitive.

Referenced by read_rama_map_file(), read_rama_map_file_shapovalov(), and symmetrize_gly_table().

◆ ram_entropy_

ObjexxFCL::FArray2D< Real > core::scoring::Ramachandran::ram_entropy_
private

◆ ram_probabil_

ObjexxFCL::FArray4D< Real > core::scoring::Ramachandran::ram_probabil_
private

The Ramachandran probability tables.

This is a FORTRAN-style 4D array. The first two dimensions are for phi and psi, respectively. The third is for secondary structure (helix, sheet, loop), though only the loop values are used nowadays. The fourth is for the amino acid type (20 entries). This is a horrible data structure that should be replaced by something much more intuitive.

Referenced by eval_rama_score_residue(), init_rama_sampling_table(), init_uniform_sampling_table(), phipsi_in_allowed_rama(), rama_probability(), read_rama(), read_rama_map_file(), read_rama_map_file_shapovalov(), and symmetrize_gly_table().

◆ rama_energy_splines_

utility::vector1< numeric::interpolation::spline::BicubicSpline > core::scoring::Ramachandran::rama_energy_splines_
private

◆ rama_power_

core::Real core::scoring::Ramachandran::rama_power_
private

User-specified rama_power value.

Unused by default.

Author
Vikram K. Mulligan (vmull.nosp@m.ig@u.nosp@m.w.edu) and Brian Koepnick.

Referenced by rama_power(), and set_rama_power().

◆ rama_sampling_factor_

Real const core::scoring::R::rama_sampling_factor_
staticprivate

◆ rama_sampling_thold_

Real const core::scoring::R::rama_sampling_thold_
staticprivate

◆ use_rama_power_

bool core::scoring::Ramachandran::use_rama_power_
private

Are we using the rama_power option?

Defaults to false.

Author
Vikram K. Mulligan (vmull.nosp@m.ig@u.nosp@m.w.edu) and Brian Koepnick.

Referenced by set_use_rama_power(), and use_rama_power().


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