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

wrong assignment of values resolved

parent 623009b2
No related branches found
No related tags found
No related merge requests found
......@@ -46,8 +46,7 @@ function normalizeAccessibleSurfaceArea(ctx: AccessibleSurfaceAreaContext) {
function computePerResidue(ctx: AccessibleSurfaceAreaContext) {
const { atomRadius, accessibleSurfaceArea, maxLookupRadius, spherePoints, cons } = ctx;
const { probeSize } = ctx.params;
const { elements: atoms } = ctx.unit;
const { residueAtomSegments } = ctx.unit.model.atomicHierarchy;
const { elements: atoms, residueIndex } = ctx.unit;
const { x, y, z } = ctx.unit.model.atomicConformation;
const atomCount = ctx.unit.elements.length;
const { lookup3d } = ctx.unit;
......@@ -57,6 +56,7 @@ function computePerResidue(ctx: AccessibleSurfaceAreaContext) {
const a2Pos = Vec3.zero();
for (let _aI = 0; _aI < atomCount; ++_aI) {
// map the atom index of this unit to the actual 'global' atom index
const aI = atoms[_aI];
const radii1 = atomRadius[aI];
if (radii1 === missingAccessibleSurfaceAreaValue) continue;
......@@ -104,7 +104,7 @@ function computePerResidue(ctx: AccessibleSurfaceAreaContext) {
}
const value = cons * accessiblePointCount * r * r;
accessibleSurfaceArea[residueAtomSegments.index[aI]] += value;
accessibleSurfaceArea[residueIndex[aI]] += value;
}
}
......@@ -136,11 +136,11 @@ function assignRadiusForHeavyAtoms(ctx: AccessibleSurfaceAreaContext) {
const element = type_symbol.value(aI);
const resn = label_comp_id.value(raI)!;
ctx.atomRadius[ctx.atomRadius.length] = determineRadius(atomId, element, resn);
ctx.atomRadius[aI] = determineRadius(atomId, element, resn);
// while having atom->parent mapping at hand, initialize residue-level of information
ctx.accessibleSurfaceArea[ctx.accessibleSurfaceArea.length] = 0.0;
ctx.relativeAccessibleSurfaceArea[ctx.relativeAccessibleSurfaceArea.length] = 0.0;
ctx.accessibleSurfaceArea[raI] = 0.0;
ctx.relativeAccessibleSurfaceArea[raI] = 0.0;
}
}
......@@ -202,6 +202,7 @@ function initialize(unit: Unit.Atomic, params: AccessibleSurfaceAreaComputationP
}
function computeAccessibleSurfaceArea(unit: Unit.Atomic, params?: Partial<AccessibleSurfaceAreaComputationParameters>): AccessibleSurfaceArea {
console.log(`computing accessible surface area for unit #${ unit.id + 1 }`);
return _computeAccessibleSurfaceArea(unit, {
numberOfSpherePoints: (params && params.numberOfSpherePoints) || 960,
probeSize: (params && params.probeSize) || 1.4
......
......@@ -13,7 +13,7 @@ import { ColorListOptions, ColorListName, ColorScale } from 'mol-util/color/scal
import { StructureElement, Unit } from 'mol-model/structure';
import { missingAccessibleSurfaceAreaValue } from 'mol-model/structure/structure/unit/accessible-surface-area/compute';
const DefaultColor = Color(0xCCCCCC)
const DefaultColor = Color(0xFFFFFF)
const Description = 'Assigns a color based on the relative accessible surface area of a residue.'
export const AccessibleSurfaceAreaColorThemeParams = {
......
......@@ -61,12 +61,9 @@ function getCartoonRepr() {
}
async function init() {
const cif = await downloadFromPdb('1acj')
const cif = await downloadFromPdb('1brr')
const models = await getModels(cif)
// console.time('computeModelASA')
// const asa = computeModelASA(models[0].atomicHierarchy, models[0].atomicConformation)
// console.timeEnd('computeModelASA');
// (models[0].properties as any).asa = asa
const structure = await getStructure(models[0])
const cartoonRepr = getCartoonRepr()
......@@ -76,6 +73,19 @@ async function init() {
})
await cartoonRepr.createOrUpdate({ ...CartoonRepresentationProvider.defaultValues, quality: 'auto' }, structure).run()
// console.time('computeModelDSSP')
// const secondaryStructure = computeModelDSSP(models[0].atomicHierarchy, models[0].atomicConformation)
// console.timeEnd('computeModelDSSP');
// (models[0].properties as any).secondaryStructure = secondaryStructure
// const structure = await getStructure(models[0])
// const cartoonRepr = getCartoonRepr()
// cartoonRepr.setTheme({
// color: reprCtx.colorThemeRegistry.create('secondary-structure', { structure }),
// size: reprCtx.sizeThemeRegistry.create('uniform', { structure })
// })
// await cartoonRepr.createOrUpdate({ ...CartoonRepresentationProvider.defaultValues, quality: 'auto' }, structure).run()
canvas3d.add(cartoonRepr)
canvas3d.resetCamera()
}
......
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