ProteinPropertiesCalculator
in package
implements
ProteinPropertiesInterface
The net charge is the sum of the partial charges of the groups that carry one - the N-terminus, Lys, Arg and His (positive), the C-terminus, Asp, Glu, Cys and Tyr (negative) - each given by the Henderson-Hasselbalch equation, 1 / (1 + 10^(pH - pK)) for a base and 1 / (1 + 10^(pK - pH)) for an acid. The pK values are the caller's (bioapi serves three sets : EMBOSS, DTASelect, Solomon) : a protein has no isoelectric point of its own, only one for a given set. The isoelectric point is the pH where that charge is zero, found by bisection - the charge falls as the pH rises, always, so it crosses zero once. The terminal groups are the ones of the set, not residue-specific ones.
The GRAVY is the mean of the Kyte and Doolittle (1982) hydropathy of the residues ; the values are Biopython's (Bio.SeqUtils.ProtParamData.kd). A residue without a value (B, Z, J, X, U, O, the stop) is left out of the mean rather than counted as zero, which would pull it towards neutral. Class ProteinPropertiesCalculator
Tags
Table of Contents
Interfaces
- ProteinPropertiesInterface
- Interface ProteinPropertiesInterface
Constants
- KYTE_DOOLITTLE : mixed = ["A" => 1.8, "R" => -4.5, "N" => -3.5, "D" => -...
- Kyte and Doolittle, J Mol Biol 157:105-132 (1982)
- NEGATIVE_GROUPS : mixed = ["D", "E", "C", "Y"]
- PH_MAX : mixed = 14.0
- PH_MIN : mixed = 0.0
- pH bounds of the search : every charge is positive at 0 (the N-terminus alone carries almost one) and, for a real protein, negative at 14. A protein made of some thirty Arg and no acidic residue is still slightly positive there (each Arg keeps about 0.03 at pK 12.5) : its isoelectric point is then the upper bound, 14, and not a pH the search could not reach.
- POSITIVE_GROUPS : mixed = ["K", "R", "H"]
Methods
- gravy() : float
- isoelectricPoint() : float
- netCharge() : float
- assertNotEmpty() : void
- chargedGroups() : array<string|int, int>
- chargeOf() : float
- normalizePk() : array<string|int, float>
Constants
KYTE_DOOLITTLE
Kyte and Doolittle, J Mol Biol 157:105-132 (1982)
public
mixed
KYTE_DOOLITTLE
= ["A" => 1.8, "R" => -4.5, "N" => -3.5, "D" => -3.5, "C" => 2.5, "Q" => -3.5, "E" => -3.5, "G" => -0.4, "H" => -3.2, "I" => 4.5, "L" => 3.8, "K" => -3.9, "M" => 1.9, "F" => 2.8, "P" => -1.6, "S" => -0.8, "T" => -0.7, "W" => -0.9, "Y" => -1.3, "V" => 4.2]
NEGATIVE_GROUPS
private
mixed
NEGATIVE_GROUPS
= ["D", "E", "C", "Y"]
PH_MAX
private
mixed
PH_MAX
= 14.0
PH_MIN
pH bounds of the search : every charge is positive at 0 (the N-terminus alone carries almost one) and, for a real protein, negative at 14. A protein made of some thirty Arg and no acidic residue is still slightly positive there (each Arg keeps about 0.03 at pK 12.5) : its isoelectric point is then the upper bound, 14, and not a pH the search could not reach.
private
mixed
PH_MIN
= 0.0
POSITIVE_GROUPS
private
mixed
POSITIVE_GROUPS
= ["K", "R", "H"]
Methods
gravy()
public
gravy(AminoAcidSequence $oProtein) : float
Parameters
- $oProtein : AminoAcidSequence
Tags
Return values
floatisoelectricPoint()
public
isoelectricPoint(AminoAcidSequence $oProtein, array<string|int, mixed> $aPk) : float
Parameters
- $oProtein : AminoAcidSequence
- $aPk : array<string|int, mixed>
Tags
Return values
floatnetCharge()
public
netCharge(AminoAcidSequence $oProtein, float $fPh, array<string|int, mixed> $aPk) : float
Parameters
- $oProtein : AminoAcidSequence
- $fPh : float
- $aPk : array<string|int, mixed>
Tags
Return values
floatassertNotEmpty()
private
assertNotEmpty(AminoAcidSequence $oProtein) : void
Parameters
- $oProtein : AminoAcidSequence
Tags
chargedGroups()
private
chargedGroups(AminoAcidSequence $oProtein) : array<string|int, int>
Parameters
- $oProtein : AminoAcidSequence
Return values
array<string|int, int> —Residue => count, for the residues that carry a charge
chargeOf()
private
chargeOf(array<string|int, mixed> $aGroups, float $fPh, array<string|int, mixed> $aPk) : float
Parameters
- $aGroups : array<string|int, mixed>
-
Group => how many of them the protein has
- $fPh : float
- $aPk : array<string|int, mixed>
-
Normalized
Return values
floatnormalizePk()
private
normalizePk(array<string|int, mixed> $aPk) : array<string|int, float>
Parameters
- $aPk : array<string|int, mixed>
Tags
Return values
array<string|int, float> —The pK set with upper-case keys, every group checked