Quellcode durchsuchen

Issue #805: topology track added

cycle20 vor 1 Jahr
Ursprung
Commit
8dc261d366
2 geänderte Dateien mit 38 neuen und 22 gelöschten Zeilen
  1. 29 19
      src/examples/assembly-tm/UniTmpHelper.ts
  2. 9 3
      src/examples/assembly-tm/index.ts

+ 29 - 19
src/examples/assembly-tm/UniTmpHelper.ts

@@ -10,33 +10,43 @@ export async function fetchDescriptor(entryId: string) {
 
 export function descriptorChainToTrackData(descriptor: any) {
     const tracks = [] as any[];
-    descriptor.Predictions.Prediction.forEach((prediction: any) => {
-        const trackData = {
-            trackHeight: 20,
-            trackColor: "#F9F9F9",
-            displayType: RcsbFvDisplayTypes.COMPOSITE,
-            rowTitle: prediction['@attributes'].name,
-            displayConfig: [] as any[]
-        };
+
+    if (Array.isArray(descriptor.Topology.Region)) {
+        const trackData = createNewTrack('Topology', descriptor.Topology.Region);
         tracks.push(trackData);
+    }
 
-        if (!Array.isArray(prediction.Region)) {
-            return;
-        }
-
-        prediction.Region.forEach((region: any) => {
-            trackData.displayConfig.push(createDisplayItem({
-                begin: parseInt(region['@attributes'].from),
-                end: parseInt(region['@attributes'].to),
-                location: region['@attributes'].loc
-            }));
-        });
+    descriptor.Predictions.Prediction.forEach((prediction: any) => {
+        const trackData = createNewTrack(prediction['@attributes'].name, prediction.Region);
+        tracks.push(trackData);
     });
 
     console.log(tracks);
     return tracks;
 }
 
+function createNewTrack(rowTitle: string, regions: any[]) {
+    const trackData = {
+        trackHeight: 20,
+        trackColor: "#F9F9F9",
+        displayType: RcsbFvDisplayTypes.COMPOSITE,
+        rowTitle: rowTitle,
+        displayConfig: [] as any[]
+    };
+    if (!Array.isArray(regions)) {
+        return trackData;
+    }
+    regions.forEach((region: any) => {
+        trackData.displayConfig.push(createDisplayItem({
+            begin: parseInt(region['@attributes'].from),
+            end: parseInt(region['@attributes'].to),
+            location: region['@attributes'].loc
+        }));
+    });
+
+    return trackData;
+}
+
 function createDisplayItem(params: any) {
     return {
         displayType: RcsbFvDisplayTypes.BLOCK,

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

@@ -15,6 +15,12 @@ import { updateSiteColors } from "./UniTmpColor";
 import { fvConfig, rowConfig } from "./FeatureViewConfig";
 
 
+const side1 = "Inside";
+const entry = "SC5AA_HUMAN";
+
+
+
+
 const block: FeatureBlockInterface<LoadMolstarInterface<unknown,unknown>,LoadMolstarReturnType> = {
     blockId:"MyBlock_1",
     featureViewConfig: [fvConfig]
@@ -26,7 +32,7 @@ const customConfig: CustomViewInterface<LoadMolstarInterface<unknown,unknown>,Lo
 
 const sequenceConfig = {
     title: "UniTmp example",
-    subtitle: "HTP entry",
+    subtitle: `HTP entry ${entry}`,
     config: customConfig
 };
 
@@ -47,8 +53,8 @@ const molstarConfig: RcsbFvStructureConfigInterface<LoadMolstarInterface<unknown
 };
 
 document.addEventListener("DOMContentLoaded", async function(event) {
-    updateSiteColors("Inside");
-    const descriptor = await fetchDescriptor("SC5AA_HUMAN");
+    updateSiteColors(side1);
+    const descriptor = await fetchDescriptor(entry);
 
     console.log(descriptor);