diff --git a/src/apps/structure-info/model.ts b/src/apps/structure-info/model.ts index 77e0263c238a9ae58d11d1a14fa8016ecb1b69a2..da5d663a848d5a312df3ba1f3f2b253331eb2dc8 100644 --- a/src/apps/structure-info/model.ts +++ b/src/apps/structure-info/model.ts @@ -87,7 +87,7 @@ export function printLinks(structure: Structure, showIntra: boolean, showInter: if (showInter) { console.log('\nInter Unit Links\n============='); - const links = structure.links; + const links = structure.interUnitBonds; for (const unit of structure.units) { if (!Unit.isAtomic(unit)) continue; diff --git a/src/mol-model/structure/query/queries/filters.ts b/src/mol-model/structure/query/queries/filters.ts index ad053fa6c94fac25eb3db770e31bef303b0c4d14..9194feeb92d4538011ad1998bcfb2345a0dc1176 100644 --- a/src/mol-model/structure/query/queries/filters.ts +++ b/src/mol-model/structure/query/queries/filters.ts @@ -238,7 +238,7 @@ function checkConnected(ctx: IsConnectedToCtx, structure: Structure) { const { queryCtx, input, target, disjunct } = ctx; const atomicLink = queryCtx.atomicLink; - const interLinks = input.links; + const interLinks = input.interUnitBonds; for (const unit of structure.units) { if (!Unit.isAtomic(unit)) continue; diff --git a/src/mol-model/structure/query/queries/generators.ts b/src/mol-model/structure/query/queries/generators.ts index 74fe040c9bcee35d9e72da97de9b1bad1094345b..7aaba0ab3231795bcf938a25be289f4110ffb22c 100644 --- a/src/mol-model/structure/query/queries/generators.ts +++ b/src/mol-model/structure/query/queries/generators.ts @@ -280,7 +280,7 @@ export function linkedAtomicPairs(linkTest?: QueryPredicate): StructureQuery { return function query_linkedAtomicPairs(ctx) { const structure = ctx.inputStructure; - const interLinks = structure.links; + const interLinks = structure.interUnitBonds; // Note: each link is called twice, that's why we need the unique builder. const ret = StructureSelection.UniqueBuilder(ctx.inputStructure); diff --git a/src/mol-model/structure/query/queries/modifiers.ts b/src/mol-model/structure/query/queries/modifiers.ts index 553a92ee98f0e68ad8a6ac184c85c983e0d6d794..38b862ae2edd5d54734a0b1a07725cf1a87779f7 100644 --- a/src/mol-model/structure/query/queries/modifiers.ts +++ b/src/mol-model/structure/query/queries/modifiers.ts @@ -332,7 +332,7 @@ function includeConnectedStep(ctx: QueryContext, wholeResidues: boolean, structu function expandConnected(ctx: QueryContext, structure: Structure) { const inputStructure = ctx.inputStructure; - const interLinks = inputStructure.links; + const interLinks = inputStructure.interUnitBonds; const builder = new StructureUniqueSubsetBuilder(inputStructure); // Note: each link is visited twice so that link.atom-a and link.atom-b both get the "swapped values" diff --git a/src/mol-model/structure/structure/carbohydrates/compute.ts b/src/mol-model/structure/structure/carbohydrates/compute.ts index edf106ffd05cf2553a45458a693d8d0a44251416..e2adb40049acf1c4d4b8eb8479ad47fef28b968b 100644 --- a/src/mol-model/structure/structure/carbohydrates/compute.ts +++ b/src/mol-model/structure/structure/carbohydrates/compute.ts @@ -276,7 +276,7 @@ export function computeCarbohydrates(structure: Structure): Carbohydrates { const unit = structure.units[i] if (!Unit.isAtomic(unit)) continue - structure.links.getLinkedUnits(unit).forEach(pairBonds => { + structure.interUnitBonds.getLinkedUnits(unit).forEach(pairBonds => { pairBonds.linkedElementIndices.forEach(indexA => { pairBonds.getBonds(indexA).forEach(bondInfo => { const { unitA, unitB } = pairBonds diff --git a/src/mol-model/structure/structure/structure.ts b/src/mol-model/structure/structure/structure.ts index b024cc88c7ea85b4cb7db245ba3f8b17ba82c28a..68425c7eb4d97ab2e3b7d6aec59eee90ca08af38 100644 --- a/src/mol-model/structure/structure/structure.ts +++ b/src/mol-model/structure/structure/structure.ts @@ -40,7 +40,7 @@ class Structure { private _props: { parent?: Structure, lookup3d?: StructureLookup3D, - links?: InterUnitBonds, + interUnitBonds?: InterUnitBonds, crossLinkRestraints?: PairRestraints<CrossLinkRestraint>, unitSymmetryGroups?: ReadonlyArray<Unit.SymmetryGroup>, unitSymmetryGroupsIndexMap?: IntMap<number>, @@ -200,10 +200,10 @@ class Structure { return this._props.lookup3d; } - get links() { - if (this._props.links) return this._props.links; - this._props.links = computeInterUnitBonds(this); - return this._props.links; + get interUnitBonds() { + if (this._props.interUnitBonds) return this._props.interUnitBonds; + this._props.interUnitBonds = computeInterUnitBonds(this); + return this._props.interUnitBonds; } get crossLinkRestraints() { diff --git a/src/mol-model/structure/structure/unit/links.ts b/src/mol-model/structure/structure/unit/links.ts index 12e2830c1ad6c07604d467ed5acd0dbc629482c1..bd12a137685d8961f49e1f6494bea0ab605894ba 100644 --- a/src/mol-model/structure/structure/unit/links.ts +++ b/src/mol-model/structure/structure/unit/links.ts @@ -123,7 +123,7 @@ namespace Link { if (idx < 0) return LinkType.create(LinkType.Flag.None); return LinkType.create(links.edgeProps.flags[idx]); } else { - const bond = structure.links.getBondFromLocation(link); + const bond = structure.interUnitBonds.getBondFromLocation(link); if (bond) return LinkType.create(bond.flag); return LinkType.create(LinkType.Flag.None); } @@ -136,7 +136,7 @@ namespace Link { if (idx < 0) return 0; return links.edgeProps.order[idx]; } else { - const bond = structure.links.getBondFromLocation(link); + const bond = structure.interUnitBonds.getBondFromLocation(link); if (bond) return bond.order; return 0; } diff --git a/src/mol-repr/structure/visual/util/link.ts b/src/mol-repr/structure/visual/util/link.ts index bcd3b7a5640dc1e6b067c0ee7a454a9ee0e263f4..5bed0a7e09d1c7a24a400f0c7f9dfe8fc684ed18 100644 --- a/src/mol-repr/structure/visual/util/link.ts +++ b/src/mol-repr/structure/visual/util/link.ts @@ -142,11 +142,11 @@ export namespace LinkIterator { } export function fromStructure(structure: Structure): LocationIterator { - const groupCount = structure.links.bondCount + const groupCount = structure.interUnitBonds.bondCount const instanceCount = 1 const location = Link.Location() const getLocation = (groupIndex: number) => { - const bond = structure.links.bonds[groupIndex] + const bond = structure.interUnitBonds.bonds[groupIndex] location.aUnit = bond.unitA location.aIndex = bond.indexA as StructureElement.UnitIndex location.bUnit = bond.unitB diff --git a/src/perf-tests/structure.ts b/src/perf-tests/structure.ts index 1b619cced938a6fd9a3bbba5f77cb39ba0131f1b..fce1462906cd0290131e972b6a7a63b63fbc2c59 100644 --- a/src/perf-tests/structure.ts +++ b/src/perf-tests/structure.ts @@ -375,7 +375,7 @@ export namespace PropertyAccess { export async function runLinks() { const { structures } = await readCIF('e:/test/quick/3j3q_full.bcif'); console.time('links'); - structures[0].links + structures[0].interUnitBonds console.timeEnd('links'); }