| |
- builtins.object
-
- SasaCalc
- SasaMethod
-
- LeGrandSasa
- SasaMethodEnum
- SasaRadii
class LeGrandSasa(SasaMethod) |
|
LeGrand SASA approximation method
Used by SasaCalc but can be used by itself.
LeGrand S, Merz KM. Rapid approximation to molecular surface area via the use of Boolean logic and look-up tables.
J Comput Chem 1993;14:349-352.
Fortran Implementation: Jerry Tsai
C++ Translation: Jeff Gray
Cleanup/Bugfixes/OOP: Jared Adolf-Bryfogle |
|
- Method resolution order:
- LeGrandSasa
- SasaMethod
- builtins.object
Methods defined here:
- __init__(...) from builtins.PyCapsule
- __init__(*args, **kwargs)
Overloaded function.
1. __init__(self : handle, probe_radius : float, radii_set : rosetta.core.scoring.sasa.SasaRadii) -> NoneType
2. __init__(handle, rosetta.core.scoring.sasa.LeGrandSasa) -> NoneType
- __new__(*args, **kwargs) from builtins.type
- Create and return a new object. See help(type) for accurate signature.
- assign(...) from builtins.PyCapsule
- assign(self : rosetta.core.scoring.sasa.LeGrandSasa, : rosetta.core.scoring.sasa.LeGrandSasa) -> rosetta.core.scoring.sasa.LeGrandSasa
- calculate(...) from builtins.PyCapsule
- calculate(self : rosetta.core.scoring.sasa.LeGrandSasa, pose : rosetta.core.pose.Pose, atom_subset : rosetta.core.id.AtomID_Map_bool_t, atom_sasa : rosetta.core.id.AtomID_Map_double_t, rsd_sasa : rosetta.utility.vector1_double) -> float
Calculate Sasa. Atoms not calculated have -1 sasa. This is carried over for compatability purposes.
- get_2way_orientation(...) from builtins.PyCapsule
- get_2way_orientation(self : rosetta.core.scoring.sasa.LeGrandSasa, a_xyz : rosetta.numeric.xyzVector_double_t, b_xyz : rosetta.numeric.xyzVector_double_t, phi_a2b_index : int, theta_a2b_index : int, phi_b2a_index : int, theta_b2a_index : int, distance_ijxyz : float) -> NoneType
Gets the orientation of a to b (i to j, see below). Does this by calculating two angles, aphi and theta. (j)
This function is the same as the function above but get the orientation of a to b simultaneously with the
orientation of b to a. The same result could be achieved by making two separate get_2way_orientation() calls
but this method does it more efficiently by avoiding an atan2 and acos call. Instead, once you compute the
phi and theta for a on b, you can add/subtrate pi factors to get the phi and theta for b on a.
Still not sure how this method returns the correct values, though.
(ronj)
- get_angles(...) from builtins.PyCapsule
- get_angles(rosetta.core.scoring.sasa.LeGrandSasa) -> ObjexxFCL::FArray2D<int>
Returns const access to the angles FArray, which contains the information in the SASA database file sampling/SASA-angles.dat.
Adding this in so that the values in the SASA database files can be used in SASA-based scores. (ronj)
- get_masks(...) from builtins.PyCapsule
- get_masks(rosetta.core.scoring.sasa.LeGrandSasa) -> ObjexxFCL::FArray2D<ObjexxFCL::ubyte>
Returns const access to the masks FArray, which contains the information in the SASA database file sampling/SASA-masks.dat.
Adding this in so that the values in the SASA database files can be used in SASA-based scores. (ronj)
- get_name(...) from builtins.PyCapsule
- get_name(rosetta.core.scoring.sasa.LeGrandSasa) -> str
- get_orientation(...) from builtins.PyCapsule
- get_orientation(self : rosetta.core.scoring.sasa.LeGrandSasa, a_xyz : rosetta.numeric.xyzVector_double_t, b_xyz : rosetta.numeric.xyzVector_double_t, phi_index : int, theta_index : int, distance_ijxyz : float) -> NoneType
Note: I think phi and theta have been reversed in the function below. The code below uses the following:
phi = arccos( z )
theta = arctan( y / x )
After a couple of weeks trying to write tests for this function, I have been unsuccessful in figuring out why
it's doing what it does. Despite using the wrong equations, it seems to work. Comparing the total residue
SASA values calculated by calc_per_atom_sasa() below results in a correlation of 0.98 against what the program
NACCESS finds for the same residues. This test was done on a small 110aa protein. I also looked at the per-atom
total SASA and the correlation for all atoms (mini v. NACCESS) was approximately 0.94. I'm using exactly the same
van der Waals radii for both programs so I feel like the correlations should be 1.0. Explanations for the
differences can be 1) this method is doing something wrong in calculating the closest surface point, 2) this
method is correct but the masks that are in the database are not aligned to the surface points correctly, 3) the
differences are solely due to the different way that the two program calculate surface area.
(ronj)
- get_overlap(...) from builtins.PyCapsule
- get_overlap(self : rosetta.core.scoring.sasa.LeGrandSasa, radius_a : float, radius_b : float, distance_ijxyz : float, degree_of_overlap : int) -> NoneType
getting overlap from a to b (or i to j, as the atoms are referred to in calc_per_atom_sasa below).
this returns the degree of overlap between two atoms adapted from erics code in area.c GetD2 and returns value
from 1 to 100. This calculation is based on the law of cosines.
See LeGrand and Merz, Journal of Computational Chemistry 14(3):349-52 (1993).
Note that equation (4) is wrong, the denominator should be 2*ri*riq instead of 2*ri*rq (j)
The function gets passed in the sasa radius of atom i (plus the probe radius), the sasa radius of atom j (plus
the probe radius), the distance between the atom centers, and a reference to the degree of overlap (represented
as an int). The degree of overlap that's returned can be thought of as how much of atom a is covered by atom b.
A value of 100 means that atom a is completely covered up by atom b. A value of 1 means that not much of the surface
of 'a' is covered up by 'b'.
The law of cosines relates the cosine of one angle of a triangle to the lengths of its sides. More specifically,
c^2 = a^2 + b^2 - 2*a*b*cos theta, where theta is the angle between sides a and b. For the function we want to
compute the angle of the cone of intersection between spheres 'a' and 'b'. Let the radius of atom a be ri, and the
radius of atom b be rq, and the distance between atom centers be riq. Let the angle between ri and riq be theta_iq.
The cosine of theta_iq will be equivalent to ( ri^2 + riq^2 - rq^2 ) / 2 * ri * riq
Methods inherited from SasaMethod:
- set_include_probe_radius_in_calc(...) from builtins.PyCapsule
- set_include_probe_radius_in_calc(self : rosetta.core.scoring.sasa.SasaMethod, include_probe_radius : bool) -> NoneType
Include the probe radius in calc. Typical for SASA.
- set_probe_radius(...) from builtins.PyCapsule
- set_probe_radius(self : rosetta.core.scoring.sasa.SasaMethod, probe_radius : float) -> NoneType
Set the probe radius. Typical value is that of water at 1.4 A
- set_radii_set(...) from builtins.PyCapsule
- set_radii_set(self : rosetta.core.scoring.sasa.SasaMethod, radii_set : rosetta.core.scoring.sasa.SasaRadii) -> NoneType
Set the radii type.
- set_use_big_polar_hydrogen(...) from builtins.PyCapsule
- set_use_big_polar_hydrogen(self : rosetta.core.scoring.sasa.SasaMethod, big_polar_h : bool) -> NoneType
Legacy option to increase polar hydrogen radii to 1.08A. Supported for now.
|
class SasaCalc(builtins.object) |
|
Main interface to sasa calculations outside of pose metrics. |
|
Methods defined here:
- __init__(...) from builtins.PyCapsule
- __init__(*args, **kwargs)
Overloaded function.
1. __init__(rosetta.core.scoring.sasa.SasaCalc) -> NoneType
2. __init__(self : rosetta.core.scoring.sasa.SasaCalc, method : rosetta.core.scoring.sasa.SasaMethodEnum) -> NoneType
- __new__(*args, **kwargs) from builtins.type
- Create and return a new object. See help(type) for accurate signature.
- assign(...) from builtins.PyCapsule
- assign(self : rosetta.core.scoring.sasa.SasaCalc, : rosetta.core.scoring.sasa.SasaCalc) -> rosetta.core.scoring.sasa.SasaCalc
- calculate(...) from builtins.PyCapsule
- calculate(*args, **kwargs)
Overloaded function.
1. calculate(self : rosetta.core.scoring.sasa.SasaCalc, pose : rosetta.core.pose.Pose) -> float
Calculate Sasa. Atoms not calculated have -1 sasa in AtomID_Map. This is carried over for compatability purposes.
2. calculate(self : rosetta.core.scoring.sasa.SasaCalc, pose : rosetta.core.pose.Pose, atom_sasa : rosetta.core.id.AtomID_Map_double_t) -> float
// Legacy-style interfaces //////////
3. calculate(self : rosetta.core.scoring.sasa.SasaCalc, pose : rosetta.core.pose.Pose, rsd_sasa : rosetta.utility.vector1_double, rsd_hsasa : rosetta.utility.vector1_double) -> float
4. calculate(self : rosetta.core.scoring.sasa.SasaCalc, pose : rosetta.core.pose.Pose, atom_sasa : rosetta.core.id.AtomID_Map_double_t, rsd_sasa : rosetta.utility.vector1_double, rsd_hsasa : rosetta.utility.vector1_double) -> float
5. calculate(self : rosetta.core.scoring.sasa.SasaCalc, pose : rosetta.core.pose.Pose, atom_sasa : rosetta.core.id.AtomID_Map_double_t, rsd_sasa : rosetta.utility.vector1_double, rsd_hsasa : rosetta.utility.vector1_double, rsd_rel_hsasa : rosetta.utility.vector1_double) -> float
- fill_data(...) from builtins.PyCapsule
- fill_data(self : rosetta.core.scoring.sasa.SasaCalc, total_hsasa : float, total_rel_hsasa : float, atom_sasa : rosetta.core.id.AtomID_Map_double_t, rsd_sasa : rosetta.utility.vector1_double, rsd_hsasa : rosetta.utility.vector1_double, rel_hsasa : rosetta.utility.vector1_double) -> NoneType
Convenience function to fill most commonly used data.
- get_atom_sasa(...) from builtins.PyCapsule
- get_atom_sasa(rosetta.core.scoring.sasa.SasaCalc) -> rosetta.core.id.AtomID_Map_double_t
////Per Atom
- get_rel_hphobic_sasa_by_charge(...) from builtins.PyCapsule
- get_rel_hphobic_sasa_by_charge(rosetta.core.scoring.sasa.SasaCalc) -> rosetta.utility.vector1_double
- get_residue_hsasa(...) from builtins.PyCapsule
- get_residue_hsasa(rosetta.core.scoring.sasa.SasaCalc) -> rosetta.utility.vector1_double
- get_residue_hsasa_bb(...) from builtins.PyCapsule
- get_residue_hsasa_bb(rosetta.core.scoring.sasa.SasaCalc) -> rosetta.utility.vector1_double
- get_residue_hsasa_sc(...) from builtins.PyCapsule
- get_residue_hsasa_sc(rosetta.core.scoring.sasa.SasaCalc) -> rosetta.utility.vector1_double
- get_residue_sasa(...) from builtins.PyCapsule
- get_residue_sasa(rosetta.core.scoring.sasa.SasaCalc) -> rosetta.utility.vector1_double
/////Per Residue
- get_residue_sasa_bb(...) from builtins.PyCapsule
- get_residue_sasa_bb(rosetta.core.scoring.sasa.SasaCalc) -> rosetta.utility.vector1_double
- get_residue_sasa_sc(...) from builtins.PyCapsule
- get_residue_sasa_sc(rosetta.core.scoring.sasa.SasaCalc) -> rosetta.utility.vector1_double
- get_total_hsasa(...) from builtins.PyCapsule
- get_total_hsasa(rosetta.core.scoring.sasa.SasaCalc) -> float
- get_total_hsasa_bb(...) from builtins.PyCapsule
- get_total_hsasa_bb(rosetta.core.scoring.sasa.SasaCalc) -> float
- get_total_hsasa_sc(...) from builtins.PyCapsule
- get_total_hsasa_sc(rosetta.core.scoring.sasa.SasaCalc) -> float
- get_total_rel_hsasa(...) from builtins.PyCapsule
- get_total_rel_hsasa(rosetta.core.scoring.sasa.SasaCalc) -> float
- get_total_sasa(...) from builtins.PyCapsule
- get_total_sasa(rosetta.core.scoring.sasa.SasaCalc) -> float
//////Totals
- get_total_sasa_bb(...) from builtins.PyCapsule
- get_total_sasa_bb(rosetta.core.scoring.sasa.SasaCalc) -> float
- get_total_sasa_sc(...) from builtins.PyCapsule
- get_total_sasa_sc(rosetta.core.scoring.sasa.SasaCalc) -> float
- set_calculation_method(...) from builtins.PyCapsule
- set_calculation_method(self : rosetta.core.scoring.sasa.SasaCalc, method : rosetta.core.scoring.sasa.SasaMethodEnum) -> NoneType
- set_defaults(...) from builtins.PyCapsule
- set_defaults(rosetta.core.scoring.sasa.SasaCalc) -> NoneType
//////// Common Options ///////////
- set_exclude_polar_atoms_by_charge(...) from builtins.PyCapsule
- set_exclude_polar_atoms_by_charge(self : rosetta.core.scoring.sasa.SasaCalc, exclude_polar_all : bool) -> NoneType
Polar carbons and other atoms should not be included in hydrophobic hSASA - though historically they were.
.4 is a relative number. This makes sure that carbonyl and carboxyl carbons are marked as polar, while others (protein-based) are non-polar
- set_explicit_hydrogen_included_radii_set(...) from builtins.PyCapsule
- set_explicit_hydrogen_included_radii_set(self : rosetta.core.scoring.sasa.SasaCalc, radii_set : rosetta.core.scoring.sasa.SasaRadii) -> NoneType
Radii set to use when including hydrogens (LJ/reduce)
- set_implicit_hydrogen_included_radii_set(...) from builtins.PyCapsule
- set_implicit_hydrogen_included_radii_set(self : rosetta.core.scoring.sasa.SasaCalc, radii_set : rosetta.core.scoring.sasa.SasaRadii) -> NoneType
Radii set to use when not including hydrogens (naccess/chothia, legacy)
Do not use legacy unless you know what you are doing and why.
- set_include_carbon_sulfer_only_in_hydrophobic_calc(...) from builtins.PyCapsule
- set_include_carbon_sulfer_only_in_hydrophobic_calc(self : rosetta.core.scoring.sasa.SasaCalc, include_c_s_only : bool) -> NoneType
Typically, only carbon or sulfers are included in the calculation. If you are using ligands - this may not be good enough.
- set_include_hydrogens_explicitly(...) from builtins.PyCapsule
- set_include_hydrogens_explicitly(self : rosetta.core.scoring.sasa.SasaCalc, include_hydrogens : bool) -> NoneType
Include hydrogens explicitly
- set_include_probe_radius_in_atom_radii(...) from builtins.PyCapsule
- set_include_probe_radius_in_atom_radii(self : rosetta.core.scoring.sasa.SasaCalc, include_probe_radius : bool) -> NoneType
This is typically done. Disabling it is more akin to obtaining the Surface Area than the SASA
- set_polar_charge_cutoff(...) from builtins.PyCapsule
- set_polar_charge_cutoff(self : rosetta.core.scoring.sasa.SasaCalc, cutoff : float) -> NoneType
- set_probe_radius(...) from builtins.PyCapsule
- set_probe_radius(self : rosetta.core.scoring.sasa.SasaCalc, probe_radius : float) -> NoneType
Probe radius of 1.4 (water) is typically used
- set_use_big_polar_hydrogen(...) from builtins.PyCapsule
- set_use_big_polar_hydrogen(self : rosetta.core.scoring.sasa.SasaCalc, big_polar_h : bool) -> NoneType
Not for general use. Used to calculate unsatisfied buried polars with legacy radii (which implicitly had included hydrogens.)
|
class SasaMethod(builtins.object) |
|
Abstract base class for SasaMethods. Feel free to edit as needed. |
|
Methods defined here:
- __init__(...) from builtins.PyCapsule
- __init__(*args, **kwargs)
Overloaded function.
1. __init__(self : rosetta.core.scoring.sasa.SasaMethod, probe_radius : float, radii_set : rosetta.core.scoring.sasa.SasaRadii) -> NoneType
2. __init__(rosetta.core.scoring.sasa.SasaMethod, rosetta.core.scoring.sasa.SasaMethod) -> NoneType
- __new__(*args, **kwargs) from builtins.type
- Create and return a new object. See help(type) for accurate signature.
- assign(...) from builtins.PyCapsule
- assign(self : rosetta.core.scoring.sasa.SasaMethod, : rosetta.core.scoring.sasa.SasaMethod) -> rosetta.core.scoring.sasa.SasaMethod
- calculate(...) from builtins.PyCapsule
- calculate(self : rosetta.core.scoring.sasa.SasaMethod, pose : rosetta.core.pose.Pose, atom_subset : rosetta.core.id.AtomID_Map_bool_t, atom_sasa : rosetta.core.id.AtomID_Map_double_t, rsd_sasa : rosetta.utility.vector1_double) -> float
Calculate Sasa. Atoms not calculated have -1 sasa in AtomID_Map. This is carried over for compatability purposes.
- get_name(...) from builtins.PyCapsule
- get_name(rosetta.core.scoring.sasa.SasaMethod) -> str
- set_include_probe_radius_in_calc(...) from builtins.PyCapsule
- set_include_probe_radius_in_calc(self : rosetta.core.scoring.sasa.SasaMethod, include_probe_radius : bool) -> NoneType
Include the probe radius in calc. Typical for SASA.
- set_probe_radius(...) from builtins.PyCapsule
- set_probe_radius(self : rosetta.core.scoring.sasa.SasaMethod, probe_radius : float) -> NoneType
Set the probe radius. Typical value is that of water at 1.4 A
- set_radii_set(...) from builtins.PyCapsule
- set_radii_set(self : rosetta.core.scoring.sasa.SasaMethod, radii_set : rosetta.core.scoring.sasa.SasaRadii) -> NoneType
Set the radii type.
- set_use_big_polar_hydrogen(...) from builtins.PyCapsule
- set_use_big_polar_hydrogen(self : rosetta.core.scoring.sasa.SasaMethod, big_polar_h : bool) -> NoneType
Legacy option to increase polar hydrogen radii to 1.08A. Supported for now.
|
class SasaRadii(builtins.object) |
|
Type of Radii to use.
LJ: Refers to Leonard Jones radii - Rosetta uses radii at the minimum of the potential (sigma2).
Legacy: Refers to radii optimized for a no longer in use term, but some protocols have been optimized to use it.
naccess: Refers to radii used in the program naccess. Originally derived from Chothia. Do not use for all-atom SASA as hydrogens are implicitly included.
'The Nature of the Accessible and Buried Surfaces in Proteins' J. Mol. Biol. (1976) 105, 1-14
reduce: Radii used by the program reduce. Hydrogens are explicitly included in the radii. |
|
Methods defined here:
- __eq__(...) from builtins.PyCapsule
- __eq__(rosetta.core.scoring.sasa.SasaRadii, rosetta.core.scoring.sasa.SasaRadii) -> bool
- __hash__(...) from builtins.PyCapsule
- __hash__(rosetta.core.scoring.sasa.SasaRadii) -> int
- __init__(...) from builtins.PyCapsule
- __init__(*args, **kwargs)
Overloaded function.
1. __init__(rosetta.core.scoring.sasa.SasaRadii, int) -> NoneType
2. __init__(rosetta.core.scoring.sasa.SasaRadii, int) -> NoneType
- __int__(...) from builtins.PyCapsule
- __int__(rosetta.core.scoring.sasa.SasaRadii) -> int
- __ne__(...) from builtins.PyCapsule
- __ne__(rosetta.core.scoring.sasa.SasaRadii, rosetta.core.scoring.sasa.SasaRadii) -> bool
- __new__(*args, **kwargs) from builtins.type
- Create and return a new object. See help(type) for accurate signature.
- __repr__(...) from builtins.PyCapsule
- __repr__(rosetta.core.scoring.sasa.SasaRadii) -> str
Data and other attributes defined here:
- LJ = SasaRadii.LJ
- SasaRadii_total = SasaRadii.SasaRadii_total
- chothia = SasaRadii.chothia
- legacy = SasaRadii.legacy
- naccess = SasaRadii.chothia
- reduce = SasaRadii.SasaRadii_total
| |