Sfoglia il codice sorgente

non-polymer selection bug fixed

bioinsilico 2 anni fa
parent
commit
69b1d2f732

+ 18 - 18
package-lock.json

@@ -1,18 +1,18 @@
 {
   "name": "@rcsb/rcsb-saguaro-3d",
-  "version": "2.0.1",
+  "version": "2.1.0",
   "lockfileVersion": 2,
   "requires": true,
   "packages": {
     "": {
       "name": "@rcsb/rcsb-saguaro-3d",
-      "version": "2.0.1",
+      "version": "2.1.0",
       "license": "MIT",
       "dependencies": {
         "@rcsb/rcsb-api-tools": "^4.1.0",
         "@rcsb/rcsb-molstar": "^2.5.5",
-        "@rcsb/rcsb-saguaro": "^2.2.7",
-        "@rcsb/rcsb-saguaro-app": "^4.4.1",
+        "@rcsb/rcsb-saguaro": "^2.2.9",
+        "@rcsb/rcsb-saguaro-app": "^4.4.3",
         "molstar": "^3.13.0"
       },
       "devDependencies": {
@@ -2492,9 +2492,9 @@
       }
     },
     "node_modules/@rcsb/rcsb-saguaro": {
-      "version": "2.2.7",
-      "resolved": "https://registry.npmjs.org/@rcsb/rcsb-saguaro/-/rcsb-saguaro-2.2.7.tgz",
-      "integrity": "sha512-bNjMWaFgDqP6VcwqI31H8UHdXJDVwSmpyqCtvDSVKErc6KgxochY1LX7qeIU2+XkgzMjl0hmZE4WajiOTWt6XQ==",
+      "version": "2.2.9",
+      "resolved": "https://registry.npmjs.org/@rcsb/rcsb-saguaro/-/rcsb-saguaro-2.2.9.tgz",
+      "integrity": "sha512-/xZWwpwVLf/iIHXbhyTkDy4rkyQHvs3aD/w9lRPZUYtd84qw7fni3JZlFIIjhgGZAwdrRzSGX5gb1kGXvzQKqw==",
       "dependencies": {
         "@d3fc/d3fc-sample": "^5.0.1",
         "d3": "^7.6.1",
@@ -2506,12 +2506,12 @@
       }
     },
     "node_modules/@rcsb/rcsb-saguaro-app": {
-      "version": "4.4.1",
-      "resolved": "https://registry.npmjs.org/@rcsb/rcsb-saguaro-app/-/rcsb-saguaro-app-4.4.1.tgz",
-      "integrity": "sha512-EiYM1T0sOKRrjqh0RBL7u4dNJiqmDhSzVu5YCmHs89SbYj28L1DS3Ha03DfHalbJPYIueoSRmcfx5SkZ42oSpw==",
+      "version": "4.4.3",
+      "resolved": "https://registry.npmjs.org/@rcsb/rcsb-saguaro-app/-/rcsb-saguaro-app-4.4.3.tgz",
+      "integrity": "sha512-Ma3hWhjtnj9hXc/FV1TOcnKlJr1XgpNZcHTa5MiJ2OdhVtfxIYuV0yMmqLs99iuPIlujhX1oURH4N/+q05Hicg==",
       "dependencies": {
         "@rcsb/rcsb-api-tools": "^4.1.0",
-        "@rcsb/rcsb-saguaro": "^2.2.7",
+        "@rcsb/rcsb-saguaro": "^2.2.9",
         "react-select": "^5.4.0",
         "rxjs": "^7.5.5",
         "victory": "^36.5.0"
@@ -14055,9 +14055,9 @@
       }
     },
     "@rcsb/rcsb-saguaro": {
-      "version": "2.2.7",
-      "resolved": "https://registry.npmjs.org/@rcsb/rcsb-saguaro/-/rcsb-saguaro-2.2.7.tgz",
-      "integrity": "sha512-bNjMWaFgDqP6VcwqI31H8UHdXJDVwSmpyqCtvDSVKErc6KgxochY1LX7qeIU2+XkgzMjl0hmZE4WajiOTWt6XQ==",
+      "version": "2.2.9",
+      "resolved": "https://registry.npmjs.org/@rcsb/rcsb-saguaro/-/rcsb-saguaro-2.2.9.tgz",
+      "integrity": "sha512-/xZWwpwVLf/iIHXbhyTkDy4rkyQHvs3aD/w9lRPZUYtd84qw7fni3JZlFIIjhgGZAwdrRzSGX5gb1kGXvzQKqw==",
       "requires": {
         "@d3fc/d3fc-sample": "^5.0.1",
         "d3": "^7.6.1",
@@ -14069,12 +14069,12 @@
       }
     },
     "@rcsb/rcsb-saguaro-app": {
-      "version": "4.4.1",
-      "resolved": "https://registry.npmjs.org/@rcsb/rcsb-saguaro-app/-/rcsb-saguaro-app-4.4.1.tgz",
-      "integrity": "sha512-EiYM1T0sOKRrjqh0RBL7u4dNJiqmDhSzVu5YCmHs89SbYj28L1DS3Ha03DfHalbJPYIueoSRmcfx5SkZ42oSpw==",
+      "version": "4.4.3",
+      "resolved": "https://registry.npmjs.org/@rcsb/rcsb-saguaro-app/-/rcsb-saguaro-app-4.4.3.tgz",
+      "integrity": "sha512-Ma3hWhjtnj9hXc/FV1TOcnKlJr1XgpNZcHTa5MiJ2OdhVtfxIYuV0yMmqLs99iuPIlujhX1oURH4N/+q05Hicg==",
       "requires": {
         "@rcsb/rcsb-api-tools": "^4.1.0",
-        "@rcsb/rcsb-saguaro": "^2.2.7",
+        "@rcsb/rcsb-saguaro": "^2.2.9",
         "react-select": "^5.4.0",
         "rxjs": "^7.5.5",
         "victory": "^36.5.0"

+ 3 - 3
package.json

@@ -1,6 +1,6 @@
 {
   "name": "@rcsb/rcsb-saguaro-3d",
-  "version": "2.0.2",
+  "version": "2.1.0",
   "description": "RCSB Molstar/Saguaro Web App",
   "main": "build/dist/app.js",
   "files": [
@@ -82,8 +82,8 @@
   "dependencies": {
     "@rcsb/rcsb-api-tools": "^4.1.0",
     "@rcsb/rcsb-molstar": "^2.5.5",
-    "@rcsb/rcsb-saguaro": "^2.2.7",
-    "@rcsb/rcsb-saguaro-app": "^4.4.1",
+    "@rcsb/rcsb-saguaro": "^2.2.9",
+    "@rcsb/rcsb-saguaro-app": "^4.4.3",
     "molstar": "^3.13.0"
   },
   "bugs": {

+ 1 - 1
src/RcsbFvSequence/SequenceViews/RcsbView/CallbackManagerFactoryImplementation/AssemblyCallbackManager.ts

@@ -63,7 +63,7 @@ class AssemblyCallbackManager<R> extends AbstractCallbackManager<R,undefined> {
 
         if(allSel == null || allSel.length ===0) {
             this.rcsbFvContainer.get()?.getFv().clearSelection(mode);
-        }else if( mode === 'select' && lastSel?.labelAsymId && (lastSel?.labelAsymId != labelAsymId || lastSel?.operatorName != operatorName) ){
+        }else if( mode === 'select' && ((lastSel?.labelAsymId && lastSel?.labelAsymId != labelAsymId) || (lastSel?.operatorName && lastSel?.operatorName != operatorName)) ){
             const authId: string | undefined = this.stateManager.assemblyModelSate.getChainInfo(lastSel?.labelAsymId!)?.auth;
             await this.modelChangeCallback(authId, lastSel?.operatorName);
         }else if(modelId && labelAsymId){

+ 13 - 11
src/RcsbFvStructure/StructureViewers/MolstarViewer/MolstarCallbackManager.ts

@@ -145,19 +145,21 @@ export class MolstarCallbackManager implements ViewerCallbackManagerInterface{
                     const loc = StructureElement.Location.create(loci.structure);
                     for (const e of loci.elements) {
                         StructureElement.Location.set(loc, loci.structure, e.unit, e.unit.elements[0]);
-                        const seqIds = new Set<number>();
-                        for (let i = 0, il = OrderedSet.size(e.indices); i < il; ++i) {
-                            loc.element = e.unit.elements[OrderedSet.getAt(e.indices, i)];
-                            seqIds.add(SP.residue.label_seq_id(loc));
+                        if(SP.entity.type(loc) === 'polymer'){
+                            const seqIds = new Set<number>();
+                            for (let i = 0, il = OrderedSet.size(e.indices); i < il; ++i) {
+                                loc.element = e.unit.elements[OrderedSet.getAt(e.indices, i)];
+                                seqIds.add(SP.residue.label_seq_id(loc));
+                            }
+                            if(seqIds.size > 0)
+                                sequenceData.push({
+                                    modelId: this.modelMapManager.getModelId(data.model.id),
+                                    labelAsymId: SP.chain.label_asym_id(loc),
+                                    operatorName: SP.unit.operator_name(loc),
+                                    seqIds
+                                });
                         }
-                        sequenceData.push({
-                            modelId: this.modelMapManager.getModelId(data.model.id),
-                            labelAsymId: SP.chain.label_asym_id(loc),
-                            operatorName: SP.unit.operator_name(loc),
-                            seqIds
-                        });
                     }
-
                 }
             }
             this.stateManager.selectionState.setSelectionFromResidueSelection(sequenceData, 'select', 'structure');