Browse Source

saguaro update && rcsb-api-tools update

bioinsilico 1 year ago
parent
commit
c44fae65cb

+ 4 - 0
CHANGELOG.md

@@ -16,6 +16,10 @@ that is used to map loaded structure ids with user provided ids in `LoadParams`
 - `RcsbFv3DAbstract.render` converted to async method
 - Exposed molstar trajectory preset configuration
 - Removed global state for MSA checkboxes
+### Dependency update
+- rcsb-saguaro-app v5.0.0
+- rcsb-saguaro v2.5.9
+- rcsb-api-tools v4.1.3
 ### Configuration
 - All packages are transpiled and included in the final module
 ### Breaking Changes

+ 18 - 18
package-lock.json

@@ -1,18 +1,18 @@
 {
   "name": "@rcsb/rcsb-saguaro-3d",
-  "version": "3.0.0-data-provider.24",
+  "version": "3.0.0-data-provider.29",
   "lockfileVersion": 2,
   "requires": true,
   "packages": {
     "": {
       "name": "@rcsb/rcsb-saguaro-3d",
-      "version": "3.0.0-data-provider.24",
+      "version": "3.0.0-data-provider.29",
       "license": "MIT",
       "dependencies": {
-        "@rcsb/rcsb-api-tools": "^4.1.1",
+        "@rcsb/rcsb-api-tools": "^4.1.3",
         "@rcsb/rcsb-molstar": "^2.5.11",
         "@rcsb/rcsb-saguaro": "^2.5.9",
-        "@rcsb/rcsb-saguaro-app": "^5.0.0-data-provider.20",
+        "@rcsb/rcsb-saguaro-app": "^5.0.1",
         "molstar": "^3.31.4"
       },
       "devDependencies": {
@@ -2871,9 +2871,9 @@
       }
     },
     "node_modules/@rcsb/rcsb-api-tools": {
-      "version": "4.1.1",
-      "resolved": "https://registry.npmjs.org/@rcsb/rcsb-api-tools/-/rcsb-api-tools-4.1.1.tgz",
-      "integrity": "sha512-A+bxms2r1sj1uLxpqSXvT04VqOPTn4YGJmxmM+0EfgQwH9ZjGJ1PqCZ3yrI8zNAVcWF7PIFw4p+tPuuIJlLAag==",
+      "version": "4.1.3",
+      "resolved": "https://registry.npmjs.org/@rcsb/rcsb-api-tools/-/rcsb-api-tools-4.1.3.tgz",
+      "integrity": "sha512-W8TlN6GEDSKbPSDBqxYC1uBV2FpCqnnr7EPk5YwCTX0QVQ9F1jHsErGGayw/BFREg+FBwvAT/xO/essMGFqv3Q==",
       "dependencies": {
         "@graphql-codegen/cli": "^2.6.2",
         "graphql": "^15.8.0",
@@ -2925,11 +2925,11 @@
       }
     },
     "node_modules/@rcsb/rcsb-saguaro-app": {
-      "version": "5.0.0-data-provider.20",
-      "resolved": "https://registry.npmjs.org/@rcsb/rcsb-saguaro-app/-/rcsb-saguaro-app-5.0.0-data-provider.20.tgz",
-      "integrity": "sha512-/0fok3G94DgMDfZk4txCcaDr1m3SP6lqXpzXu81lDoanJXP/xoNM7JiNkcBTe2ClScBRnKkc36ZaQKL9vLSj7Q==",
+      "version": "5.0.1",
+      "resolved": "https://registry.npmjs.org/@rcsb/rcsb-saguaro-app/-/rcsb-saguaro-app-5.0.1.tgz",
+      "integrity": "sha512-TqXN0Q4HKii2K7Dmyft0t6cqkpM2NtqkZ4koiwKrIZBsz2AR49/VIHELnl6n6v/HFU5ZQR8DXipgi/6nMssihQ==",
       "dependencies": {
-        "@rcsb/rcsb-api-tools": "^4.1.1",
+        "@rcsb/rcsb-api-tools": "^4.1.3",
         "@rcsb/rcsb-charts": "^0.0.3",
         "@rcsb/rcsb-saguaro": "^2.5.9",
         "react-select": "^5.4.0",
@@ -15957,9 +15957,9 @@
       "peer": true
     },
     "@rcsb/rcsb-api-tools": {
-      "version": "4.1.1",
-      "resolved": "https://registry.npmjs.org/@rcsb/rcsb-api-tools/-/rcsb-api-tools-4.1.1.tgz",
-      "integrity": "sha512-A+bxms2r1sj1uLxpqSXvT04VqOPTn4YGJmxmM+0EfgQwH9ZjGJ1PqCZ3yrI8zNAVcWF7PIFw4p+tPuuIJlLAag==",
+      "version": "4.1.3",
+      "resolved": "https://registry.npmjs.org/@rcsb/rcsb-api-tools/-/rcsb-api-tools-4.1.3.tgz",
+      "integrity": "sha512-W8TlN6GEDSKbPSDBqxYC1uBV2FpCqnnr7EPk5YwCTX0QVQ9F1jHsErGGayw/BFREg+FBwvAT/xO/essMGFqv3Q==",
       "requires": {
         "@graphql-codegen/cli": "^2.6.2",
         "graphql": "^15.8.0",
@@ -16011,11 +16011,11 @@
       }
     },
     "@rcsb/rcsb-saguaro-app": {
-      "version": "5.0.0-data-provider.20",
-      "resolved": "https://registry.npmjs.org/@rcsb/rcsb-saguaro-app/-/rcsb-saguaro-app-5.0.0-data-provider.20.tgz",
-      "integrity": "sha512-/0fok3G94DgMDfZk4txCcaDr1m3SP6lqXpzXu81lDoanJXP/xoNM7JiNkcBTe2ClScBRnKkc36ZaQKL9vLSj7Q==",
+      "version": "5.0.1",
+      "resolved": "https://registry.npmjs.org/@rcsb/rcsb-saguaro-app/-/rcsb-saguaro-app-5.0.1.tgz",
+      "integrity": "sha512-TqXN0Q4HKii2K7Dmyft0t6cqkpM2NtqkZ4koiwKrIZBsz2AR49/VIHELnl6n6v/HFU5ZQR8DXipgi/6nMssihQ==",
       "requires": {
-        "@rcsb/rcsb-api-tools": "^4.1.1",
+        "@rcsb/rcsb-api-tools": "^4.1.3",
         "@rcsb/rcsb-charts": "^0.0.3",
         "@rcsb/rcsb-saguaro": "^2.5.9",
         "react-select": "^5.4.0",

+ 2 - 2
package.json

@@ -87,10 +87,10 @@
     "webpack-dev-server": "^4.9.3"
   },
   "dependencies": {
-    "@rcsb/rcsb-api-tools": "^4.1.1",
+    "@rcsb/rcsb-api-tools": "^4.1.3",
     "@rcsb/rcsb-molstar": "^2.5.11",
     "@rcsb/rcsb-saguaro": "^2.5.9",
-    "@rcsb/rcsb-saguaro-app": "^5.0.0-data-provider.20",
+    "@rcsb/rcsb-saguaro-app": "^5.0.1",
     "molstar": "^3.31.4"
   },
   "bugs": {

+ 4 - 3
src/RcsbFvSequence/SequenceViews/RcsbView/CallbackManagerFactoryImplementation/MsaCallbackManager.ts

@@ -10,9 +10,10 @@ import {
 } from "@rcsb/rcsb-api-tools/build/RcsbGraphQL/Types/Borrego/GqlTypes";
 import {RegionSelectionInterface} from "../../../../RcsbFvState/RcsbFvSelectorManager";
 import {ChainInfo, SaguaroRegionList} from "../../../../RcsbFvStructure/StructureViewerInterface";
-import {TagDelimiter} from "@rcsb/rcsb-saguaro-app";
 import {AlignmentMapper as AM} from "../../../../Utils/AlignmentMapper";
 import {DataContainer} from "../../../../Utils/DataContainer";
+import {TagDelimiter} from "@rcsb/rcsb-api-tools/build/RcsbUtils/TagDelimiter";
+
 
 export class MsaCallbackManagerFactory<U> implements CallbackManagerFactoryInterface<U> {
 
@@ -97,7 +98,7 @@ class MsaCallbackManager<U>  extends AbstractCallbackManager<U>{
         if(alignment) {
             allSel.forEach(sel => {
                 const chain: ChainInfo | undefined = this.stateManager.assemblyModelSate.getModelChainInfo(sel.modelId)?.chains.find(
-                    ch => (ch.entityId == TagDelimiter.parseRcsbId(sel.modelId).entityId || ch.label == TagDelimiter.parseRcsbId(sel.modelId).instanceId) && ch.label == sel.labelAsymId
+                    ch => (ch.entityId == TagDelimiter.parseEntity(sel.modelId).entityId || ch.label == TagDelimiter.parseInstance(sel.modelId).instanceId) && ch.label == sel.labelAsymId
                 );
                 if (chain) {
                     regions = regions.concat(this.getModelRegions(sel.regions.map(r => ({
@@ -130,7 +131,7 @@ class MsaCallbackManager<U>  extends AbstractCallbackManager<U>{
         const regions: SelectedRegion[] = [];
         modelList.forEach(modelId=>{
             const chain: ChainInfo|undefined = this.stateManager.assemblyModelSate.getModelChainInfo(modelId)?.chains.find(
-                ch=>ch.entityId==TagDelimiter.parseRcsbId(modelId).entityId || ch.label==TagDelimiter.parseRcsbId(modelId).instanceId
+                ch=>ch.entityId==TagDelimiter.parseEntity(modelId).entityId || ch.label==TagDelimiter.parseInstance(modelId).instanceId
             );
             if(!chain)
                 return;

+ 0 - 1
src/RcsbFvSequence/SequenceViews/RcsbView/PfvManagerFactoryImplementation/MsaPfvComponents/MsaRowMarkComponent.tsx

@@ -7,7 +7,6 @@ import React from "react";
 import classes from '../../../../../styles/MsaPfvStyle.module.scss';
 import {Property} from "csstype";
 import {asyncScheduler, Subscription} from "rxjs";
-import {TagDelimiter} from "@rcsb/rcsb-saguaro-app";
 import {RcsbFvStateInterface} from "../../../../../RcsbFvState/RcsbFvStateInterface";
 
 interface MsaRowMarkInterface  {

+ 1 - 1
src/RcsbFvSequence/SequenceViews/RcsbView/PfvManagerFactoryImplementation/MsaPfvComponents/MsaRowTitleCheckboxComponent.tsx

@@ -4,7 +4,7 @@
 */
 
 import * as React from "react";
-import {TagDelimiter} from "@rcsb/rcsb-saguaro-app";
+import {TagDelimiter} from "@rcsb/rcsb-api-tools/build/RcsbUtils/TagDelimiter";
 import {Subscription} from "rxjs";
 import {RcsbFvStateInterface} from "../../../../../RcsbFvState/RcsbFvStateInterface";
 

+ 5 - 5
src/RcsbFvSequence/SequenceViews/RcsbView/PfvManagerFactoryImplementation/MsaPfvComponents/MsaRowTitleComponent.tsx

@@ -11,11 +11,11 @@ import {
 } from "@rcsb/rcsb-saguaro-app/build/dist/RcsbFvWeb/RcsbFvFactories/RcsbFvTrackFactory/TrackFactoryImpl/AlignmentTrackFactory";
 import {TargetAlignment} from "@rcsb/rcsb-api-tools/build/RcsbGraphQL/Types/Borrego/GqlTypes";
 import {Subscription} from "rxjs";
-import {TagDelimiter} from "@rcsb/rcsb-saguaro-app";
 import {MsaRowTitleCheckboxComponent} from "./MsaRowTitleCheckboxComponent";
 import {MouseEvent} from "react";
 import {Property} from "csstype";
 import {RcsbFvStateInterface} from "../../../../../RcsbFvState/RcsbFvStateInterface";
+import {parseEntityOrInstance} from "../../../../../Utils/RcsbIdParser";
 
 interface MsaRowTitleInterface extends RcsbFvRowTitleInterface {
     alignmentContext: AlignmentRequestContextType;
@@ -76,9 +76,9 @@ export class MsaRowTitleComponent extends React.Component <MsaRowTitleInterface,
                    </div>
                </div>
                <div  style={{cursor: this.cursor(), width:39}} onClick={(e: MouseEvent)=>this.altClick(e)} >
-                   <MsaRowTitleCheckboxComponent disabled={this.state.disabled} {...TagDelimiter.parseEntityOrInstance(this.props.targetAlignment.target_id!)} tag={"aligned"} stateManager={this.props.stateManager}/>
-                   <MsaRowTitleCheckboxComponent disabled={this.state.disabled} {...TagDelimiter.parseEntityOrInstance(this.props.targetAlignment.target_id!)} tag={"polymer"} stateManager={this.props.stateManager}/>
-                   <MsaRowTitleCheckboxComponent disabled={this.state.disabled} {...TagDelimiter.parseEntityOrInstance(this.props.targetAlignment.target_id!)} tag={"non-polymer"} stateManager={this.props.stateManager}/>
+                   <MsaRowTitleCheckboxComponent disabled={this.state.disabled} {...parseEntityOrInstance(this.props.targetAlignment.target_id!)} tag={"aligned"} stateManager={this.props.stateManager}/>
+                   <MsaRowTitleCheckboxComponent disabled={this.state.disabled} {...parseEntityOrInstance(this.props.targetAlignment.target_id!)} tag={"polymer"} stateManager={this.props.stateManager}/>
+                   <MsaRowTitleCheckboxComponent disabled={this.state.disabled} {...parseEntityOrInstance(this.props.targetAlignment.target_id!)} tag={"non-polymer"} stateManager={this.props.stateManager}/>
                </div>
            </div>
        );
@@ -127,7 +127,7 @@ export class MsaRowTitleComponent extends React.Component <MsaRowTitleInterface,
     }
 
     private click(e: MouseEvent): void{
-        const rcsbId = TagDelimiter.parseEntityOrInstance(this.props.targetAlignment.target_id!);
+        const rcsbId = parseEntityOrInstance(this.props.targetAlignment.target_id!);
         const entityTag = "entityId" in rcsbId ? `#entity-${rcsbId.entityId}` : "";
         if(e.shiftKey) {
             const newWin: Window|null = window.open(

+ 4 - 3
src/RcsbFvSequence/SequenceViews/RcsbView/PfvManagerFactoryImplementation/MsaPfvManagerFactory.ts

@@ -8,7 +8,7 @@ import {
     RcsbFvAdditionalConfig,
     RcsbFvModulePublicInterface
 } from "@rcsb/rcsb-saguaro-app/build/dist/RcsbFvWeb/RcsbFvModule/RcsbFvModuleInterface";
-import {TagDelimiter} from "@rcsb/rcsb-saguaro-app";
+import {TagDelimiter} from "@rcsb/rcsb-api-tools/build/RcsbUtils/TagDelimiter";
 
 import {
     AlignmentRequestContextType
@@ -24,6 +24,7 @@ import {MsaUiSortComponent} from "./MsaPfvComponents/MsaUiSortComponent";
 import {ActionMethods} from "@rcsb/rcsb-saguaro-app/build/dist/RcsbFvUI/Helper/ActionMethods";
 import {MsaUiSequenceAlignmentDownload} from "./MsaPfvComponents/MsaUiSequenceAlignmentDownload";
 import {MsaUiStructureDownload} from "./MsaPfvComponents/MsaUiStructureDownload";
+import {parseEntityOrInstance} from "../../../../Utils/RcsbIdParser"
 
 export interface MsaPfvManagerInterface<T extends any[]> {
     id:string;
@@ -81,7 +82,7 @@ class MsaPfvManager<T extends any[]> extends AbstractPfvManager<{id:string},{con
                             externalRowMark: {
                                 component:MsaRowMarkComponent,
                                 props:{
-                                    rowRef:TagDelimiter.parseEntityOrInstance(targetAlignment.target_id!),
+                                    rowRef: parseEntityOrInstance(targetAlignment.target_id!),
                                     stateManager: this.stateManager
                                 }
                             },
@@ -155,7 +156,7 @@ class MsaPfvManager<T extends any[]> extends AbstractPfvManager<{id:string},{con
                 type:"model-change",
                 view:"1d-view",
                 data:{
-                    pdb:TagDelimiter.parseEntityOrInstance(targetAlignment.target_id),
+                    pdb: parseEntityOrInstance(targetAlignment.target_id),
                     targetAlignment,
                     who
                 }

+ 2 - 1
src/RcsbFvSequence/SequenceViews/RcsbView/RcsbViewBehaviour/AlignmentProviderBehaviour.ts

@@ -5,8 +5,9 @@ import {
 } from "@rcsb/rcsb-saguaro-app/build/dist/RcsbFvWeb/RcsbFvModule/RcsbFvModuleInterface";
 import {RcsbFvStateInterface} from "../../../../RcsbFvState/RcsbFvStateInterface";
 import {Subscription} from "rxjs";
-import {TagDelimiter} from "@rcsb/rcsb-saguaro-app";
 import {TargetAlignment} from "@rcsb/rcsb-api-tools/build/RcsbGraphQL/Types/Borrego/GqlTypes";
+import {TagDelimiter} from "@rcsb/rcsb-api-tools/build/RcsbUtils/TagDelimiter";
+
 
 type AlignmentDataType = {
     pdb:{entryId:string;instanceId:string;},

+ 1 - 1
src/RcsbFvStructure/StructureViewerBehaviour/MsaBehaviour.ts

@@ -17,12 +17,12 @@ import {
 import {RcsbFvStateInterface} from "../../RcsbFvState/RcsbFvStateInterface";
 import {asyncScheduler, Subscription} from "rxjs";
 import {StructureLoaderInterface} from "../StructureUtils/StructureLoaderInterface";
-import {TagDelimiter} from "@rcsb/rcsb-saguaro-app";
 import {createSelectionExpressions} from "@rcsb/rcsb-molstar/build/src/viewer/helpers/selection";
 import {RegionSelectionInterface} from "../../RcsbFvState/RcsbFvSelectorManager";
 import {TargetAlignment} from "@rcsb/rcsb-api-tools/build/RcsbGraphQL/Types/Borrego/GqlTypes";
 import {FunctionCall} from "../../Utils/FunctionCall";
 import onetimeCall = FunctionCall.onetimeCall;
+import {TagDelimiter} from "@rcsb/rcsb-api-tools/build/RcsbUtils/TagDelimiter";
 
 type MsaBehaviourType<R,L> = StructureLoaderInterface<[
     ViewerCallbackManagerInterface & ViewerActionManagerInterface<R,L>,

+ 1 - 1
src/RcsbFvStructure/StructureViewers/MolstarViewer/MolstarUtils/MolstarAlignmentLoader.ts

@@ -13,12 +13,12 @@ import {
     LoadMolstarInterface,
     LoadMolstarReturnType
 } from "../MolstarActionManager";
-import {TagDelimiter} from "@rcsb/rcsb-saguaro-app";
 import {
     AlignmentTrajectoryPresetProvider,
     AlignmentTrajectoryParamsType
 } from "../TrajectoryPresetProvider/AlignmentTrajectoryPresetProvider";
 import {TargetAlignment} from "@rcsb/rcsb-api-tools/build/RcsbGraphQL/Types/Borrego/GqlTypes";
+import {TagDelimiter} from "@rcsb/rcsb-api-tools/build/RcsbUtils/TagDelimiter";
 
 
 export class MolstarAlignmentLoader implements StructureLoaderInterface<[

+ 1 - 1
src/RcsbFvStructure/StructureViewers/MolstarViewer/TrajectoryPresetProvider/AlignmentRepresentationPresetProvider.ts

@@ -28,7 +28,7 @@ import {Loci} from "molstar/lib/mol-model/loci";
 import {superpose} from "molstar/lib/mol-model/structure/structure/util/superposition";
 import {Mat4} from "molstar/lib/mol-math/linear-algebra";
 import {SymmetryOperator} from "molstar/lib/mol-math/geometry/symmetry-operator";
-import {TagDelimiter} from "@rcsb/rcsb-saguaro-app";
+import {TagDelimiter} from "@rcsb/rcsb-api-tools/build/RcsbUtils/TagDelimiter";
 import {AlignedRegion, TargetAlignment} from "@rcsb/rcsb-api-tools/build/RcsbGraphQL/Types/Borrego/GqlTypes";
 import {AlignmentMapper as AM} from "../../../../Utils/AlignmentMapper";
 import {compile} from 'molstar/lib/mol-script/runtime/query/compiler';

+ 2 - 31
src/RcsbFvStructure/StructureViewers/MolstarViewer/TrajectoryPresetProvider/FlexibleAlignmentRepresentationPresetProvider.ts

@@ -10,45 +10,17 @@ import {PluginContext} from "molstar/lib/mol-plugin/context";
 import {PluginStateObject} from "molstar/lib/mol-plugin-state/objects";
 import {StateObjectRef} from "molstar/lib/mol-state";
 import {
-    Model,
-    QueryContext, ResidueIndex,
-    Structure,
     StructureElement,
-    StructureProperties as SP,
-    StructureSelection,
-    Unit
+    StructureProperties as SP
 } from "molstar/lib/mol-model/structure";
 import {MolScriptBuilder as MS} from "molstar/lib/mol-script/language/builder";
 import uniqid from "uniqid";
 import {PLDDTConfidenceColorThemeProvider} from "molstar/lib/extensions/model-archive/quality-assessment/color/plddt";
 import {ColorTheme} from "molstar/lib/mol-theme/color";
-import {createSelectionExpressions} from "@rcsb/rcsb-molstar/build/src/viewer/helpers/selection";
-import {ParamDefinition as PD} from "molstar/lib/mol-util/param-definition";
-import {Loci} from "molstar/lib/mol-model/loci";
-import {superpose} from "molstar/lib/mol-model/structure/structure/util/superposition";
-import {Mat4} from "molstar/lib/mol-math/linear-algebra";
-import {SymmetryOperator} from "molstar/lib/mol-math/geometry/symmetry-operator";
-import {StateTransforms} from "molstar/lib/mol-plugin-state/transforms";
-import {TagDelimiter} from "@rcsb/rcsb-saguaro-app";
-import {AlignedRegion, TargetAlignment} from "@rcsb/rcsb-api-tools/build/RcsbGraphQL/Types/Borrego/GqlTypes";
-import {AlignmentMapper as AM} from "../../../../Utils/AlignmentMapper";
-import {compile} from 'molstar/lib/mol-script/runtime/query/compiler';
 import reprBuilder = StructureRepresentationPresetProvider.reprBuilder;
-import {
-    QualityAssessment,
-} from "molstar/lib/extensions/model-archive/quality-assessment/prop";
-import {MmcifFormat} from "molstar/lib/mol-model-formats/structure/mmcif";
-import {CustomProperty} from "molstar/lib/mol-model-props/common/custom-property";
-import {RcsbFvStateInterface} from "../../../../RcsbFvState/RcsbFvStateInterface";
 import {StructureBuilder} from "molstar/lib/mol-plugin-state/builder/structure";
 import {StructureRepresentationBuilder} from "molstar/lib/mol-plugin-state/builder/structure/representation";
-import {RigidTransformType} from "../../../StructureUtils/StructureLoaderInterface";
-import {StructureQueryHelper} from "molstar/lib/mol-plugin-state/helpers/structure-query";
-import {RootStructureDefinition} from "molstar/lib/mol-plugin-state/helpers/root-structure";
-import {RuntimeContext} from "molstar/lib/mol-task";
-import {
-    createStructureRepresentationParams
-} from "molstar/lib/mol-plugin-state/helpers/structure-representation-params";
+import {TagDelimiter} from "@rcsb/rcsb-api-tools/build/RcsbUtils/TagDelimiter";
 
 type ComponentType = Awaited<ReturnType<InstanceType<typeof StructureBuilder>["tryCreateComponentFromExpression"]>>;
 type RepresentationType = ReturnType<InstanceType<typeof StructureRepresentationBuilder>["buildRepresentation"]>;
@@ -117,7 +89,6 @@ export const FlexibleAlignmentRepresentationPresetProvider = StructureRepresenta
     }
 });
 
-
 function toRange(start: number, end?: number): number[] {
     if (!end) return [start];
     const b = start < end ? start : end;

+ 5 - 0
src/Utils/RcsbIdParser.ts

@@ -0,0 +1,5 @@
+import {TagDelimiter} from "@rcsb/rcsb-api-tools/build/RcsbUtils/TagDelimiter";
+
+export function parseEntityOrInstance(rcsbId:string): {entryId:string; entityId:string;} | {entryId:string; instanceId:string;} {
+    return  rcsbId.split(TagDelimiter.instance).length > 1 ? TagDelimiter.parseInstance(rcsbId) : TagDelimiter.parseEntity(rcsbId);
+}

+ 2 - 1
src/examples/alignment-provider/providers/AlignmentReference.ts

@@ -4,7 +4,8 @@ import {
     AlignmentResponse,
 } from "@rcsb/rcsb-api-tools/build/RcsbGraphQL/Types/Borrego/GqlTypes";
 import {Alignment} from "./alignment-response";
-import {RcsbRequestContextManager, TagDelimiter} from "@rcsb/rcsb-saguaro-app";
+import {RcsbRequestContextManager} from "@rcsb/rcsb-saguaro-app";
+import {TagDelimiter} from "@rcsb/rcsb-api-tools/build/RcsbUtils/TagDelimiter";
 import {
     InstanceSequenceInterface
 } from "@rcsb/rcsb-saguaro-app/build/dist/RcsbCollectTools/DataCollectors/MultipleInstanceSequencesCollector";

+ 1 - 1
src/examples/alignment-provider/providers/ExternalAlignmentProvider.ts

@@ -7,7 +7,6 @@ import {
     AlignmentCollectConfig,
     AlignmentCollectorInterface
 } from "@rcsb/rcsb-saguaro-app/build/dist/RcsbCollectTools/AlignmentCollector/AlignmentCollectorInterface";
-import {TagDelimiter} from "@rcsb/rcsb-saguaro-app";
 
 import {
     RcsbModuleDataProviderInterface
@@ -38,6 +37,7 @@ import {
 import {
     FlexibleAlignmentTrajectoryPresetProvider
 } from "../../../RcsbFvStructure/StructureViewers/MolstarViewer/TrajectoryPresetProvider/FlexibleAlignmentTrajectoryPresetProvider";
+import {TagDelimiter} from "@rcsb/rcsb-api-tools/build/RcsbUtils/TagDelimiter";
 
 const alignment = {
     "info": {