You are reading the documentation for version 2.1 of ProMod3.
You may also want to read the documentation for:
3.0
1.3
2.0
Rotamer Library
With angles and bonds being rather rigid, the conformation of an amino acid
sidechain can completely be described in terms of dihedral angles. Preferred
combinations of such dihedral angles are a result of steric properties and
can be gathered in rotamer libraries. Different libraries exist in the field
and their main difference is, whether the provided sidechain conformations
are dependent on their backbone or not. ProMod3 provides you with a
BBDepRotamerLib organizing rotamers for the different aminoacids
in equidistant phi/psi bins, as well as a simple RotamerLib .
Both libraries are containers for RotamerLibEntry and are optimized
for fast writing/loading from/to disk. Once initialized, the library is in a
dynamic mode where rotamers can be added.
No rotamers can be read at this stage. As soon as
all required rotamers are added, the library can be made static. This is the
mode you can get the rotamers out of it or dump it to disk.
The Non Backbone Dependent Rotamer Library

class
promod3.sidechain. RotamerLib
Non backbone dependent rotamer library

static
Load (filename)

static
LoadPortable (filename)
Loads raw binary file generated with Save() (optimized for fast
reading) / portable file generated with SavePortable() (slower but
less machinedependent).
Parameters:  filename (str ) – Path to the file from which to load. 
Returns:  A rotamer library 
Return type:  RotamerLib 
Raises:  RuntimeError if file cannot be opened or if
file cannot be parsed (see here for details). 

Save (filename)

SavePortable (filename)
Saves a raw / portable binary representation. Use portable files for
distribution and convert locally to raw files. See here
for details.
Parameters:  filename (str ) – Path to the file where it will be saved. 

AddRotamer (id, rotamer)
Parameters: 

Raises:  RuntimeError if the library is already static


QueryLib (id)
The query function follows following strategies in case of
special id requests.
 if id = HSD (dprotonated HIS) try to find HSD, fallback to HIS in case of failure
 if id = HSE (eprotonated HIS) try to find HSE, fallback to HIS in case of failure
 if id = CYH (“free” CYS) try to find CYH, fallback to CYS in case of failure
 if id = CYD (“disulfid” CYS) try to find CYD, fallback to CYS in case of failure
 if id = CPR (cisPRO) try to find CPR, fallback to PRO in case of failure
 if id = TPR (transPRO) try to find TPR, fallback to PRO in case of failure
Parameters:  id (RotamerID ) – Identity of rotamer of interest 
Returns:  list of RotamerLibEntry of nonzero
probability sorted by their probability 
Raises:  RuntimeError if no entries for id can be
found 

MakeStatic ()
Once all rotamers are added, the library can be made static to become readable
and ready for io.
The Backbone Dependent Rotamer Library

class
promod3.sidechain. BBDepRotamerLib (phi_bins, psi_bins)
Backbone dependent rotamer library
Parameters: 
 phi_bins (
int ) – number of bins for phi backbone dihedral
 psi_bins (
int ) – number of bins for psi backbone dihedral


static
Load (filename)

static
LoadPortable (filename)
Loads raw binary file generated with Save() (optimized for fast
reading) / portable file generated with SavePortable() (slower but
less machinedependent).
Parameters:  filename (str ) – Path to the file from which to load. 
Returns:  A rotamer library 
Return type:  BBDepRotamerLib 
Raises:  RuntimeError if file cannot be opened or if
file cannot be parsed (see here for details). 

Save (filename)

SavePortable (filename)
Saves a raw / portable binary representation. Use portable files for
distribution and convert locally to raw files. See here
for details.
Parameters:  filename (str ) – Path to the file where it will be saved. 
Raises:  RuntimeError if file cannot be opened. 

AddRotamer (id, r1, r2, r3, r4, phi_bin, psi_bin, rotamer)
Parameters: 
 id (
RotamerID ) – Identity of rotamer to be added
 r1 (
int ) – Configuration of chi1
 r2 (
int ) – Configuration of chi2
 r3 (
int ) – Configuration of chi3
 r4 (
int ) – Configuration of chi4
 phi_bin (
int ) – Phi backbone dihedral description
 psi_bin (
int ) – Psi backbone dihedral description
 rotamer (
RotamerLibEntry ) – the rotamer to be added

Raises:  RuntimeError if an invalid backbone angle bin
is given or when the library is already static.


QueryLib (id, phi, psi)
The returned rotamers are either directly returned in the form as they are
added to the library or can be interpolated.
In the first option, phi and psi simply get transformed to the
according bin using following formalism: bin = round((angle + pi)/bin_size).
In case of interpolation, the chi angles of rotameric dihedral angles and the
according standard deviations of the rotamers get bilinearly interpolated
using the corresponding rotamers with same configuration from the
neighbouring bins. No interplation is applied to nonrotameric dihedral
angles (chi2 in ASP, ASN, HIS, PHE, TRP, TYR; chi3 in GLU, GLN).
This behaviour can be controlled with SetInterpolate() .
The query function follows following strategies in case of
special id requests.
 if id = HSD (dprotonated HIS) try to find HSD, fallback to HIS in case of failure
 if id = HSE (eprotonated HIS) try to find HSE, fallback to HIS in case of failure
 if id = CYH (“free” CYS) try to find CYH, fallback to CYS in case of failure
 if id = CYD (“disulfid” CYS) try to find CYD, fallback to CYS in case of failure
 if id = CPR (cisPRO) try to find CPR, fallback to PRO in case of failure
 if id = TPR (transPRO) try to find TPR, fallback to PRO in case of failure
Parameters: 
 id (
RotamerID ) – Identity of rotamer of interest
 phi (
float ) – Phi backbone dihedral angle in range [pi,pi[
 psi (
float ) – Psi backbone dihedral angle in range [pi,pi[

Returns:  list of RotamerLibEntry of nonzero
probability for given phi/psi pair sorted by their probability

Raises:  RuntimeError if no entries for id can be
found


MakeStatic ()
Once all rotamers are added, the library can be made static to become readable
and ready for io. Several things get checked during this process
 For every phi/psi bin combination of a particular
RotamerID ,
the same number of rotamers must have been added
 All configuration combinations of the added rotamers in one phi/psi bin
of a particular
RotamerID must be unique
 The configuration combinations of a particular
RotamerID must
be consistent across all phi/psi bins
Raises:  RuntimeError if one of the points above is
not fulfilled 

SetInterpolate (interpolate)
Parameters:  interpolate (bool ) – Controls behaviour when QueryLib()
gets called 
The Library Entry Type
The entries for the rotamer libraries provide a basic container for rotamer
dihedral angles and their corresponding standard deviations. They can be
constructed by directly providing the values, but also by some static
convenience functions. For analytical purposes they provide some comparison
functionalities.

class
promod3.sidechain. RotamerLibEntry

class
promod3.sidechain. RotamerLibEntry (p, chi1, chi2, chi3, chi4, sig1, sig2, sig3, sig4)
Parameters: 
 p (
float ) – Probability of rotamer
 chi1 (
float ) – Chi1 dihedral in range [pi,pi[
 chi2 (
float ) – Chi2 dihedral in range [pi,pi[
 chi3 (
float ) – Chi3 dihedral in range [pi,pi[
 chi4 (
float ) – Chi4 dihedral in range [pi,pi[
 sig1 (
float ) – Standard deviation for Chi1 dihedral
 sig2 (
float ) – Standard deviation for Chi2 dihedral
 sig3 (
float ) – Standard deviation for Chi3 dihedral
 sig4 (
float ) – Standard deviation for Chi4 dihedral

Attributes:

probability
probability of rotamer

chi1
Chi1 dihedral in range [pi,pi[, NaN if not defined

chi2
Chi2 dihedral in range [pi,pi[, NaN if not defined

chi3
Chi3 dihedral in range [pi,pi[, NaN if not defined

chi4
Chi4 dihedral in range [pi,pi[, NaN if not defined

sig1
Standard deviation of Chi1 Dihedral, NaN if not defined

sig2
Standard deviation of Chi2 Dihedral, NaN if not defined

sig3
Standard deviation of Chi3 Dihedral, NaN if not defined

sig4
Standard deviation of Chi4 Dihedral, NaN if not defined

static
FromResidue (res)
Creates a RotamerLibEntry from the given res.
The function tries to automatically identify the RotamerID based
on the residue name. The probability and standard deviations are set to 0.0,
all not required chi angles with their corresponding standard deviations to
NaN.

static
FromResidue (res, id)
Creates a RotamerLibEntry from the given res.
The probability gets set to zero and the standard deviations to 0.
All not required chi angles with their corresponding standard deviations
are NaN.

IsSimilar (other, thresh)
Compares two RotamerLibEntries for their similarity in dihedral angles.
The function goes from chi1 to chi4 and checks one after the other
for similarity. The function doesn’t know the identity of the entries
and can therefore not specifically treat symmetric rotamers
(TYR,PHE,ASP,GLU) or rotamers with ambiguous naming in general.
Parameters: 
 other (
RotamerLibEntry ) – The Entry you want to compare with
 thresh (
float ) – The max difference between two dihedrals to be
considered similar

Returns:  bool Whether the two entries have the same
amount of defined chi angles (not NaN) and whether
they are within the specified threshold.


IsSimilar (other, thresh, id)
Compares two RotamerLibEntries for their similarity in dihedral angles.
The function goes from chi1 to chi4 and checks one after the other
for similarity. Sidechains with ambigous naming that are symmetric
(TYR,PHE,ASP,GLU) get treated specifically. E.g. in case of aspartate,
the chi2 is checked for its actual value, but also for its flipped state.
Parameters: 
 other (
RotamerLibEntry ) – The Entry you want to compare with
 thresh (
float ) – The max difference between two dihedrals to be
considered similar
 id (
RotamerID ) – Identity of the entries to be compared

Returns:  bool Whether the two entries have the same
amount of defined chi angles (not NaN) and whether
they are within the specified threshold.


SimilarDihedral (other, dihedral_idx, thresh)
Compares a specific dihedral angle.
The function doesn’t know the identity of the entries and can therefore
not specifically treat symmetric rotamers
(TYR,PHE,ASP,GLU) or rotamers with ambiguous naming in general.
Parameters: 
 other (
RotamerLibEntry ) – The Entry you want to compare with
 dihedral_idx (
int ) – Index of the dihedral to be checked
(0 for chi1, 3 for chi4)
 thresh (
float ) – The max difference between two dihedrals to be
considered similar

Returns:  bool Whether both dihedrals are defined
(not NaN) and within the specified threshold


SimilarDihedral (other, dihedral_idx, thresh, id)
Compares a specific dihedral angle.
Symmetric sidechains with ambigous naming (TYR,PHE,ASP,GLU)
get treated specifically. E.g. in case of aspartate, the chi2 is checked
for its actual value, but also for its flipped state.
Parameters: 
 other (
RotamerLibEntry ) – The Entry you want to compare with
 dihedral_idx (
int ) – Index of the dihedral to be checked
(0 for chi1, 3 for chi4)
 thresh (
float ) – The max difference between two dihedrals to be
considered similar
 id (
RotamerID ) – Identity of the entries to be compared

Returns:  bool Whether both dihedrals are defined
(not NaN) and within the specified threshold

Rotamer Configurations
In rotamers, one distinguishes between rotameric and nonrotameric sidechain
dihedral angles. The rotameric ones are around SP3SP3 hybridized bonds and
typically have three distinct configurations (trans, gauche, gauche+).
The nonrotameric ones behave differently. ProMod3 offers some functionality
to estimate those configurations.

class
promod3.sidechain. DihedralConfiguration
Enumerates the possible sidechain dihedral configurations
 TRANS  Trans configuration (120 < angle < 120)
 GAUCHE_PLUS  Gauche+ configuration (0 < angle < 120)
 GAUCHE_MINUS  Gauce configuration (120 < angle < 0)
 NON_ROTAMERIC  Dihedral without SP3SP3 bond
 INVALID  Invalid configuration, e.g. chi3 of ALA (doesnt exist...)


promod3.sidechain. GetRotamericConfiguration (angle)
Evaluates the angle according to the ranges specified for
DihedralConfiguration .
Parameters:  angle (float ) – Angle to be evaluated 
Returns:  TRANS, GAUCHE_PLUS or GAUCHE_MINUS.
INVALID if angle is NaN. 

promod3.sidechain. GetDihedralConfiguration (entry, id, dihedral_idx)
Estimates configuration of a sidechain dihedral angle in a specific
RotamerLibEntry with the knowledge of its identity. This allows
to also return NON_ROTAMERIC (e.g. chi2 for ASN).
Parameters: 
 entry (
RotamerLibEntry ) – Sidechain dihedral angle comes from here
 id (
RotamerID ) – Identity of rotamer
 dihedral_idx (
int ) – Specifies angle (0 => chi1, ..., 3 => chi4)

Returns:  Result of GetRotamericConfiguration() if specified
angle is Rotameric, NON_ROTAMERIC if specified angle is
valid and non rotameric, INVALID otherwise.


Contents
Search
Enter search terms or a module, class or function name.
Previous topic
Rotamer Constructor
Next topic
Rotamer Graph
You are here
