Quellcode durchsuchen

Issue #805: dynamic sequence config

cycle20 vor 1 Jahr
Ursprung
Commit
5110a99452

+ 10 - 25
src/examples/assembly-tm/FeatureViewConfig.ts

@@ -21,43 +21,28 @@ export const rowConfig: Array<RcsbFvRowConfigInterface> = [
         trackColor: "#F9F9F9",
         displayType: RcsbFvDisplayTypes.SEQUENCE,
         nonEmptyDisplay: true,
-        rowTitle: "1ASH SEQUENCE",
+        rowTitle: "N/A",
         trackData: [
             {
                 begin: 1,
-                value: "ANKTRELCMKSLEHAKVDTSNEARQDGIDLYKHMFENYPPLRKYFKSREEYTAEDVQNDPFFAKQGQKILLACHVLCATYDDRETFNAYTRELLDRHARDHVHMPPEVWTDFWKLFEEYLGKKTTLDEPTKQAWHEIGREFAKEINKHGR"
+                value: "N/A"
             }
         ]
-    },{
-        trackId: "blockTrack",
-        trackHeight: 20,
-        trackColor: "#F9F9F9",
-        displayType: RcsbFvDisplayTypes.BLOCK,
-        displayColor: "#FF0000",
-        rowTitle: "1ASH",
-        trackData: [{
-            begin: 30,
-            end: 60
-        }]
     }
 ];
 
 export const fvConfig: FeatureViewInterface<LoadMolstarInterface<unknown,unknown>,LoadMolstarReturnType> = {
-    boardId:"1ash_board",
+    boardId:"2xq2_board",
     boardConfig: {
-        range: {
-            min: 1,
-            max: 150
-        },
         rowTitleWidth: 190,
         includeAxis: true
     },
     rowConfig: rowConfig,
     sequenceSelectionChangeCallback: (plugin: StructureViewerPublicInterface<LoadMolstarInterface<unknown,unknown>,LoadMolstarReturnType>, stateManager: RcsbFvStateManager, sequenceRegion: Array<RcsbFvTrackDataElementInterface>) => {
-        stateManager.selectionState.clearSelection("select", {modelId:"1ash_model", labelAsymId:"A"});
+        stateManager.selectionState.clearSelection("select", {modelId:"2xq2_model", labelAsymId:"A"});
         if(sequenceRegion.length > 0) {
             const regions = sequenceRegion.map(r => ({
-                modelId: "1ash_model",
+                modelId: "2xq2_model",
                 labelAsymId: "A",
                 region: {begin: r.begin, end: r.end ?? r.begin, source: "sequence"} as RegionSelectionInterface
             }));
@@ -68,27 +53,27 @@ export const fvConfig: FeatureViewInterface<LoadMolstarInterface<unknown,unknown
                 end: r.region.end
             })), "select", "set");
         }else{
-            plugin.clearSelection("select", {modelId: "1ash_model", labelAsymId: "A"})
+            plugin.clearSelection("select", {modelId: "2xq2_model", labelAsymId: "A"})
             plugin.resetCamera();
         }
     },
     sequenceElementClickCallback: (plugin: StructureViewerPublicInterface<LoadMolstarInterface<unknown,unknown>,LoadMolstarReturnType>, stateManager: RcsbFvStateManager, d: RcsbFvTrackDataElementInterface) => {
         if(d!=null)
-            plugin.cameraFocus("1ash_model", "A", d.begin, d.end ?? d.begin);
+            plugin.cameraFocus("2xq2_model", "A", d.begin, d.end ?? d.begin);
     },
     sequenceHoverCallback: (plugin: StructureViewerPublicInterface<LoadMolstarInterface<unknown,unknown>,LoadMolstarReturnType>, stateManager: RcsbFvStateManager, elements: Array<RcsbFvTrackDataElementInterface>) => {
         if(elements == null || elements.length == 0)
             plugin.clearSelection("hover");
         else
             plugin.select(elements.map(e=>({
-                modelId: "1ash_model",
+                modelId: "2xq2_model",
                 labelAsymId: "A",
                 begin: e.begin,
                 end: e.end ?? e.begin
             })), "hover", "set");
     },
     structureSelectionCallback: (plugin: StructureViewerPublicInterface<LoadMolstarInterface<unknown,unknown>,LoadMolstarReturnType>, pfv: RcsbFv, stateManager: RcsbFvStateManager) => {
-        const sel: SaguaroRegionList | undefined = stateManager.selectionState.getSelectionWithCondition("1ash_model", "A", "select");
+        const sel: SaguaroRegionList | undefined = stateManager.selectionState.getSelectionWithCondition("2xq2_model", "A", "select");
         if(sel == null) {
             pfv.clearSelection("select");
             plugin.resetCamera();
@@ -97,7 +82,7 @@ export const fvConfig: FeatureViewInterface<LoadMolstarInterface<unknown,unknown
         }
     },
     structureHoverCallback: (plugin: StructureViewerPublicInterface<LoadMolstarInterface<unknown,unknown>,LoadMolstarReturnType>, pfv: RcsbFv, stateManager: RcsbFvStateManager) => {
-        const sel: SaguaroRegionList | undefined = stateManager.selectionState.getSelectionWithCondition("1ash_model", "A", "hover");
+        const sel: SaguaroRegionList | undefined = stateManager.selectionState.getSelectionWithCondition("2xq2_model", "A", "hover");
         if(sel == null)
             pfv.clearSelection("hover");
         else

+ 1 - 1
src/examples/assembly-tm/UniTmpHelper.ts

@@ -29,7 +29,7 @@ export function descriptorChainToTrackData(descriptor: any) {
                 begin: parseInt(region['@attributes'].from),
                 end: parseInt(region['@attributes'].to),
                 location: region['@attributes'].loc
-            }));    
+            }));
         });
     });
 

+ 6 - 3
src/examples/assembly-tm/index.ts

@@ -34,8 +34,8 @@ const molstarConfig: RcsbFvStructureConfigInterface<LoadMolstarInterface<unknown
     loadConfig: {
         loadMethod: LoadMethod.loadPdbId,
         loadParams: {
-            entryId: "1ash",
-            id:"1ash_model"
+            entryId: "2xq2",
+            id:"2xq2_model"
         }
     },
     structureViewerConfig: {
@@ -50,10 +50,13 @@ document.addEventListener("DOMContentLoaded", async function(event) {
     updateSiteColors("Inside");
     const descriptor = await fetchDescriptor("SC5AA_HUMAN");
 
+    console.log(descriptor);
+
     let sequence = descriptor.Sequence.Seq;
     sequence = sequence.replace(/\s+/g, '');
 
-    //sequenceConfig.config.blockConfig[0].featureViewConfig[0] = `${result['@attributes'].id} sequence`;
+    fvConfig.boardConfig.length = parseInt(descriptor.Sequence['@attributes'].Length);
+    fvConfig.rowConfig[0].rowTitle = `${descriptor['@attributes'].id} sequence`;
     rowConfig[0].trackData![0].value = sequence;
     rowConfig.push(...descriptorChainToTrackData(descriptor));