Skip to content
Snippets Groups Projects
Commit 60b92471 authored by JonStargaryen's avatar JonStargaryen
Browse files

cleanup

parent 79e283cf
No related branches found
No related tags found
No related merge requests found
...@@ -73,7 +73,6 @@ function initialize(structure: Structure, props: ANVILProps): ANVILContext { ...@@ -73,7 +73,6 @@ function initialize(structure: Structure, props: ANVILProps): ANVILContext {
const vec = Vec3(); const vec = Vec3();
let m = 0; let m = 0;
let e = 0, b = 0;
for (let i = 0, il = structure.units.length; i < il; ++i) { for (let i = 0, il = structure.units.length; i < il; ++i) {
const unit = structure.units[i]; const unit = structure.units[i];
const { elements } = unit; const { elements } = unit;
...@@ -105,16 +104,9 @@ function initialize(structure: Structure, props: ANVILProps): ANVILContext { ...@@ -105,16 +104,9 @@ function initialize(structure: Structure, props: ANVILProps): ANVILContext {
// keep track of offsets and exposed state to reuse // keep track of offsets and exposed state to reuse
offsets[m] = structure.serialMapping.getSerialIndex(l.unit, l.element); offsets[m] = structure.serialMapping.getSerialIndex(l.unit, l.element);
exposed[m] = AccessibleSurfaceArea.getValue(l, asa) / MaxAsa[label_comp_id(l)] > asaCutoff; exposed[m] = AccessibleSurfaceArea.getValue(l, asa) / MaxAsa[label_comp_id(l)] > asaCutoff;
if (exposed[m]) {
e++;
} else {
b++;
}
m++; m++;
} }
} }
console.log('CAs = ' + m);
console.log('exposed ' + e + ' - buried ' + b);
// omit potentially empty tail // omit potentially empty tail
offsets = offsets.slice(0, m); offsets = offsets.slice(0, m);
...@@ -145,20 +137,16 @@ function initialize(structure: Structure, props: ANVILProps): ANVILContext { ...@@ -145,20 +137,16 @@ function initialize(structure: Structure, props: ANVILProps): ANVILContext {
export async function calculate(runtime: RuntimeContext, structure: Structure, params: ANVILProps): Promise<MembraneOrientation> { export async function calculate(runtime: RuntimeContext, structure: Structure, params: ANVILProps): Promise<MembraneOrientation> {
const ctx = initialize(structure, params); const ctx = initialize(structure, params);
const initialHphobHphil = HphobHphil.filtered(ctx); const initialHphobHphil = HphobHphil.filtered(ctx);
console.log(`init: ${initialHphobHphil.hphob} - ${initialHphobHphil.hphil}`);
console.log('sync: ' + runtime.isSynchronous);
if (runtime.shouldUpdate) { if (runtime.shouldUpdate) {
await runtime.update({ message: 'Placing initial membrane...' }); await runtime.update({ message: 'Placing initial membrane...' });
} }
const initialMembrane = findMembrane(ctx, generateSpherePoints(ctx, ctx.numberOfSpherePoints), initialHphobHphil)!; const initialMembrane = findMembrane(ctx, generateSpherePoints(ctx, ctx.numberOfSpherePoints), initialHphobHphil)!;
console.log(`initial: ${initialMembrane.qmax}`);
if (runtime.shouldUpdate) { if (runtime.shouldUpdate) {
await runtime.update({ message: 'Refining membrane placement...' }); await runtime.update({ message: 'Refining membrane placement...' });
} }
const refinedMembrane = findMembrane(ctx, findProximateAxes(ctx, initialMembrane), initialHphobHphil)!; const refinedMembrane = findMembrane(ctx, findProximateAxes(ctx, initialMembrane), initialHphobHphil)!;
console.log(`refined: ${refinedMembrane.qmax}`);
let membrane = initialMembrane.qmax! > refinedMembrane.qmax! ? initialMembrane : refinedMembrane; let membrane = initialMembrane.qmax! > refinedMembrane.qmax! ? initialMembrane : refinedMembrane;
if (ctx.adjust) { if (ctx.adjust) {
...@@ -166,30 +154,29 @@ export async function calculate(runtime: RuntimeContext, structure: Structure, p ...@@ -166,30 +154,29 @@ export async function calculate(runtime: RuntimeContext, structure: Structure, p
await runtime.update({ message: 'Adjusting membrane thickness...' }); await runtime.update({ message: 'Adjusting membrane thickness...' });
} }
membrane = adjustThickness(ctx, membrane, initialHphobHphil); membrane = adjustThickness(ctx, membrane, initialHphobHphil);
console.log('Membrane width: ' + Vec3.distance(membrane.planePoint1, membrane.planePoint2));
} }
const normalVector = Vec3.zero(); const normalVector = Vec3.zero();
const center = Vec3.zero(); const center = Vec3.zero();
const jitter = [0.001, 0.001, 0.001] as Vec3;
Vec3.sub(normalVector, membrane.planePoint1, membrane.planePoint2); Vec3.sub(normalVector, membrane.planePoint1, membrane.planePoint2);
Vec3.normalize(normalVector, normalVector); Vec3.normalize(normalVector, normalVector);
// prevent degenerate matrices (e.g., 5cbg - assembly 1 which is oriented along the y-axis) // prevent degenerate matrices (e.g., 5cbg - assembly 1 which is oriented along the y-axis)
if (Math.abs(normalVector[0]) === 1 || Math.abs(normalVector[1]) === 1 || Math.abs(normalVector[2]) === 1) { if (Math.abs(normalVector[0]) === 1 || Math.abs(normalVector[1]) === 1 || Math.abs(normalVector[2]) === 1) {
normalVector[0] += 0.001; Vec3.add(normalVector, normalVector, jitter);
normalVector[1] += 0.001;
normalVector[2] += 0.001;
} }
Vec3.add(center, membrane.planePoint1, membrane.planePoint2); Vec3.add(center, membrane.planePoint1, membrane.planePoint2);
Vec3.scale(center, center, 0.5); Vec3.scale(center, center, 0.5);
Vec3.add(center, center, jitter);
const extent = adjustExtent(ctx, membrane, center); const extent = adjustExtent(ctx, membrane, center);
return { return {
planePoint1: membrane.planePoint1, planePoint1: membrane.planePoint1,
planePoint2: membrane.planePoint2, planePoint2: membrane.planePoint2,
normalVector, normalVector,
centroid: ctx.centroid, centroid: center,
radius: extent radius: extent
}; };
} }
...@@ -322,7 +309,6 @@ function adjustThickness(ctx: ANVILContext, membrane: MembraneCandidate, initial ...@@ -322,7 +309,6 @@ function adjustThickness(ctx: ANVILContext, membrane: MembraneCandidate, initial
maxThickness -= step; maxThickness -= step;
} }
console.log('Number of TM segments: ' + maxNos);
return optimalThickness; return optimalThickness;
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment