浏览代码

uniprot msa view

bioinsilico 2 年之前
父节点
当前提交
1db5c0f312

+ 16 - 16
package-lock.json

@@ -11,8 +11,8 @@
       "dependencies": {
       "dependencies": {
         "@rcsb/rcsb-api-tools": "^4.1.0-models.1",
         "@rcsb/rcsb-api-tools": "^4.1.0-models.1",
         "@rcsb/rcsb-molstar": "^2.5.5",
         "@rcsb/rcsb-molstar": "^2.5.5",
-        "@rcsb/rcsb-saguaro": "^2.2.1",
-        "@rcsb/rcsb-saguaro-app": "^4.4.0-models.37",
+        "@rcsb/rcsb-saguaro": "^2.2.2",
+        "@rcsb/rcsb-saguaro-app": "^4.4.0-models.38",
         "molstar": "^3.13.0"
         "molstar": "^3.13.0"
       },
       },
       "devDependencies": {
       "devDependencies": {
@@ -2490,9 +2490,9 @@
       }
       }
     },
     },
     "node_modules/@rcsb/rcsb-saguaro": {
     "node_modules/@rcsb/rcsb-saguaro": {
-      "version": "2.2.1",
-      "resolved": "https://registry.npmjs.org/@rcsb/rcsb-saguaro/-/rcsb-saguaro-2.2.1.tgz",
-      "integrity": "sha512-ngtnmaoCNobtnKihh8+S7nvr2mEYkrPNrKaMJUTCgjdH+F4V3wBaPD4PSCLbTm838oiFc5B4eEQGwoWPzMQGfw==",
+      "version": "2.2.2",
+      "resolved": "https://registry.npmjs.org/@rcsb/rcsb-saguaro/-/rcsb-saguaro-2.2.2.tgz",
+      "integrity": "sha512-Z+a1HkbcxnwbTZ5Hyh4zSerkbeS3MXb7cz7CDEEV07I/Rzvsi+8V5QkHVwOTYxoUVmfhq+tJbXdX0J4ilBKqTg==",
       "dependencies": {
       "dependencies": {
         "@d3fc/d3fc-sample": "^5.0.1",
         "@d3fc/d3fc-sample": "^5.0.1",
         "d3": "^7.6.1",
         "d3": "^7.6.1",
@@ -2504,12 +2504,12 @@
       }
       }
     },
     },
     "node_modules/@rcsb/rcsb-saguaro-app": {
     "node_modules/@rcsb/rcsb-saguaro-app": {
-      "version": "4.4.0-models.37",
-      "resolved": "https://registry.npmjs.org/@rcsb/rcsb-saguaro-app/-/rcsb-saguaro-app-4.4.0-models.37.tgz",
-      "integrity": "sha512-TT1qhLkS+yMaNZ9f3HHrYCRgJlrWRoQL+FgzI5tnR+Go1yzjP0TzKaBsVBfpWn/JG88zWBXg4RcmNi9w2gLhnQ==",
+      "version": "4.4.0-models.38",
+      "resolved": "https://registry.npmjs.org/@rcsb/rcsb-saguaro-app/-/rcsb-saguaro-app-4.4.0-models.38.tgz",
+      "integrity": "sha512-neqW3IgzH9dlgWVGBqXOKukK87n1sC9pgXJs3KOcAyiKv3tQss3SCJQCs4tfD/QDHb0F944aX/d/TemUxEoBfw==",
       "dependencies": {
       "dependencies": {
         "@rcsb/rcsb-api-tools": "^4.1.0-models.1",
         "@rcsb/rcsb-api-tools": "^4.1.0-models.1",
-        "@rcsb/rcsb-saguaro": "^2.2.1",
+        "@rcsb/rcsb-saguaro": "^2.2.2",
         "react-select": "^5.4.0",
         "react-select": "^5.4.0",
         "rxjs": "^7.5.5",
         "rxjs": "^7.5.5",
         "victory": "^36.5.0"
         "victory": "^36.5.0"
@@ -14037,9 +14037,9 @@
       }
       }
     },
     },
     "@rcsb/rcsb-saguaro": {
     "@rcsb/rcsb-saguaro": {
-      "version": "2.2.1",
-      "resolved": "https://registry.npmjs.org/@rcsb/rcsb-saguaro/-/rcsb-saguaro-2.2.1.tgz",
-      "integrity": "sha512-ngtnmaoCNobtnKihh8+S7nvr2mEYkrPNrKaMJUTCgjdH+F4V3wBaPD4PSCLbTm838oiFc5B4eEQGwoWPzMQGfw==",
+      "version": "2.2.2",
+      "resolved": "https://registry.npmjs.org/@rcsb/rcsb-saguaro/-/rcsb-saguaro-2.2.2.tgz",
+      "integrity": "sha512-Z+a1HkbcxnwbTZ5Hyh4zSerkbeS3MXb7cz7CDEEV07I/Rzvsi+8V5QkHVwOTYxoUVmfhq+tJbXdX0J4ilBKqTg==",
       "requires": {
       "requires": {
         "@d3fc/d3fc-sample": "^5.0.1",
         "@d3fc/d3fc-sample": "^5.0.1",
         "d3": "^7.6.1",
         "d3": "^7.6.1",
@@ -14051,12 +14051,12 @@
       }
       }
     },
     },
     "@rcsb/rcsb-saguaro-app": {
     "@rcsb/rcsb-saguaro-app": {
-      "version": "4.4.0-models.37",
-      "resolved": "https://registry.npmjs.org/@rcsb/rcsb-saguaro-app/-/rcsb-saguaro-app-4.4.0-models.37.tgz",
-      "integrity": "sha512-TT1qhLkS+yMaNZ9f3HHrYCRgJlrWRoQL+FgzI5tnR+Go1yzjP0TzKaBsVBfpWn/JG88zWBXg4RcmNi9w2gLhnQ==",
+      "version": "4.4.0-models.38",
+      "resolved": "https://registry.npmjs.org/@rcsb/rcsb-saguaro-app/-/rcsb-saguaro-app-4.4.0-models.38.tgz",
+      "integrity": "sha512-neqW3IgzH9dlgWVGBqXOKukK87n1sC9pgXJs3KOcAyiKv3tQss3SCJQCs4tfD/QDHb0F944aX/d/TemUxEoBfw==",
       "requires": {
       "requires": {
         "@rcsb/rcsb-api-tools": "^4.1.0-models.1",
         "@rcsb/rcsb-api-tools": "^4.1.0-models.1",
-        "@rcsb/rcsb-saguaro": "^2.2.1",
+        "@rcsb/rcsb-saguaro": "^2.2.2",
         "react-select": "^5.4.0",
         "react-select": "^5.4.0",
         "rxjs": "^7.5.5",
         "rxjs": "^7.5.5",
         "victory": "^36.5.0"
         "victory": "^36.5.0"

+ 2 - 2
package.json

@@ -80,8 +80,8 @@
   "dependencies": {
   "dependencies": {
     "@rcsb/rcsb-api-tools": "^4.1.0-models.1",
     "@rcsb/rcsb-api-tools": "^4.1.0-models.1",
     "@rcsb/rcsb-molstar": "^2.5.5",
     "@rcsb/rcsb-molstar": "^2.5.5",
-    "@rcsb/rcsb-saguaro": "^2.2.1",
-    "@rcsb/rcsb-saguaro-app": "^4.4.0-models.37",
+    "@rcsb/rcsb-saguaro": "^2.2.2",
+    "@rcsb/rcsb-saguaro-app": "^4.4.0-models.38",
     "molstar": "^3.13.0"
     "molstar": "^3.13.0"
   },
   },
   "bugs": {
   "bugs": {

+ 10 - 10
src/RcsbFv3D/RcsbFv3DUniprot.tsx

@@ -48,15 +48,8 @@ export class RcsbFv3DUniprot extends RcsbFv3DAbstract<{upAcc:string},LoadMolstar
                         upAcc:params.config.upAcc
                         upAcc:params.config.upAcc
                     },
                     },
                     buildPfvOnMount: true,
                     buildPfvOnMount: true,
-                    pfvManagerFactory: new UniprotPfvManagerFactory<LoadMolstarInterface>(),
-                    callbackManagerFactory: new UniprotCallbackManagerFactory<LoadMolstarInterface>({
-                        pluginLoadParamsCollector:(pdbId:string)=>({
-                            loadMethod: LoadMethod.loadPdbId,
-                            loadParams:{
-                                pdbId
-                            }
-                        })
-                    })
+                    pfvManagerFactory: new UniprotPfvManagerFactory<LoadMolstarInterface>({pluginLoadParamsDefinition}),
+                    callbackManagerFactory: new UniprotCallbackManagerFactory<LoadMolstarInterface>({pluginLoadParamsDefinition})
                 }
                 }
             },
             },
             structureConfig: {
             structureConfig: {
@@ -70,4 +63,11 @@ export class RcsbFv3DUniprot extends RcsbFv3DAbstract<{upAcc:string},LoadMolstar
         });
         });
     }
     }
 
 
-}
+}
+
+const pluginLoadParamsDefinition = (pdbId:string)=>({
+    loadMethod: LoadMethod.loadPdbId,
+    loadParams:{
+        pdbId
+    }
+})

+ 4 - 5
src/RcsbFvSequence/SequenceViews/AbstractView.tsx

@@ -4,7 +4,6 @@ import {asyncScheduler, Subscription} from "rxjs";
 
 
 import {RcsbFvDOMConstants} from "../../RcsbFvConstants/RcsbFvConstants";
 import {RcsbFvDOMConstants} from "../../RcsbFvConstants/RcsbFvConstants";
 import {
 import {
-    StructureViewerInterface,
     SaguaroPluginModelMapType, ViewerCallbackManagerInterface, ViewerActionManagerInterface
     SaguaroPluginModelMapType, ViewerCallbackManagerInterface, ViewerActionManagerInterface
 } from "../../RcsbFvStructure/StructureViewerInterface";
 } from "../../RcsbFvStructure/StructureViewerInterface";
 import {RcsbFvSelectorManager} from "../../RcsbFvSelection/RcsbFvSelectorManager";
 import {RcsbFvSelectorManager} from "../../RcsbFvSelection/RcsbFvSelectorManager";
@@ -25,7 +24,7 @@ export abstract class AbstractView<P,S,R> extends React.Component <P & AbstractV
     protected readonly rcsbFvDivId: string;
     protected readonly rcsbFvDivId: string;
     private updateDimTask: Subscription | null = null;
     private updateDimTask: Subscription | null = null;
 
 
-    constructor(props:P & AbstractViewInterface<R>) {
+    protected constructor(props:P & AbstractViewInterface<R>) {
         super(props);
         super(props);
         this.componentDivId = props.componentId+"_"+RcsbFvDOMConstants.PFV_DIV;
         this.componentDivId = props.componentId+"_"+RcsbFvDOMConstants.PFV_DIV;
         this.rcsbFvDivId = props.componentId+"_"+RcsbFvDOMConstants.PFV_APP_ID;
         this.rcsbFvDivId = props.componentId+"_"+RcsbFvDOMConstants.PFV_APP_ID;
@@ -77,11 +76,11 @@ export abstract class AbstractView<P,S,R> extends React.Component <P & AbstractV
         return null;
         return null;
     }
     }
 
 
-    abstract structureSelectionCallback(): void;
+    abstract additionalContent(): JSX.Element | null;
+    abstract updateDimensions(): void;
     abstract structureHoverCallback(): void;
     abstract structureHoverCallback(): void;
     abstract representationChangeCallback(): void;
     abstract representationChangeCallback(): void;
+    abstract structureSelectionCallback(): void;
     abstract modelChangeCallback(modelMap:SaguaroPluginModelMapType): void;
     abstract modelChangeCallback(modelMap:SaguaroPluginModelMapType): void;
-    abstract updateDimensions(): void;
-    abstract additionalContent(): JSX.Element | null;
 
 
 }
 }

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

@@ -130,7 +130,7 @@ class AssemblyCallbackManager<R> extends AbstractCallbackManager<R,undefined> {
         }else if( mode === 'select' && lastSel?.labelAsymId && (lastSel?.labelAsymId != labelAsymId || lastSel?.operatorName != operatorName) ){
         }else if( mode === 'select' && lastSel?.labelAsymId && (lastSel?.labelAsymId != labelAsymId || lastSel?.operatorName != operatorName) ){
             const authId: string | undefined = this.assemblyModelSate.getChainInfo(lastSel?.labelAsymId!)?.auth;
             const authId: string | undefined = this.assemblyModelSate.getChainInfo(lastSel?.labelAsymId!)?.auth;
             await this.modelChangeCallback(this.assemblyModelSate.getMap(), authId, lastSel?.operatorName);
             await this.modelChangeCallback(this.assemblyModelSate.getMap(), authId, lastSel?.operatorName);
-        }else{
+        }else if(modelId && labelAsymId){
             const sel: SaguaroRegionList | undefined = this.selectorManager.getSelectionWithCondition(
             const sel: SaguaroRegionList | undefined = this.selectorManager.getSelectionWithCondition(
                 modelId,
                 modelId,
                 labelAsymId,
                 labelAsymId,

+ 10 - 29
src/RcsbFvSequence/SequenceViews/RcsbView/CallbackManagerFactoryImplementation/UniprotCallbackManager.ts

@@ -5,28 +5,23 @@ import {
 } from "../CallbackManagerFactoryInterface";
 } from "../CallbackManagerFactoryInterface";
 import {RcsbFvTrackDataElementInterface} from "@rcsb/rcsb-saguaro";
 import {RcsbFvTrackDataElementInterface} from "@rcsb/rcsb-saguaro";
 import {SaguaroPluginModelMapType} from "../../../../RcsbFvStructure/StructureViewerInterface";
 import {SaguaroPluginModelMapType} from "../../../../RcsbFvStructure/StructureViewerInterface";
-import {
-    RcsbFvModulePublicInterface
-} from "@rcsb/rcsb-saguaro-app/build/dist/RcsbFvWeb/RcsbFvModule/RcsbFvModuleInterface";
-import {AlignmentResponse} from "@rcsb/rcsb-api-tools/build/RcsbGraphQL/Types/Borrego/GqlTypes";
 import {
 import {
     UniprotSequenceOnchangeInterface
     UniprotSequenceOnchangeInterface
 } from "@rcsb/rcsb-saguaro-app/build/dist/RcsbFvWeb/RcsbFvBuilder/RcsbFvUniprotBuilder";
 } from "@rcsb/rcsb-saguaro-app/build/dist/RcsbFvWeb/RcsbFvBuilder/RcsbFvUniprotBuilder";
-import {TagDelimiter} from "@rcsb/rcsb-saguaro-app";
 
 
-export class UniprotCallbackManagerFactory<R> implements CallbackManagerFactoryInterface<R,{context: UniprotSequenceOnchangeInterface, module: RcsbFvModulePublicInterface}> {
+export class UniprotCallbackManagerFactory<R> implements CallbackManagerFactoryInterface<R,{context: UniprotSequenceOnchangeInterface;}> {
 
 
-    private readonly pluginLoadParamsCollector:(id: string)=>R;
-    constructor(config: {pluginLoadParamsCollector:(id: string)=>R}) {
-        this.pluginLoadParamsCollector = config.pluginLoadParamsCollector;
+    private readonly pluginLoadParamsDefinition:(id: string)=>R;
+    constructor(config: {pluginLoadParamsDefinition:(id: string)=>R}) {
+        this.pluginLoadParamsDefinition = config.pluginLoadParamsDefinition;
     }
     }
 
 
-    getCallbackManager(config: CallbackConfigInterface<R>): CallbackManagerInterface<{ context: UniprotSequenceOnchangeInterface; module: RcsbFvModulePublicInterface }> {
-        return new UniprotCallbackManager( {...config, loadParamRequest:this.pluginLoadParamsCollector});
+    getCallbackManager(config: CallbackConfigInterface<R>): CallbackManagerInterface<{context: UniprotSequenceOnchangeInterface;}> {
+        return new UniprotCallbackManager( {...config, loadParamRequest:this.pluginLoadParamsDefinition});
     }
     }
 }
 }
 
 
-class UniprotCallbackManager<R>  extends AbstractCallbackManager<R,{context: UniprotSequenceOnchangeInterface, module: RcsbFvModulePublicInterface}>{
+class UniprotCallbackManager<R>  extends AbstractCallbackManager<R,{context: UniprotSequenceOnchangeInterface;}>{
 
 
     private readonly loadParamRequest:(id: string)=>R;
     private readonly loadParamRequest:(id: string)=>R;
 
 
@@ -45,26 +40,12 @@ class UniprotCallbackManager<R>  extends AbstractCallbackManager<R,{context: Uni
         return Promise.resolve(undefined);
         return Promise.resolve(undefined);
     }
     }
 
 
-    pluginSelectCallback(mode: "select" | "hover"): Promise<void> {
+    async pfvChangeCallback(params:{context: UniprotSequenceOnchangeInterface;}): Promise<void> {
+        if(typeof this.rcsbFvContainer.get() === "undefined")
+            return;
         return Promise.resolve(undefined);
         return Promise.resolve(undefined);
     }
     }
 
 
-    selectionChangeCallback(selection: Array<RcsbFvTrackDataElementInterface>): void {
-    }
-
-    async pfvChangeCallback(params:{context: UniprotSequenceOnchangeInterface, module: RcsbFvModulePublicInterface}): Promise<void> {
-        if(params.context.entryId) {
-            await this.plugin.load(this.loadParamRequest(params.context.entryId));
-        }else{
-            const alignments: AlignmentResponse = await params.module.getAlignmentResponse();
-            if(alignments.target_alignment && alignments.target_alignment.length > 0 && typeof alignments.target_alignment[0]?.target_id === "string"){
-                const entryId: string = TagDelimiter.parseEntity(alignments.target_alignment[0]?.target_id).entryId;
-                if(entryId)
-                    await this.plugin.load(this.loadParamRequest(entryId));
-            }
-        }
-    }
-
     protected innerPluginSelect(mode: "select" | "hover"): Promise<void> {
     protected innerPluginSelect(mode: "select" | "hover"): Promise<void> {
         return Promise.resolve(undefined);
         return Promise.resolve(undefined);
     }
     }

+ 4 - 4
src/RcsbFvSequence/SequenceViews/RcsbView/CallbackManagerFactoryInterface.ts

@@ -63,10 +63,10 @@ export abstract class AbstractCallbackManager<R,U> implements CallbackManagerInt
         this.innerSelectionChange(selection);
         this.innerSelectionChange(selection);
     }
     }
 
 
-    abstract elementClickCallback(e:RcsbFvTrackDataElementInterface): void;
-    abstract highlightHoverCallback(selection: RcsbFvTrackDataElementInterface[]): void;
-    abstract modelChangeCallback(modelMap:SaguaroPluginModelMapType, defaultAuthId?: string, defaultOperatorName?:string): Promise<void>;
-    abstract pfvChangeCallback(args: U): Promise<void>;
+    public abstract elementClickCallback(e:RcsbFvTrackDataElementInterface): void;
+    public abstract highlightHoverCallback(selection: RcsbFvTrackDataElementInterface[]): void;
+    public abstract modelChangeCallback(modelMap:SaguaroPluginModelMapType, defaultAuthId?: string, defaultOperatorName?:string): Promise<void>;
+    public abstract pfvChangeCallback(args: U): Promise<void>;
     protected abstract innerPluginSelect(mode: "select" | "hover"): Promise<void> ;
     protected abstract innerPluginSelect(mode: "select" | "hover"): Promise<void> ;
     protected abstract innerSelectionChange(selection: Array<RcsbFvTrackDataElementInterface>): void;
     protected abstract innerSelectionChange(selection: Array<RcsbFvTrackDataElementInterface>): void;
 
 

+ 50 - 15
src/RcsbFvSequence/SequenceViews/RcsbView/PfvManagerFactoryImplementation/UniprotPfvManagerFactory.ts

@@ -7,48 +7,83 @@ import {
 import {
 import {
     RcsbFvModulePublicInterface
     RcsbFvModulePublicInterface
 } from "@rcsb/rcsb-saguaro-app/build/dist/RcsbFvWeb/RcsbFvModule/RcsbFvModuleInterface";
 } from "@rcsb/rcsb-saguaro-app/build/dist/RcsbFvWeb/RcsbFvModule/RcsbFvModuleInterface";
-import {buildMultipleAlignmentSequenceFv} from "@rcsb/rcsb-saguaro-app";
+import {buildMultipleAlignmentSequenceFv, TagDelimiter} from "@rcsb/rcsb-saguaro-app";
 import {RcsbFvDOMConstants} from "../../../../RcsbFvConstants/RcsbFvConstants";
 import {RcsbFvDOMConstants} from "../../../../RcsbFvConstants/RcsbFvConstants";
 import {
 import {
     UniprotSequenceOnchangeInterface
     UniprotSequenceOnchangeInterface
 } from "@rcsb/rcsb-saguaro-app/build/dist/RcsbFvWeb/RcsbFvBuilder/RcsbFvUniprotBuilder";
 } from "@rcsb/rcsb-saguaro-app/build/dist/RcsbFvWeb/RcsbFvBuilder/RcsbFvUniprotBuilder";
+import {
+    AlignmentRequestContextType
+} from "@rcsb/rcsb-saguaro-app/build/dist/RcsbFvWeb/RcsbFvFactories/RcsbFvTrackFactory/TrackFactoryImpl/AlignmentTrackFactory";
+import {AlignmentResponse, TargetAlignment} from "@rcsb/rcsb-api-tools/build/RcsbGraphQL/Types/Borrego/GqlTypes";
 
 
-interface UniprotPfvManagerInterface<R> extends PfvManagerFactoryConfigInterface<R,{context: UniprotSequenceOnchangeInterface, module: RcsbFvModulePublicInterface}> {
+interface UniprotPfvManagerInterface<R> extends PfvManagerFactoryConfigInterface<R,{context: UniprotSequenceOnchangeInterface;}> {
     upAcc:string;
     upAcc:string;
 }
 }
 
 
-export class UniprotPfvManagerFactory<R> implements PfvManagerFactoryInterface<{upAcc:string},R,{context: UniprotSequenceOnchangeInterface, module: RcsbFvModulePublicInterface}> {
+export class UniprotPfvManagerFactory<R> implements PfvManagerFactoryInterface<{upAcc:string},R,{context: UniprotSequenceOnchangeInterface;}> {
+
+    private readonly pluginLoadParamsDefinition:(id: string)=>R;
+    constructor(config: {pluginLoadParamsDefinition:(id: string)=>R}) {
+        this.pluginLoadParamsDefinition = config.pluginLoadParamsDefinition;
+    }
+
     getPfvManager(config: UniprotPfvManagerInterface<R>): PfvManagerInterface {
     getPfvManager(config: UniprotPfvManagerInterface<R>): PfvManagerInterface {
-        return new UniprotPfvManager(config);
+        return new UniprotPfvManager({...config, loadParamRequest:this.pluginLoadParamsDefinition});
     }
     }
 }
 }
 
 
-class UniprotPfvManager<R> extends AbstractPfvManager<{upAcc:string},R,{context: UniprotSequenceOnchangeInterface, module: RcsbFvModulePublicInterface}>{
+class UniprotPfvManager<R> extends AbstractPfvManager<{upAcc:string},R,{context: UniprotSequenceOnchangeInterface;}>{
 
 
     private readonly upAcc:string;
     private readonly upAcc:string;
-    private module: Promise<RcsbFvModulePublicInterface>;
+    private readonly loadParamRequest:(id: string)=>R;
+    private module:RcsbFvModulePublicInterface;
 
 
-    constructor(config:UniprotPfvManagerInterface<R>) {
+    constructor(config:UniprotPfvManagerInterface<R> & {loadParamRequest:(id: string)=>R}) {
         super(config);
         super(config);
         this.upAcc = config.upAcc;
         this.upAcc = config.upAcc;
+        this.loadParamRequest = config.loadParamRequest;
     }
     }
 
 
     async create(): Promise<RcsbFvModulePublicInterface | undefined> {
     async create(): Promise<RcsbFvModulePublicInterface | undefined> {
-        this.module = buildMultipleAlignmentSequenceFv(
+        this.module = await buildMultipleAlignmentSequenceFv(
             this.rcsbFvDivId,
             this.rcsbFvDivId,
             RcsbFvDOMConstants.SELECT_BUTTON_PFV_ID,
             RcsbFvDOMConstants.SELECT_BUTTON_PFV_ID,
             this.upAcc,
             this.upAcc,
             {
             {
                 onChangeCallback:(context,module)=>{
                 onChangeCallback:(context,module)=>{
-                    this.pfvChangeCallback({context, module});
+                    this.pfvChangeCallback({context});
+                }
+            },{
+                ... this.additionalConfig,
+                trackConfigModifier: {
+                    alignment: (alignmentContext: AlignmentRequestContextType, targetAlignment: TargetAlignment) => new Promise((resolve)=>{
+                        resolve({
+                            rowMark:{
+                                clickCallback: ()=>{
+                                    this.loadAlignment(alignmentContext,targetAlignment);
+                                }
+                            }
+                        });
+                    })
                 }
                 }
-            },
-            this.additionalConfig
+            }
         );
         );
-        const module: RcsbFvModulePublicInterface = await this.module;
-        console.log(module);
-        this.rcsbFvContainer.set(module);
-        return module;
+        this.rcsbFvContainer.set(this.module);
+        await this.readyStateLoad();
+        return this.module;
+    }
+
+    private async readyStateLoad(): Promise<void> {
+        const alignments: AlignmentResponse = await this.module.getAlignmentResponse();
+        if(alignments.target_alignment && alignments.target_alignment.length > 0 && typeof alignments.target_alignment[0]?.target_id === "string"){
+            await this.loadAlignment({queryId:this.upAcc}, alignments.target_alignment[0]);
+        }
+    }
+
+    private async loadAlignment(alignmentContext: AlignmentRequestContextType, targetAlignment: TargetAlignment): Promise<void> {
+        if(typeof targetAlignment.target_id === "string")
+            await this.plugin.load( this.loadParamRequest(TagDelimiter.parseEntity(targetAlignment.target_id).entryId) )
     }
     }
 
 
 }
 }

+ 0 - 1
src/RcsbFvSequence/SequenceViews/RcsbView/RcsbView.tsx

@@ -3,7 +3,6 @@ import * as React from "react";
 import {RcsbFvDOMConstants} from "../../../RcsbFvConstants/RcsbFvConstants";
 import {RcsbFvDOMConstants} from "../../../RcsbFvConstants/RcsbFvConstants";
 import {unmount} from "@rcsb/rcsb-saguaro-app";
 import {unmount} from "@rcsb/rcsb-saguaro-app";
 import {AbstractView, AbstractViewInterface} from "../AbstractView";
 import {AbstractView, AbstractViewInterface} from "../AbstractView";
-import {InstanceSequenceConfig} from "@rcsb/rcsb-saguaro-app/build/dist/RcsbFvWeb/RcsbFvBuilder/RcsbFvInstanceBuilder";
 import {RcsbFvBoardConfigInterface, RcsbFvTrackDataElementInterface} from "@rcsb/rcsb-saguaro";
 import {RcsbFvBoardConfigInterface, RcsbFvTrackDataElementInterface} from "@rcsb/rcsb-saguaro";
 import {OperatorInfo, SaguaroPluginModelMapType} from "../../../RcsbFvStructure/StructureViewerInterface";
 import {OperatorInfo, SaguaroPluginModelMapType} from "../../../RcsbFvStructure/StructureViewerInterface";
 import {RcsbFvAdditionalConfig, RcsbFvModulePublicInterface} from "@rcsb/rcsb-saguaro-app/build/dist/RcsbFvWeb/RcsbFvModule/RcsbFvModuleInterface";
 import {RcsbFvAdditionalConfig, RcsbFvModulePublicInterface} from "@rcsb/rcsb-saguaro-app/build/dist/RcsbFvWeb/RcsbFvModule/RcsbFvModuleInterface";