Skip to content
Snippets Groups Projects
Commit e5b6ac39 authored by Sebastian Bittrich's avatar Sebastian Bittrich
Browse files

normalization of ASA values

parent 0bd7bdfe
No related branches found
No related tags found
No related merge requests found
import { Vec3 } from 'mol-math/linear-algebra'; import { Vec3 } from 'mol-math/linear-algebra';
import { AtomicHierarchy, AtomicConformation } from '../atomic'; import { AtomicHierarchy, AtomicConformation } from '../atomic';
import { ElementSymbol, VdwRadii } from '../../types'; import { ElementSymbol, VdwRadii, MaxAsa, DefaultMaxAsa } from '../../types';
import { max } from 'mol-data/int/impl/ordered-set';
const defaultNumberOfPoints = 960; const defaultNumberOfPoints = 960;
const defaultProbeSize = 1.4; const defaultProbeSize = 1.4;
...@@ -132,7 +133,18 @@ function calculateASA(ctx: ASAContext) { ...@@ -132,7 +133,18 @@ function calculateASA(ctx: ASAContext) {
residueAsa[residueAtomSegments.index[i]] += value; residueAsa[residueAtomSegments.index[i]] += value;
} }
// TODO (optionally) normalize by maximum value expected for a particular amino acid - needs lookup of max values console.log(residueAsa);
// normalize by maximum value expected for a particular amino acid - needs lookup of max values
for (let i = 0; i < residues.label_comp_id.rowCount; ++i) {
// skip entities not part of a peptide chain
if (derived.residue.moleculeType[i] !== 4)
continue;
const maxAsa = (MaxAsa as any)[residues.label_comp_id.value(i)];
residueAsa[i] /= (maxAsa === undefined ? DefaultMaxAsa : maxAsa);
}
console.log(residueAsa); console.log(residueAsa);
} }
......
...@@ -390,6 +390,31 @@ export namespace SecondaryStructureType { ...@@ -390,6 +390,31 @@ export namespace SecondaryStructureType {
} }
} }
/** Maximum accessible surface area observed for amino acids. Taken from: http://dx.doi.org/10.1371/journal.pone.0080635 */
export const MaxAsa = {
'ALA': 121.0,
'ARG': 265.0,
'ASN': 187.0,
'ASP': 187.0,
'CYS': 148.0,
'GLU': 214.0,
'GLN': 214.0,
'GLY': 97.0,
'HIS': 216.0,
'ILE': 195.0,
'LEU': 191.0,
'LYS': 230.0,
'MET': 203.0,
'PHE': 228.0,
'PRO': 154.0,
'SER': 143.0,
'THR': 163.0,
'TRP': 264.0,
'TYR': 255.0,
'VAL': 165.0
}
export const DefaultMaxAsa = 121.0
export const VdwRadii = { export const VdwRadii = {
'H': 1.1, 'H': 1.1,
'HE': 1.4, 'HE': 1.4,
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment