This class is meant to represent the non-rotameric chi observed in several amino acids (asn, asp, gln, glu, his, phe, trp, tyr ) which are rotameric for the chi closest to the backbone and non rotameric for exactly one chi angle. This non-rotameric chi (abv. nrchi) is the last chi for each of these 8 amino acids except tyrosine, where this chi is the last heavy-atom chi. The last chi on tyrosine governs a hydroxyl. Unlike in the fully rotameric residues, the last heavyatom chi in semi-rotameric residues do not "communicate" to the rotameric chi. That is, in the rotameric chi, the mean chi1 value is sensitive to the chi3 value. If the third diherdal switches from trans to g+, then chi1 would shift in response. Changes to the non-rotameric chi do not effect the rotameric chi. The data structure here is good for this model but no other.
More...
|
| SemiRotamericSingleResidueDunbrackLibrary (chemical::ResidueType const &rt, bool const backbone_independent_scoring, bool const backbone_independent_rotamer_sampling, bool use_shapovalov, bool use_bicubic, bool dun_entropy_correction) |
| The constructor determines the path the library takes: whether it uses a backbone dependent or independent score function for the non-rotameric chi (the rotameric chi score function is always backbone dependent) and whether it uses a backbone dependent or independent rotamer sampling scheme. All four combinations are possible, though backbone independent scoring and backbone dependent rotamer sampling seems a poor combination. More...
|
|
| ~SemiRotamericSingleResidueDunbrackLibrary () override throw () |
|
Real | rotamer_energy (conformation::Residue const &rsd, pose::Pose const &pose, rotamers::TorsionEnergy &tenergy) const override |
| Virtual functions required by the base classes. More...
|
|
void | rotamer_energy_deriv (conformation::Residue const &rsd, pose::Pose const &pose, id::TorsionID const &tor_id, rotamers::TorsionEnergy &tderiv) const override |
|
Real | best_rotamer_energy (conformation::Residue const &rsd, pose::Pose const &pose, bool curr_rotamer_only) const override |
| Returns the energy of the lowest-energy rotamer accessible to the given residue (based on e.g. its current phi and psi values). If curr_rotamer_only is true, then consider only the idealized version of the residue's current rotamer (local optimum); otherwise, consider all rotamers (global optimum). More...
|
|
void | assign_random_rotamer_with_bias (conformation::Residue const &rsd, pose::Pose const &pose, numeric::random::RandomGenerator &RG, ChiVector &new_chi_angles, bool perturb_from_rotamer_center) const override |
| Pick a rotamer for the input residue according to the rotamer probability distribution and assign chi angles to the input rsd. If perturb_from_rotamer_center is true, then push the rotamer off from the center; for chi angles with a normal distribution, the perturbation is taken from a Gaussian random number with a standard deviation matching the chi angle's standard deviation. For chi angles that are not normally distributed, the behavior is open to the derived classe's interpretation. More...
|
|
void | interpolate_nrchi_values (utility::fixedsizearray1< Size, N > const &bb_bin, utility::fixedsizearray1< Size, N > const &bb_bin_next, utility::fixedsizearray1< Real, N > const &bb_alpha, Size packed_rotno, utility::vector1< Real > &interpolated_nrchi_distribution) const |
|
void | fill_rotamer_vector (pose::Pose const &pose, scoring::ScoreFunction const &scorefxn, pack::task::PackerTask const &task, utility::graph::GraphCOP packer_neighbor_graph, chemical::ResidueTypeCOP concrete_residue, conformation::Residue const &existing_residue, utility::vector1< utility::vector1< Real > > const &extra_chi_steps, bool buried, rotamers::RotamerVector &rotamers) const override |
|
utility::vector1< DunbrackRotamerSampleData > | get_all_rotamer_samples (Real5 bbs) const override |
| Return all of the rotamer sample data given a particular phi/psi. For N-terminus residues, hand in the phi value SingleResidueDunbrackLibrary::PHI_NEUTRAL and for C-terminus residues, hand in the psi value SingleResidueDunbrackLibrary::PSI_NEUTRAL. The returned samples should be in semi-decrasing order by probability; semi, because the rotamers are constructed in sorted order by their probability in the lower phi-psi bin that the input phi/psi perscribes. More...
|
|
Real | get_probability_for_rotamer (utility::fixedsizearray1< Real, N > bbs, Size rot_ind) const override |
|
DunbrackRotamerSampleData | get_rotamer (utility::fixedsizearray1< Real, N > bbs, Size rot_ind) const override |
|
Size | nchi () const override |
| The number of chi represented by the library. More...
|
|
Size | nbb () const override |
| the number of backbone dihedrals represented by the library More...
|
|
Size | n_rotamer_bins () const override |
|
void | write_to_file (utility::io::ozstream &out) const override |
|
void | write_to_binary (utility::io::ozstream &out) const override |
|
void | read_from_files (utility::io::izstream &in_rotdef, utility::io::izstream &in_rotameric, utility::io::izstream &in_continmin_bbdep) |
| Initialize either a backbone-independent or a backbone-dependent SRSRDL from the set of four files which describe both (not all files are read). More...
|
|
void | read_from_binary (utility::io::izstream &in) override |
|
bool | operator== (rotamers::SingleResidueRotamerLibrary const &) const override |
| Comparison operator, mainly intended to use in ASCII/binary comparsion tests Values tested should parallel those used in the read_from_binary() function. More...
|
|
void | get_rotamer_from_chi (ChiVector const &chi, RotVector &rot) const override |
| Convert a vector of chi angles (degrees) into a integer vector of rotamer wells. Derived class should be consistent, but may be arbitrary in how wells divide angle space. More...
|
|
Real | probability_to_accumulate_while_building_rotamers (core::pack::task::PackerTask const &task, bool buried) const override |
| When creating rotamer, what position in the CDF should one build until? Unlikely rotamers ( < 0.5 %) are numerous, but are very infrequently useful. More...
|
|
void | set_nrchi_periodicity (Real angle_in_degrees) |
| Initialization functions that must be called before reading the input libraries. More...
|
|
void | set_nonrotameric_chi_start_angle (Real angle_in_degrees) |
| What angle do the interpolation data start from? More...
|
|
void | set_nonrotameric_chi_bbdep_scoring_step_size (Real step_size_in_degrees) |
| What is the angular step size of the bbdep score? More...
|
|
void | set_nonrotameric_chi_bbind_scoring_step_size (Real step_size_in_degrees) |
| What is the angular step size of the bbind score? More...
|
|
| RotamericSingleResidueDunbrackLibrary (chemical::ResidueType const &rt, bool dun02, bool use_bicubic, bool entropy_correction, bool const reduced_resolution_library=false) |
| Creator. More...
|
|
| ~RotamericSingleResidueDunbrackLibrary () override throw () |
|
std::set< id::PartialAtomID > | atoms_w_dof_derivatives (conformation::Residue const &rsd, pose::Pose const &pose) const override |
| Return the set of atoms ids (or, if they come from another residue, PartialAtomIDs) for the set of atoms that are used in defining the DOF derivatives for a particular residue. More...
|
|
std::string | read_from_file (utility::io::izstream &in, bool first_line_three_letter_code_already_read, bool write_out=false) |
| Read from input stream; stream may contain data for other amino acids. Quit once another amino acid is specified in the input file, returning the name of the next amino acid specifed (since it's already been extracted from the input stream). Return the empty string if no other amino acid is specified. More...
|
|
Size | find_another_representative_for_unlikely_rotamer (conformation::Residue const &rsd, pose::Pose const &pose, Size4 &rotwell) const |
|
void | interpolate_rotamers (conformation::Residue const &rsd, pose::Pose const &pose, RotamerLibraryInterpolationScratch &scratch, Size packed_rotno, PackedDunbrackRotamer< T, N, Real > &interpolated_rotamer) const |
|
void | get_bb_bins (utility::fixedsizearray1< Real, N > const &bbs, utility::fixedsizearray1< Size, N > &bb_bin, utility::fixedsizearray1< Size, N > &bb_bin_next, utility::fixedsizearray1< Real, N > &bb_alpha) const |
|
void | get_bb_bins (utility::fixedsizearray1< Real, N > const &bbs, utility::fixedsizearray1< Size, N > &bb_bin) const |
|
void | get_bb_bins (utility::vector1< core::Real > const &bbs, utility::vector1< core::Size > &bb_bin) const |
| Version for external, non-template classes to access. More...
|
|
SingleResidueDunbrackLibrary & | operator= (SingleResidueDunbrackLibrary const &other)=delete |
|
| SingleResidueDunbrackLibrary (SingleResidueDunbrackLibrary const &)=delete |
|
| SingleResidueDunbrackLibrary (chemical::ResidueType const &rt, Size const n_rotameric_chi, bool dun02, bool use_bicubic, bool dun_entropy_correction) |
| c-tor More...
|
|
virtual Size | memory_usage_in_bytes () const |
| Virtual functions the derived classes must implement. More...
|
|
void | set_n_chi_bins (utility::vector1< Size > const &) |
| Tell the base class the number of chi bins for each rotameric chi dimension. More...
|
|
Size | rotwell_2_rotno (utility::vector1< Size > const &rotwell) const |
| Conversion functions. More...
|
|
Size | rotwell_2_rotno (Size4 const &rotwell) const |
| Convert from the rotamer bin indices for each chi to the (non-compact) "rotamer number". More...
|
|
Size | rotno_2_packed_rotno (Size const rotno) const |
| Convert from the rotamer number to the compacted "packed rotamer number". Returns 0 if rotno has no corresponding packed rotno. More...
|
|
Size | rotwell_2_packed_rotno (utility::vector1< Size > const &rotwell) const |
| Convert from the rotamer bin indices for each chi to the compacted "packed rotamer number." Returns 0 if rotwell has no corresponding packed rotno. More...
|
|
Size | rotwell_2_packed_rotno (Size4 const &rotwell) const |
| Convert from the rotamer bin indices for each chi to the compacted "packed rotamer number." Returns 0 if rotwell has no corresponding packed rotno. More...
|
|
void | packed_rotno_2_rotwell (Size const packed_rotno, utility::vector1< Size > &rotwell) const |
| Convert from the packed rotamer number to the rotamer well. More...
|
|
void | packed_rotno_2_rotwell (Size const packed_rotno, Size4 &rotwell) const |
|
utility::vector1< Size > const & | packed_rotno_2_rotwell (Size const packed_rotno) const |
|
void | rotno_2_rotwell (Size const rotno, utility::vector1< Size > &rotwell) const |
| Convert from the rotamer number to the rotamer well. More...
|
|
Size | bin_rotameric_chi (Real chi, Size which_chi) const |
| , Turns out, when non-rotameric chi are taken out of the picture, all remaining chi are binned the same way, except proline. Valid only for Dun10 libraries. For D-amino acids, chi must be inverted before passing to this function. More...
|
|
void | bin_angle (Real const angle_start, Real const angle_step, Real const ASSERT_ONLY(angle_range), Size const nbins, Real const ang, Size &bin_lower, Size &bin_upper, Real &angle_alpha) const |
|
void | bin_angle (Real const angle_start, utility::vector1< core::Size > const &bin_equivs, Real const angle_step, Real const ASSERT_ONLY(angle_range), Size const nbins, Real const ang, Size &bin_lower, Size &bin_upper, Real &angle_alpha) const |
|
AA | aa () const |
| The amino acid this library is representing. More...
|
|
bool | operator== (rotamers::SingleResidueRotamerLibrary const &) const override |
| Comparison operator, mainly intended to use in ASCII/binary comparsion tests Values tested should parallel those used in the read_from_binary() function. More...
|
|
| SingleResidueRotamerLibrary () |
|
| ~SingleResidueRotamerLibrary () override |
|
virtual utility::vector1< utility::vector1< core::Real > > | compute_proton_chi_samplings (chemical::ResidueType const &concrete_residue, pack::task::ResidueLevelTask const &rlt, bool buried) const |
| Return a vector (indexed by proton_chi number) of vectors of dihedral values to use in proton chi sampling. More...
|
|
virtual utility::vector1< dunbrack::ChiSetOP > | expand_proton_chis (utility::vector1< utility::vector1< core::Real > > const &sampling, chemical::ResidueType const &concrete_residue, core::Size max_rotamers=5000) const |
| Given a vector of vectors of dihedrals to sample on proton chis, Will create the ChiSet vector combinitorially on those chi values (Note: The ChiSets are only valid/defined over the proton chis.) More...
|
|
virtual void | bump_filter (RotamerVector &rotamers, core::Size resid, scoring::ScoreFunction const &sf, pose::Pose const &pose, task::PackerTask const &task, utility::graph::GraphCOP packer_neighbor_graph) const |
| Filter a RotamerVector by "bump energy" of a rotamer: All rotamers with bump energies over a certain threshold will be discarded Exception: if all rotamers are over the threshold, one rotamer (with the lowest bump energy) will be reserved. The vector "rotamers" will be modified "in-place". More...
|
|
virtual core::PackerEnergy | bump_check (core::conformation::ResidueCOP rotamer, core::Size resid, scoring::ScoreFunction const &sf, pose::Pose const &pose, task::PackerTask const &task, utility::graph::GraphCOP packer_neighbor_graph) const |
| Computes the "bump energy" of a rotamer: the bump energy is the sum of rotamer's interactions with 1) the backbone-and-side chains of neighboring residues that are held fixed during this repacking optimization and 2) the backbones of neighboring residues that are changable during this repacking optimization. More...
|
|
virtual core::Size | current_rotamer (RotamerVector &rotamers, core::Size resid, task::PackerTask const &task, chemical::ResidueTypeCOP concrete_residue, conformation::Residue const &existing_residue) const |
| Adds the current rotamer to rotamer vector, if the Rotlib supports it. More...
|
|
virtual void | emergency_rotamer (RotamerVector &rotamers, core::Size resid, pose::Pose const &pose, task::PackerTask const &task, chemical::ResidueTypeCOP concrete_residue, conformation::Residue const &existing_residue) const |
| Generate an "emergency rotamer" if we don't have any. More...
|
|
RotamerVector | virtual_sidechain (RotamerVector const &rotamers, core::Size resid, pose::Pose const &pose, task::PackerTask const &task, chemical::ResidueTypeCOP concrete_residue, conformation::Residue const &existing_residue) const |
| Add a virtualized sidechain to the rotamer vector if settings call for it. More...
|
|
|
Size | memory_usage_static () const override |
| Worker functions. More...
|
|
Size | memory_usage_dynamic () const override |
|
Real | eval_nrchi_score (conformation::Residue const &rsd, pose::Pose const &pose, RotamerLibraryInterpolationScratch const &scratch, core::Size packed_rotno, Real &dnrchiscore_dchi, utility::fixedsizearray1< Real, N > &dnrchiscore_dbb) const |
|
Real | rotamer_energy_bbdep (conformation::Residue const &rsd, pose::Pose const &pose, rotamers::TorsionEnergy &tenergy) const |
|
void | rotamer_deriv_bbdep (conformation::Residue const &rsd, pose::Pose const &pose, RotamerLibraryScratchSpace &scratch) const |
|
void | assign_random_rotamer_with_bias_bbdep (conformation::Residue const &rsd, pose::Pose const &pose, numeric::random::RandomGenerator &RG, ChiVector &new_chi_angles, bool perturb_from_rotamer_center) const |
|
Real | bbdep_nrchi_score (conformation::Residue const &rsd, pose::Pose const &pose, core::Size packed_rotno, Real &dnrchi_score_dnrchi, utility::fixedsizearray1< Real, N > &dnrchi_score_dbb) const |
| Trilinear interpolation. Derivatives discontinuous at edge planes. Correction: it seems that this was updated at some point to use tricubic interpolation. Note: This function has been updated to handle D-amino acids properly. More...
|
|
void | fill_rotamer_vector_bbdep (pose::Pose const &pose, scoring::ScoreFunction const &scorefxn, pack::task::PackerTask const &task, utility::graph::GraphCOP packer_neighbor_graph, chemical::ResidueTypeCOP concrete_residue, conformation::Residue const &existing_residue, utility::vector1< utility::vector1< Real > > const &extra_chi_steps, bool buried, rotamers::RotamerVector &rotamers) const |
|
utility::vector1< DunbrackRotamerSampleData > | get_all_rotamer_samples_bbdep (Real5 bbs) const |
|
Real | get_probability_for_rotamer_bbdep (utility::fixedsizearray1< Real, N > bbs, Size rot_ind) const |
|
DunbrackRotamerSampleData | get_rotamer_bbdep (utility::fixedsizearray1< Real, N > bbs, Size rot_ind) const |
|
void | chisamples_for_rotamer_and_chi (chemical::ResidueType const &rsd_type, pack::task::ResidueLevelTask const &rtask, bool buried, Size const chi_index, RotamericData< T, N > const &rotamer_data, utility::vector1< Real > const &extra_steps, utility::vector1< Real > &total_chi, utility::vector1< int > &total_rot, utility::vector1< Real > &total_ex_steps, utility::vector1< Real > &chisample_prob) const override |
| overrides parent class for the non-rotameric chi, but falls back on the parent class functionality for all other chi. More...
|
|
void | initialize_bicubic_splines () |
|
void | increment_tensor_index_recursively (utility::fixedsizearray1< Size,(N+1) > &bb_bin, utility::fixedsizearray1< Size,(N+1) > const &bb_bin_maxes, core::Size const recursion_level) const |
| Given a RotamericSingleResidueDunbrackLibrary of type T (probably core::Real) and with N backbone dihedrals, a vector of coordinates in the backbone bins tensor, and a vector of sizes for the dimensions of the backbone bins tensor, increment the coordinate in a manner that ensures that all bins can be iterated over. More...
|
|
void | get_rotamer_from_chi_static_voronoi (ChiVector const &chi, core::Size &rot, core::conformation::Residue const &rsd, core::pose::Pose const &pose) const |
| Given chi values and a pose residue, return indices specifying the nearest rotamer well centre. More...
|
|
void | get_rotamer_from_chi_static (ChiVector const &chi, Size4 &rot) const |
| When given a statically sized fixedsizearray, use this method. More...
|
|
void | get_rotamer_from_chi_static (Real4 const &chi, Size4 &rot) const |
| When given a statically sized fixedsizearray, use this method. More...
|
|
ObjexxFCL::FArray2D< PackedDunbrackRotamer< T, N > > const & | rotamers () const |
| Read and write access for derived classes and parser class. More...
|
|
ObjexxFCL::FArray2D< PackedDunbrackRotamer< T, N > > & | rotamers () |
|
ObjexxFCL::FArray2D< Size > const & | packed_rotno_2_sorted_rotno () const |
|
ObjexxFCL::FArray2D< Size > & | packed_rotno_2_sorted_rotno () |
|
core::Size | get_packed_rotno (conformation::Residue const &rsd, pose::Pose const &pose) const |
| Get the corresponding packed_rotno. More...
|
|
core::Size | get_packed_rotno (conformation::Residue const &rsd, pose::Pose const &pose, ChiVector &chi) const |
| Get the corresponding packed_rotno and the "corrected" ChiVector. More...
|
|
Real | eval_rotameric_energy (conformation::Residue const &rsd, pose::Pose const &pose, RotamerLibraryInterpolationScratch &scratch, Real4 &chidev, Real4 &chidevpen, core::Size &packed_rotno, rotamers::TorsionEnergy &tenergy) const |
| Evaluate scoring for the residue. Returns the energy total for this residue chidev & chidevpen will be overwritten. The energy components will be summed to the entries in tenergy. More...
|
|
void | eval_rotameric_deriv (conformation::Residue const &rsd, pose::Pose const &pose, RotamerLibraryScratchSpace &scratch) const |
| Evaluates the score and chi-deviation penalty for the rotameric chi (in this class, that means all the chi) and stores the answers in the scratch object. It then updates the derivative information. Scratch contains up-to-date dchidevpen_dbb, dchidevpen_dchi, chimean, chisd, chidev, chidevpen, dchimean_d(phi/psi), dchisd_d(phi/psi) rotwell and rotprob data. More...
|
|
void | interpolate_rotamers (RotamerLibraryInterpolationScratch &scratch, Size packed_rotno, utility::fixedsizearray1< Size, N > const &bb_bin, utility::fixedsizearray1< Size, N > const &bb_bin_next, utility::fixedsizearray1< Real, N > const &bb_alpha, PackedDunbrackRotamer< T, N, Real > &interpolated_rotamer, ChiVector const &chi=ChiVector(T, 0.0), bool const use_chi=false) const |
|
Size | make_conditional_packed_rotno_index (Size const original_bb_index, Size const bb_index, Size const packed_rotno, ChiVector const &chi, bool const use_chi) const |
| Given the index of a rotamer in the current backbone bin, find the closest rotamer index in another backbone bin. More...
|
|
void | assign_random_rotamer (conformation::Residue const &rsd, pose::Pose const &pose, numeric::random::RandomGenerator &RG, ChiVector &new_chi_angles, bool perturb_from_rotamer_center, Size &packed_rotno) const |
| Assigns random chi angles and returns the packed_rotno for the chosen random rotamer. More...
|
|
void | assign_chi_for_interpolated_rotamer (PackedDunbrackRotamer< T, N, Real > const &interpolated_rotamer, conformation::Residue const &rsd, numeric::random::RandomGenerator &RG, ChiVector &new_chi_angles, bool perturb_from_rotamer_center) const |
|
void | correct_termini_derivatives (conformation::Residue const &rsd, RotamerLibraryScratchSpace &scratch) const |
|
Real | get_phi_from_rsd (conformation::Residue const &rsd) const override |
|
Real | get_psi_from_rsd (conformation::Residue const &rsd) const override |
|
utility::fixedsizearray1< Real, N > | get_IVs_from_rsd (conformation::Residue const &rsd, pose::Pose const &pose) const |
|
Real | get_IV_from_rsd (core::Size bbn, conformation::Residue const &rsd, pose::Pose const &pose) const |
|
template<class P > |
DunbrackRotamer< T, N, P > | packed_rotamer_2_regular_rotamer (PackedDunbrackRotamer< T, N, P > const &packedrot) const |
|
void | enumerate_chi_sets (chemical::ResidueType const &rsd_type, pack::task::PackerTask const &task, Size const seqpos, bool buried, RotamericData< T, N > const &rotamer_data, utility::vector1< utility::vector1< Real > > const &extra_chi_steps, utility::vector1< ChiSetOP > &chi_set_vector) const |
| This member function constructs a list of all combinations of chi angles for a rotamer sample. It relies on a virtual function chisamples_for_rotamer_chi that may be overridden by derived classes. With a list of samples for each chi, this function then enumerates all combinations. More...
|
|
void | create_rotamers_from_chisets (pose::Pose const &pose, scoring::ScoreFunction const &scorefxn, pack::task::PackerTask const &task, utility::graph::GraphCOP packer_neighbor_graph, chemical::ResidueTypeCOP concrete_residue, conformation::Residue const &existing_residue, utility::vector1< ChiSetOP > const &chi_set_vector, rotamers::RotamerVector &rotamers) const |
| Once all the chi have been enumerated, building the rotamers is a trivial task. This function is protected so that derived classes may simply enumerate their chi and then invoke this function. This arguably should be moved into the SingleResidueRotamerLibrary base class. More...
|
|
void | setup_entropy_correction () |
|
void | setup_entropy_correction () const |
|
bool | dun02 () const |
| Read access for the derived class. More...
|
|
bool | use_bicubic () const |
| Read access for the derived class. More...
|
|
bool | dun_entropy_correction () const |
| Read access for the derived class. More...
|
|
utility::vector1< Size > const & | n_chi_bins () const |
| Read access to the n_chi_bins_ vector. More...
|
|
void | mark_rotwell_exists (utility::vector1< Size > const &rotwell) |
| The base class needs to be informed about which rotamer wells exist in order to create the rotwell to packed rot conversion data. set_chi_nbins must be called first. More...
|
|
void | declare_all_existing_rotwells_encountered () |
| After the derived class has marked all the rotwells that do exist, the base class will create the rotwell to packerot conversion data. More...
|
|
Size | n_packed_rots () const |
| The number of existing rotamers. More...
|
|
Size | n_possible_rots () const |
| The number of possible rotamers – product of the chi_nbins_ array. More...
|
|
template<Size T, Size N>
class core::pack::dunbrack::SemiRotamericSingleResidueDunbrackLibrary< T, N >
This class is meant to represent the non-rotameric chi observed in several amino acids (asn, asp, gln, glu, his, phe, trp, tyr ) which are rotameric for the chi closest to the backbone and non rotameric for exactly one chi angle. This non-rotameric chi (abv. nrchi) is the last chi for each of these 8 amino acids except tyrosine, where this chi is the last heavy-atom chi. The last chi on tyrosine governs a hydroxyl. Unlike in the fully rotameric residues, the last heavyatom chi in semi-rotameric residues do not "communicate" to the rotameric chi. That is, in the rotameric chi, the mean chi1 value is sensitive to the chi3 value. If the third diherdal switches from trans to g+, then chi1 would shift in response. Changes to the non-rotameric chi do not effect the rotameric chi. The data structure here is good for this model but no other.