RcsbFv3DSequenceIdentity.tsx 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. import {RcsbFv3DAbstract} from "./RcsbFv3DAbstract";
  2. import {
  3. RcsbFvAdditionalConfig,
  4. RcsbFvModulePublicInterface
  5. } from "@rcsb/rcsb-saguaro-app/build/dist/RcsbFvWeb/RcsbFvModule/RcsbFvModuleInterface";
  6. import uniqid from "uniqid";
  7. import {LoadMethod, LoadMolstarInterface} from "../RcsbFvStructure/StructureViewers/MolstarViewer/MolstarActionManager";
  8. import {ViewerProps} from "@rcsb/rcsb-molstar/build/src/viewer";
  9. import {
  10. UniprotSequenceOnchangeInterface
  11. } from "@rcsb/rcsb-saguaro-app/build/dist/RcsbFvWeb/RcsbFvBuilder/RcsbFvUniprotBuilder";
  12. import {StructureViewer} from "../RcsbFvStructure/StructureViewers/StructureViewer";
  13. import {MolstarManagerFactory} from "../RcsbFvStructure/StructureViewers/MolstarViewer/MolstarManagerFactory";
  14. import {
  15. UniprotPfvManagerFactory
  16. } from "../RcsbFvSequence/SequenceViews/RcsbView/PfvManagerFactoryImplementation/UniprotPfvManagerFactory";
  17. import {
  18. MsaCallbackManagerFactory
  19. } from "../RcsbFvSequence/SequenceViews/RcsbView/CallbackManagerFactoryImplementation/MsaCallbackManager";
  20. import {RcsbFvStructure} from "../RcsbFvStructure/RcsbFvStructure";
  21. import {RcsbFv3DCssConfig} from "./RcsbFv3DComponent";
  22. import {MolstarAlignmentLoader} from "../RcsbFvStructure/StructureUtils/MolstarAlignmentLoader";
  23. import {MsaBehaviourObserver} from "../RcsbFvStructure/StructureViewerBehaviour/MsaBehaviour";
  24. import {
  25. SequenceIdentityPfvManagerFactory
  26. } from "../RcsbFvSequence/SequenceViews/RcsbView/PfvManagerFactoryImplementation/SequenceIdentityPfvManagerFactory";
  27. import {
  28. PolymerEntityInstanceInterface
  29. } from "@rcsb/rcsb-saguaro-app/build/dist/RcsbCollectTools/DataCollectors/PolymerEntityInstancesCollector";
  30. import {SearchQuery} from "@rcsb/rcsb-api-tools/build/RcsbSearch/Types/SearchQueryInterface";
  31. export interface RcsbFv3DSequenceIdentityInterface {
  32. elementId?: string;
  33. config: {
  34. groupId: string;
  35. query?: SearchQuery;
  36. title?: string;
  37. subtitle?: string;
  38. };
  39. additionalConfig?:RcsbFvAdditionalConfig;
  40. molstarProps?: Partial<ViewerProps>;
  41. cssConfig?: RcsbFv3DCssConfig;
  42. }
  43. export class RcsbFv3DSequenceIdentity extends RcsbFv3DAbstract<{groupId:string; query?: SearchQuery;},LoadMolstarInterface|undefined,{viewerElement:string|HTMLElement,viewerProps:Partial<ViewerProps>},{context:any,module:RcsbFvModulePublicInterface}> {
  44. constructor(params:RcsbFv3DSequenceIdentityInterface){
  45. const elementId: string = params.elementId ?? uniqid("RcsbFv3D_");
  46. super({
  47. elementId,
  48. sequenceConfig:{
  49. type: "rcsb",
  50. title: params.config.title,
  51. subtitle: params.config.subtitle,
  52. config:{
  53. rcsbId: params.config.groupId,
  54. additionalConfig: params.additionalConfig,
  55. pfvParams:{
  56. groupId:params.config.groupId,
  57. query:params.config.query
  58. },
  59. buildPfvOnMount: true,
  60. pfvManagerFactory: new SequenceIdentityPfvManagerFactory<LoadMolstarInterface>(),
  61. callbackManagerFactory: new MsaCallbackManagerFactory<LoadMolstarInterface, {context:{groupId:string} & Partial<PolymerEntityInstanceInterface>}>({pluginLoadParamsDefinition})
  62. }
  63. },
  64. structureConfig: {
  65. loadConfig: undefined,
  66. structureViewerConfig: {
  67. viewerElement:RcsbFvStructure.componentId(elementId),
  68. viewerProps: params.molstarProps ?? {}
  69. }
  70. },
  71. structureViewer: new StructureViewer<LoadMolstarInterface,{viewerElement:string|HTMLElement,viewerProps:Partial<ViewerProps>}>( new MolstarManagerFactory() ),
  72. structureViewerBehaviourObserver: new MsaBehaviourObserver<LoadMolstarInterface>(new MolstarAlignmentLoader())
  73. });
  74. }
  75. }
  76. const pluginLoadParamsDefinition = (entryId:string)=>({
  77. loadMethod: LoadMethod.loadPdbId,
  78. loadParams:{
  79. entryId
  80. }
  81. })