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

respect for BioJava

parent 94155295
No related branches found
No related tags found
No related merge requests found
......@@ -33,6 +33,10 @@ interface AccessibleSurfaceAreaContext {
buried?: Uint8Array
}
/**
* Adapts the BioJava implementation by Jose Duarte. That implementation is based on the publication by Shrake, A., and
* J. A. Rupley. "Environment and Exposure to Solvent of Protein Atoms. Lysozyme and Insulin." JMB (1973).
*/
function computeAccessibleSurfaceArea(unit: Unit.Atomic, params?: PD.Values<AccessibleSurfaceAreaComputationParams>): AccessibleSurfaceArea {
console.log(`computing accessible surface area for unit #${ unit.id + 1 }`);
......@@ -95,7 +99,7 @@ function computePerResidue(ctx: AccessibleSurfaceAreaContext) { // runs at rough
// refine list by actual criterion
const cutoff = probeSize + probeSize + radii1;
const filteredIndicies = []; // TODO might be better to use IntArray here and reuse it - how to find safe upper limit of possible neighborhood count
const filteredIndicies = []; // TODO might be better to use IntArray here and reuse it - how to find safe upper limit of possible neighborhood count - BioJava mentions 60 as relatively safe upper bound
for (let ni = 0; ni < count; ni++) {
const _bI = indices[ni];
const bI = atoms[_bI];
......@@ -180,7 +184,7 @@ function assignRadiusForHeavyAtoms(ctx: AccessibleSurfaceAreaContext) {
/**
* Gets the van der Waals radius of the given atom following the values defined by Chothia (1976)
* J.Mol.Biol.105,1-14. NOTE: the vdw values defined by the paper assume no Hydrogens and thus "inflates" slightly
* the heavy atoms to account for Hydrogens. Thus this method cannot be used in a structure that contains Hydrogens!
* the heavy atoms to account for Hydrogens.
*/
function determineRadius(atomId: string, element: ElementSymbol, compId: string): number {
switch (element) {
......
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