Browse Source

update chain-test as @arose suggested

Daofeng Li 4 years ago
parent
commit
e8d2e6d806
1 changed files with 10 additions and 4 deletions
  1. 10 4
      src/extensions/g3d/model.ts

+ 10 - 4
src/extensions/g3d/model.ts

@@ -178,7 +178,7 @@ export const G3dSymbols = {
     chromosome: QuerySymbolRuntime.Dynamic(CustomPropSymbol('g3d', 'chromosome', Type.Str),
         ctx => {
             if (Unit.isAtomic(ctx.element.unit)) return '';
-            const {  asym_id } = ctx.element.unit.model.coarseHierarchy.spheres;
+            const { asym_id } = ctx.element.unit.model.coarseHierarchy.spheres;
             return asym_id.value(ctx.element.element) || '';
         }
     ),
@@ -202,15 +202,21 @@ export function g3dHaplotypeQuery(haplotype: string) {
     });
 }
 
-export function g3dChromosomeQuery(chromosome: string) {
+export function g3dChromosomeQuery(chr: string) {
     return MS.struct.generator.atomGroups({
-        'chain-test': MS.core.rel.eq([G3dSymbols.chromosome.symbol(), chromosome]),
+        'chain-test': MS.core.logic.and([
+            MS.core.rel.eq([MS.ammp('objectPrimitive'), 'sphere']),
+            MS.core.rel.eq([G3dSymbols.chromosome.symbol(), chr])
+        ])
     });
 }
 
 export function g3dRegionQuery(chr: string, start: number, end: number) {
     return MS.struct.generator.atomGroups({
-        'chain-test': MS.core.rel.eq([G3dSymbols.chromosome.symbol(), chr]),
+        'chain-test': MS.core.logic.and([
+            MS.core.rel.eq([MS.ammp('objectPrimitive'), 'sphere']),
+            MS.core.rel.eq([G3dSymbols.chromosome.symbol(), chr])
+        ]),
         'residue-test': MS.core.rel.inRange([G3dSymbols.region.symbol(), start, end])
     });
 }