def sample_bb_angles(self, resnum): """ Resamples phi and psi angles for a residue. Returns the new [phi, psi] angles. Arguments: resnum -- number of the residue to resample NB: This function sets the phi and psi angles to new values. NOTE: Random seeds can be set via the set_seed() function: fragbuilder.set_seed(some_number) """ if self._dbn is None: self._dbn = basilisk_lib.basilisk_dbn() aa_letter = self._sequence[resnum - 1] aa = int(basilisk_lib.basilisk_utils.one_to_index(aa_letter)) chis, bb, ll = self._dbn.get_sample(aa) angles_deg = [self._basilisk_to_deg(bb[0]), self._basilisk_to_deg(bb[1])] self.set_bb_angles(resnum, angles_deg) return angles_deg
def __init__(self): """ Inititalize a DBN object from basilisk_lib. """ self.dbn = basilisk_lib.basilisk_dbn()
def sample_chi_angles(self, resnum, bb_dependency=True): """ Resamples chi angles for a residue from BASILISK. Returns the new chi angles. Arguments: resnum -- number of the residue to resample Keyword arguments: bb_dependency -- Whether to sample chi angles taking phi/psi angles into account in BASILISK sampling. (default True) NB: This function sets the chi angles to new values. NOTE: Random seeds can be set via the set_seed() function: fragbuilder.set_seed(some_number) """ if self._dbn is None: self._dbn = basilisk_lib.basilisk_dbn() angles = self._get_all_bb_angles()[resnum - 1] phi = angles[1][0]/180.0*numpy.pi psi = angles[1][1]/180.0*numpy.pi aa_letter = self._sequence[resnum - 1] aa = int(basilisk_lib.basilisk_utils.one_to_index(aa_letter)) if bb_dependency: chis, bb, ll = self._dbn.get_sample(aa, phi, psi) else: chis, bb, ll = self._dbn.get_sample(aa) chis_deg = [] for chi in chis: chis_deg.append(self._basilisk_to_deg(chi)) self.set_chi_angles(resnum, chis_deg) return chis_deg