Rosetta
Public Types | Public Member Functions | Private Member Functions | Private Attributes | Friends | List of all members
core::scoring::nmr::pre::PREMultiSet Class Reference

#include <PREMultiSet.hh>

Public Types

typedef utility::vector1< VectorCoordVector
 
typedef utility::vector1< std::pair< Real, Vector > > WeightCoordVector
 
typedef utility::fixedsizearray1< Real, 6 > Vec6
 
typedef utility::vector1< utility::vector1< utility::vector1< Real > > > RealVector3D
 
typedef core::io::nmr::ParaIon ParaIon
 
typedef core::io::nmr::ParaIonOP ParaIonOP
 
typedef core::io::nmr::ParaIonCOP ParaIonCOP
 

Public Member Functions

 PREMultiSet (utility::vector1< PRESingleSetOP > const &pre_singleset_vec, pose::Pose const &pose, Size const spinlabel_site, std::string const &iontype, Real const weight=1.0)
 construct PREMultiSet from vector of single datasets, the position of the spinlabel site, the type of paramagnetic ion and the dataset's weight. A default NMRSpinlabel object is created. More...
 
 PREMultiSet (utility::vector1< PRESingleSetOP > const &pre_singleset_vec, pose::Pose const &pose, Size const spinlabel_site, std::string const &iontype, NMRSpinlabelOP spinlabel_ptr, Real const weight=1.0)
 construct PREMultiSet from vector of single datasets, the position of the spinlabel site, the type of paramagnetic ion, an NMRSpinlabel object and the dataset's weight. More...
 
 PREMultiSet (utility::vector1< PRESingleSetOP > const &pre_singleset_vec, pose::Pose const &pose, Size const spinlabel_site, std::string const &iontype, NMRGridSearchOP gridsearch_ptr, Real const weight=1.0)
 construct PREMultiSet from vector of single datasets, the position of the spinlabel site, the type of paramagnetic ion, an NMRGridSearch object and the dataset's weight. More...
 
 PREMultiSet (PREMultiSet const &other)
 copy constructor More...
 
PREMultiSetoperator= (PREMultiSet const &rhs)
 assignment operator More...
 
 ~PREMultiSet ()
 destructor More...
 
void update_spin_coordinates (pose::Pose const &pose)
 updates the spin coordinates every time the pose is changed make sure that this function is called before you call compute_pre_score() More...
 
Real compute_pre_score_from_point_vector (WeightCoordVector const &points)
 calculates the PRE from a vector of spinlabel atom coordinates using the modified Solomon-Bloembergen (SBMF) equation and returns the weighted PRE score according to the single PRE value weighting scheme More...
 
Real compute_pre_score_from_single_point (Vector &point, bool opt_sl_pos=false)
 calculates the PRE from a single spinlabel atom position using the simplified Solomon-Bloembergen (SB) equation and returns the weighted PRE score according to the single PRE value weighting scheme More...
 
Real find_para_ion_position_and_compute_pre_score (pose::Pose const &pose, WeightCoordVector &spinlabel_counts_coords)
 determines the paraion/radical atom position of the spinlabel using a gridsearch or the dummy spinlabel rotamer ensemble and calculates the PRE score using the modified Solomon-Bloembergen (SBMF) or simplified Solomon-Bloembergen (SB) equation More...
 
void set_atom_derivatives (pose::Pose &pose, WeightCoordVector const &spinlabel_counts_coords)
 calculates and sets the xyz derivative of the PRE single PREs must be calculated in beforehand that's why make sure to call any of the three functions first: compute_pre_score_from_point_vector(), compute_pre_from_single_point() or find_para_ion_position_and_compute_pre_score() More...
 
utility::vector1< PRESingleSetOP > & get_pre_singleset_vec ()
 
utility::vector1< PRESingleSetOP > const & get_pre_singleset_vec () const
 
Size get_total_number_pre () const
 
Size get_number_experiments () const
 
Real get_weight () const
 
utility::vector1< Real > const & get_pre_values () const
 
utility::vector1< Real > const & get_pre_single_weights () const
 
ParaIonCOP get_ion_type () const
 
Size get_spinlabel_site_rsd () const
 
NMRSpinlabelOP get_spinlabel ()
 
NMRGridSearchOP get_gridsearch_iterator ()
 
utility::vector1< utility::vector1< CoordVector > > const & get_spin_coordinates () const
 
NMR_VALUE_AVERAGING_TYPE get_averaging_type () const
 
Real get_protein_mass () const
 
Real get_temperature () const
 
Real get_tau_r () const
 
Real get_tau_c () const
 
Real get_tau_t () const
 
bool symmetric_pre_calc () const
 
Real get_tau_c_min () const
 
Real get_tau_c_max () const
 
bool optimize_paraion_position () const
 
void set_weight (Real weight)
 
void set_averaging_type (std::string const &type)
 
void set_spinlabel (NMRSpinlabelOP spinlabel_ptr)
 
void set_gridsearch_iterator (NMRGridSearchOP gridsearch_ptr)
 
void set_protein_mass (Real mass)
 
void set_temperature (Real temperature)
 
void set_tau_c (Real tau_c)
 
void set_tau_t (Real tau_t)
 
void set_tau_r (Real tau_r)
 
void set_tau_c_limits (Real tau_c_min, Real tau_c_max)
 
void show (std::ostream &TR) const
 

Private Member Functions

 PREMultiSet ()
 default constructor More...
 
void deep_copy_pre_singleset_vec (utility::vector1< PRESingleSetOP > const &other_vec)
 
void init_from_pre_singleset_vec (utility::vector1< PRESingleSetOP > const &pre_singleset_vec, pose::Pose const &pose)
 utility function to initialize PREMultiSet More...
 
void set_exp_default_conditions ()
 set protein mass, temperature and correlation times to default values during initialization protein mass = 15kDa, temperature = 298 K More...
 
void set_default_spinlabel ()
 creates MTSL spinlabel as default More...
 
void register_options ()
 register options More...
 
void init_from_cml ()
 
void create_para_ion_from_string (std::string const &iontype)
 
Real calc_theoretical_tau_r () const
 calculate rotational correlation time (in sec) of the protein using the Stokes-Einstein equation and the protein mass (in kDa == kg/mol) More...
 
Real calc_tau_c () const
 calculate sum of rotational correlation and electron relaxation time i.e. the total correlation time (in sec) More...
 
Real calc_omega_E (Real const &field_strength) const
 calculate electron spin frequency at given field strength in rad/s More...
 
void update_r6_S2_values (WeightCoordVector const &spinlabel_counts_coords)
 computes r6 and S2 vectors from given spinlabel atom coordinates and and current spin coordinates More...
 
void resize_r6_S2_values ()
 check if dimensionality of r6 and S2 vectors is consistent with averaging type and resize vectors if not. More...
 
Real compute_pre_score_from_current_data (bool use_sb=false)
 computes the PRE score using the current r6 and S2 vectors and correlation times @params use_sb: use only the simplified SB equation (e.g. if there is only one spinlabel) More...
 
Real PRE_DD_prefactor (Real const &gamma_I, Real const &gJ, Real const &S, PRE_RATE_TYPE const &rate_type) const
 calculate the constant prefactor of the dipolar part of the PRE @params gamma_I: gyromagnetic ratio of the nuclear spin (must be provided in rad/(s*T), dimension is 10^6) gJ: electron Lande factor S: total spin quantum number More...
 
Real PRE_Curie_prefactor (Real const &gamma_I, Real const &gJ, Real const &S, Real const &B0, Real const &T, PRE_RATE_TYPE const &rate_type) const
 calculate the constant prefactor of the Curie part of the PRE @params gamma_I: gyromagnetic ratio of the nuclear spin (must be provided in rad/(s*T), dimension is 10^6) gJ: electron Lande factor S: total spin quantum number B0: magnetic field strength (in Tesla) T: temperature (in Kelvin) More...
 
void calc_r6_S2 (WeightCoordVector const &spinlabel_counts_coords, CoordVector const &eq_spins_coords, Real &one_over_r6, Real &S2) const
 calculate the ensemble averaged distance <r^-6> and generalized order parameter S2 for a given spinlabel atom - nuclear spin connection vector as used in the SBMF equation @params spinlabel_counts_coords: vector of weights and para ion xyz coordinates of N distinct spinlabel conformers eq_spins_coords: vector of xyz coordinates of nuclear spin(s) that give rise to the observed PRE one_over_r6: averaged distance <r^-6> as return value S2: generalized order parameter S2 as return value More...
 
Real J_SB (Real const &omega_I, Real const &tau_c, Real const &one_over_r6) const
 spectral density function for the simplified Solomon-Bloembergen (SB) equation More...
 
Real J_SBMF (Real const &omega_I, Real const &tau_c, Real const &tau_t, Real const &one_over_r6, Real const &S2) const
 spectral density function for the modified Solomon-Bloembergen (SBMF) equation More...
 
Real R1_Para (Vec6 const &params, Real const &one_over_r6, Real const &S2, Real const &scaling=1.0, bool use_sb=false) const
 calculate the R1 paramagnetic relaxation rate from the dipolar and Curie contribution @params: params[1] = prefac_dd: prefactor of dipolar part of PRE params[2] = prefac_curie prefactor of Curie part of PRE params[3] = omega_I: nuclear spin resonance frequency (must be provided in rad/s, dimension is 10^6) params[4] = tau_r: rotational correlation time (must be provided in s, typical dimension is 10^-9) params[5] = tau_c: correlation time (must be provided in s, typical dimension is 10^-9) params[6] = tau_t: total correlation time (must be provided in s, typical dimension is 10^-10) one_over_r6: ensemble averaged distance <r^-6> (must be provided in Ang.^-6) S2: generalized order parameter scaling: optional scaling factor use_sb: use only the simplified SB equation (e.g. if there is only one spinlabel) More...
 
Real R2_Para (Vec6 const &params, Real const &one_over_r6, Real const &S2, Real const &scaling=1.0, bool use_sb=false) const
 calculate the R2 paramagnetic relaxation rate from the dipolar and Curie contribution @params: params[1] = prefac_dd: prefactor of dipolar part of PRE params[2] = prefac_curie prefactor of Curie part of PRE params[3] = omega_I: nuclear spin resonance frequency (must be provided in rad/s, dimension is 10^6) params[4] = tau_r: rotational correlation time (must be provided in s, typical dimension is 10^-9) params[5] = tau_c: correlation time (must be provided in s, typical dimension is 10^-9) params[6] = tau_t: total correlation time (must be provided in s, typical dimension is 10^-10) one_over_r6: ensemble averaged distance <r^-6> (must be provided in Ang.^-6) S2: generalized order parameter scaling: optional scaling factor use_sb: use only the simplified SB equation (e.g. if there is only one spinlabel) More...
 
void calc_dr6_dS2_dXYZ (WeightCoordVector const &spinlabel_counts_coords, CoordVector const &eq_spins_coords, Vector &dr6_dXYZ, Vector &dS2_dXYZ) const
 calculate the xyz derivative of the ensemble averaged distance <r^-6> and the generalized order parameter S2 for a given spinlabel atom - nuclear spin connection vector @params spinlabel_counts_coords: vector of weights and para ion xyz coordinates of N distinct spinlabel conformers eq_spins_coords: vector of xyz coordinates of nuclear spin(s) that give rise to the observed PRE dr6_dXYZ: xyz derivative of <r^-6> as return value dS2_dXYZ: xyz derivative of S2 as return value More...
 
Vector dJ_dXYZ_SB (Real const &omega_I, Real const &tau_c, Vector const &dr6_dXYZ) const
 xyz derivative of the spectral density function for the simplified Solomon-Bloembergen (SB) equation @params omega_I: nuclear spin resonance frequency (must be provided in rad/s, dimension is 10^6) tau_c: correlation time (must be provided in s, typical dimension is 10^-9) dr6_dXYZ: xyz derivative of <r^-6> More...
 
Vector dJ_dXYZ_SBMF (Real const &omega_I, Real const &tau_c, Real const &tau_t, Real const &one_over_r6, Real const &S2, Vector const &dr6_dXYZ, Vector const &dS2_dXYZ) const
 xyz derivative of the spectral density function for the modified Solomon-Bloembergen (SBMF) equation @params omega_I: nuclear spin resonance frequency (must be provided in rad/s, dimension is 10^6) tau_c: correlation time (must be provided in s, typical dimension is 10^-9) tau_t: total correlation time (must be provided in s, typical dimension is 10^-10) one_over_r6: ensemble averaged distance <r^-6> (must be provided in Ang.^-6) S2: generalized order parameter dr6_dXYZ: xyz derivative of <r^-6> dS2_dXYZ: xyz derivative of S2 More...
 
Vector dR1_dXYZ (Vec6 const &params, Real const &one_over_r6, Real const &S2, Vector const &dr6_dXYZ, Vector const &dS2_dXYZ, Real const &scaling=1.0, bool use_sb=false) const
 calculate the xyz derivative of the R1 paramagnetic relaxation rate @params params[1] = prefac_dd: prefactor of dipolar part of PRE params[2] = prefac_curie prefactor of Curie part of PRE params[3] = omega_I: nuclear spin resonance frequency (must be provided in rad/s, dimension is 10^6) params[4] = tau_r: rotational correlation time (must be provided in s, typical dimension is 10^-9) params[5] = tau_c: correlation time (must be provided in s, typical dimension is 10^-9) params[6] = tau_t: total correlation time (must be provided in s, typical dimension is 10^-10) one_over_r6: ensemble averaged distance <r^-6> (must be provided in Ang.^-6) S2: generalized order parameter dr6_dXYZ: xyz derivative of <r^-6> dS2_dXYZ: xyz derivative of S2 scaling: optional scaling factor use_sb: use only the simplified SB equation (e.g. if there is only one spinlabel) More...
 
Vector dR2_dXYZ (Vec6 const &params, Real const &one_over_r6, Real const &S2, Vector const &dr6_dXYZ, Vector const &dS2_dXYZ, Real const &scaling=1.0, bool use_sb=false) const
 calculate the xyz derivative of the R2 paramagnetic relaxation rate @params params[1] = prefac_dd: prefactor of dipolar part of PRE params[2] = prefac_curie prefactor of Curie part of PRE params[3] = omega_I: nuclear spin resonance frequency (must be provided in rad/s, dimension is 10^6) params[4] = tau_r: rotational correlation time (must be provided in s, typical dimension is 10^-9) params[5] = tau_c: correlation time (must be provided in s, typical dimension is 10^-9) params[6] = tau_t: total correlation time (must be provided in s, typical dimension is 10^-10) one_over_r6: ensemble averaged distance <r^-6> (must be provided in Ang.^-6) S2: generalized order parameter dr6_dXYZ: xyz derivative of <r^-6> dS2_dXYZ: xyz derivative of S2 scaling: optional scaling factor use_sb: use only the simplified SB equation (e.g. if there is only one spinlabel) More...
 

Private Attributes

utility::vector1< PRESingleSetOPpre_singleset_vec_
 
Size total_number_pres_
 
Size number_experiments_
 
Real weight_
 
utility::vector1< Realpre_values_
 
utility::vector1< Realpre_single_weights_
 
RealVector3D one_over_r6_values_
 
RealVector3D s2_values_
 
ParaIonOP ion_type_
 
Size spinlabel_site_rsd_
 
NMRSpinlabelOP spinlabel_
 
NMRGridSearchOP gridsearch_iterator_
 
utility::vector1< utility::vector1< CoordVector > > spin_coordinates_
 
Real protein_mass_
 
Real temperature_
 
Real tau_r_
 
Real tau_c_
 
Real tau_t_
 
bool symmetric_pre_calc_
 
NMR_VALUE_AVERAGING_TYPE ave_type_
 
Size nls_repeats_
 
Real tau_c_min_
 
Real tau_c_max_
 
bool opt_para_ion_pos_
 

Friends

void pre_erf_opt_tau (Real const *par, int m_dat, void const *data, Real *fvec, int *)
 pre error function used in the lmmin function to optimize tau More...
 
void pre_erf_opt_tau_xyz (Real const *par, int m_dat, void const *data, Real *fvec, int *)
 pre error function used in the lmmin function to optimize tau and the para ion position More...
 

Member Typedef Documentation

◆ CoordVector

◆ ParaIon

◆ ParaIonCOP

◆ ParaIonOP

◆ RealVector3D

typedef utility::vector1< utility::vector1< utility::vector1< Real > > > core::scoring::nmr::pre::PREMultiSet::RealVector3D

◆ Vec6

typedef utility::fixedsizearray1< Real, 6 > core::scoring::nmr::pre::PREMultiSet::Vec6

◆ WeightCoordVector

typedef utility::vector1< std::pair< Real, Vector > > core::scoring::nmr::pre::PREMultiSet::WeightCoordVector

Constructor & Destructor Documentation

◆ PREMultiSet() [1/5]

core::scoring::nmr::pre::PREMultiSet::PREMultiSet ( utility::vector1< PRESingleSetOP > const &  pre_singleset_vec,
pose::Pose const &  pose,
Size const  spinlabel_site,
std::string const &  iontype,
Real const  weight = 1.0 
)

construct PREMultiSet from vector of single datasets, the position of the spinlabel site, the type of paramagnetic ion and the dataset's weight. A default NMRSpinlabel object is created.

References create_para_ion_from_string(), init_from_cml(), init_from_pre_singleset_vec(), register_options(), set_default_spinlabel(), and set_exp_default_conditions().

◆ PREMultiSet() [2/5]

core::scoring::nmr::pre::PREMultiSet::PREMultiSet ( utility::vector1< PRESingleSetOP > const &  pre_singleset_vec,
pose::Pose const &  pose,
Size const  spinlabel_site,
std::string const &  iontype,
NMRSpinlabelOP  spinlabel_ptr,
Real const  weight = 1.0 
)

construct PREMultiSet from vector of single datasets, the position of the spinlabel site, the type of paramagnetic ion, an NMRSpinlabel object and the dataset's weight.

References create_para_ion_from_string(), init_from_cml(), init_from_pre_singleset_vec(), register_options(), and set_exp_default_conditions().

◆ PREMultiSet() [3/5]

core::scoring::nmr::pre::PREMultiSet::PREMultiSet ( utility::vector1< PRESingleSetOP > const &  pre_singleset_vec,
pose::Pose const &  pose,
Size const  spinlabel_site,
std::string const &  iontype,
NMRGridSearchOP  gridsearch_ptr,
Real const  weight = 1.0 
)

construct PREMultiSet from vector of single datasets, the position of the spinlabel site, the type of paramagnetic ion, an NMRGridSearch object and the dataset's weight.

References create_para_ion_from_string(), init_from_cml(), init_from_pre_singleset_vec(), register_options(), and set_exp_default_conditions().

◆ PREMultiSet() [4/5]

core::scoring::nmr::pre::PREMultiSet::PREMultiSet ( PREMultiSet const &  other)

copy constructor

References deep_copy_pre_singleset_vec(), and pre_singleset_vec_.

◆ ~PREMultiSet()

core::scoring::nmr::pre::PREMultiSet::~PREMultiSet ( )

destructor

◆ PREMultiSet() [5/5]

core::scoring::nmr::pre::PREMultiSet::PREMultiSet ( )
private

default constructor

Member Function Documentation

◆ calc_dr6_dS2_dXYZ()

void core::scoring::nmr::pre::PREMultiSet::calc_dr6_dS2_dXYZ ( WeightCoordVector const &  spinlabel_counts_coords,
CoordVector const &  eq_spins_coords,
Vector dr6_dXYZ,
Vector dS2_dXYZ 
) const
private

calculate the xyz derivative of the ensemble averaged distance <r^-6> and the generalized order parameter S2 for a given spinlabel atom - nuclear spin connection vector @params spinlabel_counts_coords: vector of weights and para ion xyz coordinates of N distinct spinlabel conformers eq_spins_coords: vector of xyz coordinates of nuclear spin(s) that give rise to the observed PRE dr6_dXYZ: xyz derivative of <r^-6> as return value dS2_dXYZ: xyz derivative of S2 as return value

References core::pose::center_of_mass().

Referenced by set_atom_derivatives().

◆ calc_omega_E()

Real core::scoring::nmr::pre::PREMultiSet::calc_omega_E ( Real const &  field_strength) const
private

calculate electron spin frequency at given field strength in rad/s

References ion_type_.

◆ calc_r6_S2()

void core::scoring::nmr::pre::PREMultiSet::calc_r6_S2 ( WeightCoordVector const &  spinlabel_counts_coords,
CoordVector const &  eq_spins_coords,
Real one_over_r6,
Real S2 
) const
private

calculate the ensemble averaged distance <r^-6> and generalized order parameter S2 for a given spinlabel atom - nuclear spin connection vector as used in the SBMF equation @params spinlabel_counts_coords: vector of weights and para ion xyz coordinates of N distinct spinlabel conformers eq_spins_coords: vector of xyz coordinates of nuclear spin(s) that give rise to the observed PRE one_over_r6: averaged distance <r^-6> as return value S2: generalized order parameter S2 as return value

References core::pose::center_of_mass().

Referenced by set_atom_derivatives(), and update_r6_S2_values().

◆ calc_tau_c()

Real core::scoring::nmr::pre::PREMultiSet::calc_tau_c ( ) const
private

calculate sum of rotational correlation and electron relaxation time i.e. the total correlation time (in sec)

References ion_type_, and tau_r_.

Referenced by set_exp_default_conditions().

◆ calc_theoretical_tau_r()

Real core::scoring::nmr::pre::PREMultiSet::calc_theoretical_tau_r ( ) const
private

calculate rotational correlation time (in sec) of the protein using the Stokes-Einstein equation and the protein mass (in kDa == kg/mol)

References core::enzymes::NA, protein_mass_, and temperature_.

Referenced by set_exp_default_conditions(), set_protein_mass(), and set_temperature().

◆ compute_pre_score_from_current_data()

Real core::scoring::nmr::pre::PREMultiSet::compute_pre_score_from_current_data ( bool  use_sb = false)
private

◆ compute_pre_score_from_point_vector()

Real core::scoring::nmr::pre::PREMultiSet::compute_pre_score_from_point_vector ( WeightCoordVector const &  points)

calculates the PRE from a vector of spinlabel atom coordinates using the modified Solomon-Bloembergen (SBMF) equation and returns the weighted PRE score according to the single PRE value weighting scheme

performs NLS fitting of the correlation times (tau_r, tau_e and tau_i)

performs NLS fitting of the correlation times (tau_c and tau_t)

References compute_pre_score_from_current_data(), ion_type_, nls_repeats_, number_experiments_, pre_erf_opt_tau, pre_values_, set_tau_c(), set_tau_t(), spinlabel_, spinlabel_site_rsd_, tau_c_, tau_c_max_, tau_c_min_, tau_r_, tau_t_, core::scoring::total_score, core::scoring::nmr::pre::TR(), and update_r6_S2_values().

Referenced by compute_pre_score_from_single_point(), and find_para_ion_position_and_compute_pre_score().

◆ compute_pre_score_from_single_point()

Real core::scoring::nmr::pre::PREMultiSet::compute_pre_score_from_single_point ( Vector point,
bool  opt_sl_pos = false 
)

calculates the PRE from a single spinlabel atom position using the simplified Solomon-Bloembergen (SB) equation and returns the weighted PRE score according to the single PRE value weighting scheme

performs NLS fitting of the correlation times (tau_r and tau_e) by default optionally, the spinlabel (sl) point position can be optimized too.

performs NLS fitting of the correlation time (tau_c) by default optionally, the point position can be optimized too.

References compute_pre_score_from_current_data(), compute_pre_score_from_point_vector(), gridsearch_iterator_, ion_type_, nls_repeats_, number_experiments_, pre_erf_opt_tau_xyz, pre_values_, set_tau_c(), set_tau_t(), spinlabel_, spinlabel_site_rsd_, tau_c_, tau_c_max_, tau_c_min_, tau_r_, tau_t_, core::scoring::total_score, core::scoring::nmr::pre::TR(), and update_r6_S2_values().

Referenced by find_para_ion_position_and_compute_pre_score().

◆ create_para_ion_from_string()

void core::scoring::nmr::pre::PREMultiSet::create_para_ion_from_string ( std::string const &  iontype)
private

References ion_type_.

Referenced by PREMultiSet().

◆ deep_copy_pre_singleset_vec()

void core::scoring::nmr::pre::PREMultiSet::deep_copy_pre_singleset_vec ( utility::vector1< PRESingleSetOP > const &  other_vec)
private

References pre_singleset_vec_.

Referenced by operator=(), and PREMultiSet().

◆ dJ_dXYZ_SB()

Vector core::scoring::nmr::pre::PREMultiSet::dJ_dXYZ_SB ( Real const &  omega_I,
Real const &  tau_c,
Vector const &  dr6_dXYZ 
) const
private

xyz derivative of the spectral density function for the simplified Solomon-Bloembergen (SB) equation @params omega_I: nuclear spin resonance frequency (must be provided in rad/s, dimension is 10^6) tau_c: correlation time (must be provided in s, typical dimension is 10^-9) dr6_dXYZ: xyz derivative of <r^-6>

Referenced by dR1_dXYZ(), and dR2_dXYZ().

◆ dJ_dXYZ_SBMF()

Vector core::scoring::nmr::pre::PREMultiSet::dJ_dXYZ_SBMF ( Real const &  omega_I,
Real const &  tau_c,
Real const &  tau_t,
Real const &  one_over_r6,
Real const &  S2,
Vector const &  dr6_dXYZ,
Vector const &  dS2_dXYZ 
) const
private

xyz derivative of the spectral density function for the modified Solomon-Bloembergen (SBMF) equation @params omega_I: nuclear spin resonance frequency (must be provided in rad/s, dimension is 10^6) tau_c: correlation time (must be provided in s, typical dimension is 10^-9) tau_t: total correlation time (must be provided in s, typical dimension is 10^-10) one_over_r6: ensemble averaged distance <r^-6> (must be provided in Ang.^-6) S2: generalized order parameter dr6_dXYZ: xyz derivative of <r^-6> dS2_dXYZ: xyz derivative of S2

Referenced by dR1_dXYZ(), and dR2_dXYZ().

◆ dR1_dXYZ()

Vector core::scoring::nmr::pre::PREMultiSet::dR1_dXYZ ( Vec6 const &  params,
Real const &  one_over_r6,
Real const &  S2,
Vector const &  dr6_dXYZ,
Vector const &  dS2_dXYZ,
Real const &  scaling = 1.0,
bool  use_sb = false 
) const
private

calculate the xyz derivative of the R1 paramagnetic relaxation rate @params params[1] = prefac_dd: prefactor of dipolar part of PRE params[2] = prefac_curie prefactor of Curie part of PRE params[3] = omega_I: nuclear spin resonance frequency (must be provided in rad/s, dimension is 10^6) params[4] = tau_r: rotational correlation time (must be provided in s, typical dimension is 10^-9) params[5] = tau_c: correlation time (must be provided in s, typical dimension is 10^-9) params[6] = tau_t: total correlation time (must be provided in s, typical dimension is 10^-10) one_over_r6: ensemble averaged distance <r^-6> (must be provided in Ang.^-6) S2: generalized order parameter dr6_dXYZ: xyz derivative of <r^-6> dS2_dXYZ: xyz derivative of S2 scaling: optional scaling factor use_sb: use only the simplified SB equation (e.g. if there is only one spinlabel)

calculate the xyz derivative of the R1 paramagnetic relaxation @params params[1] = prefac_dd: prefactor of dipolar part of PRE params[2] = prefac_curie prefactor of Curie part of PRE params[3] = omega_I: nuclear spin resonance frequency (must be provided in rad/s, dimension is 10^6) params[4] = tau_r: rotational correlation time (must be provided in s, typical dimension is 10^-9) params[5] = tau_c: correlation time (must be provided in s, typical dimension is 10^-9) params[6] = tau_t: total correlation time (must be provided in s, typical dimension is 10^-10) one_over_r6: ensemble averaged distance <r^-6> (must be provided in Ang.^-6) S2: generalized order parameter dr6_dXYZ: xyz derivative of <r^-6> dS2_dXYZ: xyz derivative of S2 scaling: optional scaling factor use_sb: use only the simplified SB equation (e.g. if there is only one spinlabel)

References dJ_dXYZ_SB(), and dJ_dXYZ_SBMF().

Referenced by set_atom_derivatives().

◆ dR2_dXYZ()

Vector core::scoring::nmr::pre::PREMultiSet::dR2_dXYZ ( Vec6 const &  params,
Real const &  one_over_r6,
Real const &  S2,
Vector const &  dr6_dXYZ,
Vector const &  dS2_dXYZ,
Real const &  scaling = 1.0,
bool  use_sb = false 
) const
private

calculate the xyz derivative of the R2 paramagnetic relaxation rate @params params[1] = prefac_dd: prefactor of dipolar part of PRE params[2] = prefac_curie prefactor of Curie part of PRE params[3] = omega_I: nuclear spin resonance frequency (must be provided in rad/s, dimension is 10^6) params[4] = tau_r: rotational correlation time (must be provided in s, typical dimension is 10^-9) params[5] = tau_c: correlation time (must be provided in s, typical dimension is 10^-9) params[6] = tau_t: total correlation time (must be provided in s, typical dimension is 10^-10) one_over_r6: ensemble averaged distance <r^-6> (must be provided in Ang.^-6) S2: generalized order parameter dr6_dXYZ: xyz derivative of <r^-6> dS2_dXYZ: xyz derivative of S2 scaling: optional scaling factor use_sb: use only the simplified SB equation (e.g. if there is only one spinlabel)

References dJ_dXYZ_SB(), and dJ_dXYZ_SBMF().

Referenced by set_atom_derivatives().

◆ find_para_ion_position_and_compute_pre_score()

Real core::scoring::nmr::pre::PREMultiSet::find_para_ion_position_and_compute_pre_score ( pose::Pose const &  pose,
WeightCoordVector spinlabel_counts_coords 
)

determines the paraion/radical atom position of the spinlabel using a gridsearch or the dummy spinlabel rotamer ensemble and calculates the PRE score using the modified Solomon-Bloembergen (SBMF) or simplified Solomon-Bloembergen (SB) equation

determines the para ion/radical atom position of the spinlabel using a gridsearch or the dummy spinlabel conformer ensemble and calculates the PRE score using the modified Solomon-Bloembergen (SBMF) equation

References compute_pre_score_from_point_vector(), compute_pre_score_from_single_point(), core::scoring::nmr::NMRSpinlabel::DISTANCE, gridsearch_iterator_, protocols::mean_field::max(), opt_para_ion_pos_, spinlabel_, spinlabel_site_rsd_, core::scoring::total_score, core::scoring::nmr::pre::TR(), and update_spin_coordinates().

◆ get_averaging_type()

NMR_VALUE_AVERAGING_TYPE core::scoring::nmr::pre::PREMultiSet::get_averaging_type ( ) const
inline

References ave_type_.

◆ get_gridsearch_iterator()

NMRGridSearchOP core::scoring::nmr::pre::PREMultiSet::get_gridsearch_iterator ( )
inline

References gridsearch_iterator_.

◆ get_ion_type()

ParaIonCOP core::scoring::nmr::pre::PREMultiSet::get_ion_type ( ) const
inline

References ion_type_.

◆ get_number_experiments()

Size core::scoring::nmr::pre::PREMultiSet::get_number_experiments ( ) const
inline

References number_experiments_.

◆ get_pre_single_weights()

utility::vector1<Real> const& core::scoring::nmr::pre::PREMultiSet::get_pre_single_weights ( ) const
inline

References pre_single_weights_.

◆ get_pre_singleset_vec() [1/2]

utility::vector1<PRESingleSetOP>& core::scoring::nmr::pre::PREMultiSet::get_pre_singleset_vec ( )
inline

References pre_singleset_vec_.

◆ get_pre_singleset_vec() [2/2]

utility::vector1<PRESingleSetOP> const& core::scoring::nmr::pre::PREMultiSet::get_pre_singleset_vec ( ) const
inline

References pre_singleset_vec_.

◆ get_pre_values()

utility::vector1<Real> const& core::scoring::nmr::pre::PREMultiSet::get_pre_values ( ) const
inline

References pre_values_.

◆ get_protein_mass()

Real core::scoring::nmr::pre::PREMultiSet::get_protein_mass ( ) const
inline

References protein_mass_.

◆ get_spin_coordinates()

utility::vector1< utility::vector1< CoordVector > > const& core::scoring::nmr::pre::PREMultiSet::get_spin_coordinates ( ) const
inline

References spin_coordinates_.

◆ get_spinlabel()

NMRSpinlabelOP core::scoring::nmr::pre::PREMultiSet::get_spinlabel ( )
inline

References spinlabel_.

◆ get_spinlabel_site_rsd()

Size core::scoring::nmr::pre::PREMultiSet::get_spinlabel_site_rsd ( ) const
inline

References spinlabel_site_rsd_.

◆ get_tau_c()

Real core::scoring::nmr::pre::PREMultiSet::get_tau_c ( ) const
inline

References tau_c_.

◆ get_tau_c_max()

Real core::scoring::nmr::pre::PREMultiSet::get_tau_c_max ( ) const
inline

References tau_c_max_.

◆ get_tau_c_min()

Real core::scoring::nmr::pre::PREMultiSet::get_tau_c_min ( ) const
inline

References tau_c_min_.

◆ get_tau_r()

Real core::scoring::nmr::pre::PREMultiSet::get_tau_r ( ) const
inline

References tau_r_.

◆ get_tau_t()

Real core::scoring::nmr::pre::PREMultiSet::get_tau_t ( ) const
inline

References tau_t_.

◆ get_temperature()

Real core::scoring::nmr::pre::PREMultiSet::get_temperature ( ) const
inline

References temperature_.

◆ get_total_number_pre()

Size core::scoring::nmr::pre::PREMultiSet::get_total_number_pre ( ) const
inline

References total_number_pres_.

◆ get_weight()

Real core::scoring::nmr::pre::PREMultiSet::get_weight ( ) const
inline

References weight_.

◆ init_from_cml()

void core::scoring::nmr::pre::PREMultiSet::init_from_cml ( )
private

◆ init_from_pre_singleset_vec()

void core::scoring::nmr::pre::PREMultiSet::init_from_pre_singleset_vec ( utility::vector1< PRESingleSetOP > const &  pre_singleset_vec,
pose::Pose const &  pose 
)
private

◆ J_SB()

Real core::scoring::nmr::pre::PREMultiSet::J_SB ( Real const &  omega_I,
Real const &  tau_c,
Real const &  one_over_r6 
) const
private

spectral density function for the simplified Solomon-Bloembergen (SB) equation

A detailed description can be found in: Iwahara J, Schwieters CD & Clore GM, 2004, JACS 126,5879-5896 @params omega_I: nuclear spin resonance frequency (must be provided in rad/s, dimension is 10^6) tau_c: correlation time (must be provided in s, typical dimension is 10^-9) one_over_r6: ensemble averaged distance <r^-6> (must be provided in Ang.^-6)

Referenced by R1_Para(), and R2_Para().

◆ J_SBMF()

Real core::scoring::nmr::pre::PREMultiSet::J_SBMF ( Real const &  omega_I,
Real const &  tau_c,
Real const &  tau_t,
Real const &  one_over_r6,
Real const &  S2 
) const
private

spectral density function for the modified Solomon-Bloembergen (SBMF) equation

A detailed description can be found in: Iwahara J, Schwieters CD & Clore GM, 2004, JACS 126,5879-5896 @params omega_I: nuclear spin resonance frequency (must be provided in rad/s, dimension is 10^6) tau_c: correlation time (must be provided in s, typical dimension is 10^-9) tau_t: total correlation time (must be provided in s) one_over_r6: ensemble averaged distance <r^-6> (must be provided in Ang.^-6) S2: generalized order parameter

Referenced by R1_Para(), and R2_Para().

◆ operator=()

PREMultiSet & core::scoring::nmr::pre::PREMultiSet::operator= ( PREMultiSet const &  rhs)

◆ optimize_paraion_position()

bool core::scoring::nmr::pre::PREMultiSet::optimize_paraion_position ( ) const
inline

References opt_para_ion_pos_.

◆ PRE_Curie_prefactor()

Real core::scoring::nmr::pre::PREMultiSet::PRE_Curie_prefactor ( Real const &  gamma_I,
Real const &  gJ,
Real const &  S,
Real const &  B0,
Real const &  T,
PRE_RATE_TYPE const &  rate_type 
) const
private

calculate the constant prefactor of the Curie part of the PRE @params gamma_I: gyromagnetic ratio of the nuclear spin (must be provided in rad/(s*T), dimension is 10^6) gJ: electron Lande factor S: total spin quantum number B0: magnetic field strength (in Tesla) T: temperature (in Kelvin)

References core::chemical::element::C, core::scoring::nmr::R1_PARA, core::chemical::element::S, and core::scoring::T().

Referenced by compute_pre_score_from_current_data(), and set_atom_derivatives().

◆ PRE_DD_prefactor()

Real core::scoring::nmr::pre::PREMultiSet::PRE_DD_prefactor ( Real const &  gamma_I,
Real const &  gJ,
Real const &  S,
PRE_RATE_TYPE const &  rate_type 
) const
private

calculate the constant prefactor of the dipolar part of the PRE @params gamma_I: gyromagnetic ratio of the nuclear spin (must be provided in rad/(s*T), dimension is 10^6) gJ: electron Lande factor S: total spin quantum number

References core::chemical::element::C, core::scoring::nmr::R1_PARA, and core::chemical::element::S.

Referenced by compute_pre_score_from_current_data(), and set_atom_derivatives().

◆ R1_Para()

Real core::scoring::nmr::pre::PREMultiSet::R1_Para ( Vec6 const &  params,
Real const &  one_over_r6,
Real const &  S2,
Real const &  scaling = 1.0,
bool  use_sb = false 
) const
private

calculate the R1 paramagnetic relaxation rate from the dipolar and Curie contribution @params: params[1] = prefac_dd: prefactor of dipolar part of PRE params[2] = prefac_curie prefactor of Curie part of PRE params[3] = omega_I: nuclear spin resonance frequency (must be provided in rad/s, dimension is 10^6) params[4] = tau_r: rotational correlation time (must be provided in s, typical dimension is 10^-9) params[5] = tau_c: correlation time (must be provided in s, typical dimension is 10^-9) params[6] = tau_t: total correlation time (must be provided in s, typical dimension is 10^-10) one_over_r6: ensemble averaged distance <r^-6> (must be provided in Ang.^-6) S2: generalized order parameter scaling: optional scaling factor use_sb: use only the simplified SB equation (e.g. if there is only one spinlabel)

References J_SB(), and J_SBMF().

Referenced by compute_pre_score_from_current_data().

◆ R2_Para()

Real core::scoring::nmr::pre::PREMultiSet::R2_Para ( Vec6 const &  params,
Real const &  one_over_r6,
Real const &  S2,
Real const &  scaling = 1.0,
bool  use_sb = false 
) const
private

calculate the R2 paramagnetic relaxation rate from the dipolar and Curie contribution @params: params[1] = prefac_dd: prefactor of dipolar part of PRE params[2] = prefac_curie prefactor of Curie part of PRE params[3] = omega_I: nuclear spin resonance frequency (must be provided in rad/s, dimension is 10^6) params[4] = tau_r: rotational correlation time (must be provided in s, typical dimension is 10^-9) params[5] = tau_c: correlation time (must be provided in s, typical dimension is 10^-9) params[6] = tau_t: total correlation time (must be provided in s, typical dimension is 10^-10) one_over_r6: ensemble averaged distance <r^-6> (must be provided in Ang.^-6) S2: generalized order parameter scaling: optional scaling factor use_sb: use only the simplified SB equation (e.g. if there is only one spinlabel)

References J_SB(), and J_SBMF().

Referenced by compute_pre_score_from_current_data().

◆ register_options()

void core::scoring::nmr::pre::PREMultiSet::register_options ( )
private

register options

Referenced by PREMultiSet().

◆ resize_r6_S2_values()

void core::scoring::nmr::pre::PREMultiSet::resize_r6_S2_values ( )
private

check if dimensionality of r6 and S2 vectors is consistent with averaging type and resize vectors if not.

References ave_type_, core::scoring::nmr::MEAN, number_experiments_, one_over_r6_values_, pre_singleset_vec_, s2_values_, spin_coordinates_, and core::scoring::nmr::SUM.

Referenced by set_averaging_type().

◆ set_atom_derivatives()

void core::scoring::nmr::pre::PREMultiSet::set_atom_derivatives ( pose::Pose pose,
WeightCoordVector const &  spinlabel_counts_coords 
)

◆ set_averaging_type()

void core::scoring::nmr::pre::PREMultiSet::set_averaging_type ( std::string const &  type)

◆ set_default_spinlabel()

void core::scoring::nmr::pre::PREMultiSet::set_default_spinlabel ( )
private

creates MTSL spinlabel as default

References spinlabel_.

Referenced by PREMultiSet().

◆ set_exp_default_conditions()

void core::scoring::nmr::pre::PREMultiSet::set_exp_default_conditions ( )
private

set protein mass, temperature and correlation times to default values during initialization protein mass = 15kDa, temperature = 298 K

set default values for tau_r_, tau_c_, tau_c_min_ and tau_c_max_

References calc_tau_c(), calc_theoretical_tau_r(), protein_mass_, tau_c_, tau_c_max_, tau_c_min_, tau_r_, tau_t_, and temperature_.

Referenced by PREMultiSet().

◆ set_gridsearch_iterator()

void core::scoring::nmr::pre::PREMultiSet::set_gridsearch_iterator ( NMRGridSearchOP  gridsearch_ptr)
inline

References gridsearch_iterator_.

◆ set_protein_mass()

void core::scoring::nmr::pre::PREMultiSet::set_protein_mass ( Real  mass)
inline

◆ set_spinlabel()

void core::scoring::nmr::pre::PREMultiSet::set_spinlabel ( NMRSpinlabelOP  spinlabel_ptr)
inline

References spinlabel_.

◆ set_tau_c()

void core::scoring::nmr::pre::PREMultiSet::set_tau_c ( Real  tau_c)
inline

◆ set_tau_c_limits()

void core::scoring::nmr::pre::PREMultiSet::set_tau_c_limits ( Real  tau_c_min,
Real  tau_c_max 
)
inline

References tau_c_max_, and tau_c_min_.

Referenced by set_tau_r().

◆ set_tau_r()

void core::scoring::nmr::pre::PREMultiSet::set_tau_r ( Real  tau_r)
inline

References set_tau_c_limits(), and tau_r_.

Referenced by set_protein_mass(), and set_temperature().

◆ set_tau_t()

void core::scoring::nmr::pre::PREMultiSet::set_tau_t ( Real  tau_t)
inline

◆ set_temperature()

void core::scoring::nmr::pre::PREMultiSet::set_temperature ( Real  temperature)
inline

◆ set_weight()

void core::scoring::nmr::pre::PREMultiSet::set_weight ( Real  weight)
inline

References weight_.

◆ show()

void core::scoring::nmr::pre::PREMultiSet::show ( std::ostream &  TR) const

◆ symmetric_pre_calc()

bool core::scoring::nmr::pre::PREMultiSet::symmetric_pre_calc ( ) const
inline

References symmetric_pre_calc_.

◆ update_r6_S2_values()

void core::scoring::nmr::pre::PREMultiSet::update_r6_S2_values ( WeightCoordVector const &  spinlabel_counts_coords)
private

computes r6 and S2 vectors from given spinlabel atom coordinates and and current spin coordinates

References ave_type_, calc_r6_S2(), core::scoring::nmr::MEAN, number_experiments_, one_over_r6_values_, pre_singleset_vec_, s2_values_, spin_coordinates_, and core::scoring::nmr::SUM.

Referenced by compute_pre_score_from_point_vector(), and compute_pre_score_from_single_point().

◆ update_spin_coordinates()

void core::scoring::nmr::pre::PREMultiSet::update_spin_coordinates ( pose::Pose const &  pose)

updates the spin coordinates every time the pose is changed make sure that this function is called before you call compute_pre_score()

updates the spin coordinates every time the pose is changed make sure that this function is called before you call compute_score()

References core::conformation::Residue::atom(), core::conformation::symmetry::is_symmetric(), core::pose::symmetry::is_symmetric(), number_experiments_, pre_singleset_vec_, core::pose::Pose::residue(), spin_coordinates_, symmetric_pre_calc_, core::pose::symmetry::symmetry_info(), and core::conformation::Atom::xyz().

Referenced by find_para_ion_position_and_compute_pre_score().

Friends And Related Function Documentation

◆ pre_erf_opt_tau

void pre_erf_opt_tau ( Real const *  par,
int  m_dat,
void const *  data,
Real fvec,
int *   
)
friend

pre error function used in the lmmin function to optimize tau

  • par is an array of fit parameters [tau_c, tau_t]
  • data is a pointer to the PREMultiSet object i.e. to all data needed for PRE calculation and NLS fitting
  • fvc is an array holding the residuals of the fit calculation

Referenced by compute_pre_score_from_point_vector().

◆ pre_erf_opt_tau_xyz

void pre_erf_opt_tau_xyz ( Real const *  par,
int  m_dat,
void const *  data,
Real fvec,
int *   
)
friend

pre error function used in the lmmin function to optimize tau and the para ion position

  • par is an array of fit parameters [xM, yM, zM, tau_c]
  • data is a pointer to the PREMultiSet object i.e. to all data needed for PRE calculation and NLS fitting
  • fvc is an array holding the residuals of the fit calculation

Referenced by compute_pre_score_from_single_point().

Member Data Documentation

◆ ave_type_

NMR_VALUE_AVERAGING_TYPE core::scoring::nmr::pre::PREMultiSet::ave_type_
private

◆ gridsearch_iterator_

NMRGridSearchOP core::scoring::nmr::pre::PREMultiSet::gridsearch_iterator_
private

◆ ion_type_

ParaIonOP core::scoring::nmr::pre::PREMultiSet::ion_type_
private

◆ nls_repeats_

Size core::scoring::nmr::pre::PREMultiSet::nls_repeats_
private

◆ number_experiments_

Size core::scoring::nmr::pre::PREMultiSet::number_experiments_
private

◆ one_over_r6_values_

RealVector3D core::scoring::nmr::pre::PREMultiSet::one_over_r6_values_
private

◆ opt_para_ion_pos_

bool core::scoring::nmr::pre::PREMultiSet::opt_para_ion_pos_
private

◆ pre_single_weights_

utility::vector1<Real> core::scoring::nmr::pre::PREMultiSet::pre_single_weights_
private

◆ pre_singleset_vec_

utility::vector1< PRESingleSetOP > core::scoring::nmr::pre::PREMultiSet::pre_singleset_vec_
private

◆ pre_values_

utility::vector1<Real> core::scoring::nmr::pre::PREMultiSet::pre_values_
private

◆ protein_mass_

Real core::scoring::nmr::pre::PREMultiSet::protein_mass_
private

◆ s2_values_

RealVector3D core::scoring::nmr::pre::PREMultiSet::s2_values_
private

◆ spin_coordinates_

utility::vector1< utility::vector1< CoordVector > > core::scoring::nmr::pre::PREMultiSet::spin_coordinates_
private

◆ spinlabel_

NMRSpinlabelOP core::scoring::nmr::pre::PREMultiSet::spinlabel_
private

◆ spinlabel_site_rsd_

Size core::scoring::nmr::pre::PREMultiSet::spinlabel_site_rsd_
private

◆ symmetric_pre_calc_

bool core::scoring::nmr::pre::PREMultiSet::symmetric_pre_calc_
private

◆ tau_c_

Real core::scoring::nmr::pre::PREMultiSet::tau_c_
private

◆ tau_c_max_

Real core::scoring::nmr::pre::PREMultiSet::tau_c_max_
private

◆ tau_c_min_

Real core::scoring::nmr::pre::PREMultiSet::tau_c_min_
private

◆ tau_r_

Real core::scoring::nmr::pre::PREMultiSet::tau_r_
private

◆ tau_t_

Real core::scoring::nmr::pre::PREMultiSet::tau_t_
private

◆ temperature_

Real core::scoring::nmr::pre::PREMultiSet::temperature_
private

◆ total_number_pres_

Size core::scoring::nmr::pre::PREMultiSet::total_number_pres_
private

◆ weight_

Real core::scoring::nmr::pre::PREMultiSet::weight_
private

Referenced by get_weight(), operator=(), and set_weight().


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