drugflow-molstar
Version:
Molstar implementation for DrugFlow
2 lines • 5.76 MB
JavaScript
/*! For license information please see drugflow-molstar-plugin-0.2.8.js.LICENSE.txt */
(()=>{var e={17543:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.clearStructureTransparency=t.setStructureTransparency=t.applyAFTransparency=void 0;var n=r(70655),A=r(1902),i=r(91439),a=r(14880),o=r(31868),s=r(2651),u=r(91969),c=r(57228),l=r(31309),g=r(1902),d="transparency-controls";function B(e,t,r,a,u){return n.__awaiter(this,void 0,void 0,(function(){var c=this;return n.__generator(this,(function(l){switch(l.label){case 0:return[4,f(e,t,(function(e,t,l){return n.__awaiter(c,void 0,void 0,(function(){var c,g,B,f;return n.__generator(this,(function(p){return u&&u.length>0&&!u.includes(t.params.values.type.name)||(c=t.obj.data.sourceData,o.Loci.isEmpty(a)||(0,o.isEmptyLoci)(a)||(g={bundle:A.StructureElement.Bundle.fromLoci(a),value:r},l?(B=n.__spreadArray(n.__spreadArray([],l.params.values.layers,!0),[g],!1),f=I(B,c),e.to(l).update(s.Transparency.toBundle(f))):(f=I([g],c),e.to(t.transform.ref).apply(i.StateTransforms.Representation.TransparencyStructureRepresentation3DFromBundle,s.Transparency.toBundle(f),{tags:d})))),[2]}))}))}))];case 1:return l.sent(),[2]}}))}))}function f(e,t,r){return n.__awaiter(this,void 0,void 0,(function(){var A,o,s,u,c,l,g,B,f;return n.__generator(this,(function(n){switch(n.label){case 0:A=e.state.data,o=A.build(),s=0,u=t,n.label=1;case 1:if(!(s<u.length))return[3,6];c=u[s],l=0,g=c.representations,n.label=2;case 2:return l<g.length?(B=g[l],f=A.select(a.StateSelection.Generators.ofTransformer(i.StateTransforms.Representation.TransparencyStructureRepresentation3DFromBundle,B.cell.transform.ref).withTag(d)),[4,r(o,B.cell,f[0])]):[3,5];case 3:n.sent(),n.label=4;case 4:return l++,[3,2];case 5:return s++,[3,1];case 6:return[2,o.commit({doNotUpdateCurrent:!0})]}}))}))}function I(e,t){var r=s.Transparency.ofBundle(e,t.root),n=s.Transparency.merge(r);return s.Transparency.filter(n,t)}t.applyAFTransparency=function(e,t,r,A){return void 0===A&&(A=70),n.__awaiter(this,void 0,void 0,(function(){var i=this;return n.__generator(this,(function(a){return[2,e.dataTransaction((function(a){return n.__awaiter(i,void 0,void 0,(function(){var i,a;return n.__generator(this,(function(n){switch(n.label){case 0:return o=A,s=null===(a=t.cell.obj)||void 0===a?void 0:a.data,d=u.MolScriptBuilder.struct.modifier.union([u.MolScriptBuilder.struct.modifier.wholeResidues([u.MolScriptBuilder.struct.modifier.union([u.MolScriptBuilder.struct.generator.atomGroups({"chain-test":u.MolScriptBuilder.core.rel.eq([u.MolScriptBuilder.ammp("objectPrimitive"),"atomistic"]),"residue-test":u.MolScriptBuilder.core.rel.lte([c.QualityAssessment.symbols.pLDDT.symbol(),o])})])])]),f=(0,l.compile)(d)(new g.QueryContext(s)),i=g.StructureSelection.toLociWithSourceUnits(f),[4,B(e,t.components,r,i)];case 1:return n.sent(),[2]}var o,s,d,f}))}))}),{canUndo:"Apply Transparency"})]}))}))},t.setStructureTransparency=B,t.clearStructureTransparency=function(e,t,r){return n.__awaiter(this,void 0,void 0,(function(){var A=this;return n.__generator(this,(function(i){switch(i.label){case 0:return[4,f(e,t,(function(e,t,i){return n.__awaiter(A,void 0,void 0,(function(){return n.__generator(this,(function(n){return r&&r.length>0&&!r.includes(t.params.values.type.name)||i&&e.delete(i.transform.ref),[2]}))}))}))];case 1:return i.sent(),[2]}}))}))}},19982:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.CustomEvents=void 0;var n=r(93541),A=r(14857);!function(e){function t(e,t,r){void 0!==t&&(t.residueNumber=t.seq_id,e.eventData=t,e.eventData.residueNumber=t.seq_id,r.dispatchEvent(e))}e.add=function(e,r){var i=function(e){for(var t={},r=0,n=e.length;r<n;r++){var A=e[r],i=void 0;"function"==typeof MouseEvent?i=new MouseEvent(A,{view:window,bubbles:!0,cancelable:!0}):"function"==typeof document.createEvent&&(i=document.createEvent("MouseEvents")).initEvent(A,!0,!0),t[A]=i}return t}(["PDB.molstar.click","PDB.molstar.mouseover","PDB.molstar.mouseout"]);e.behaviors.interaction.click.subscribe((function(e){if(1===e.button&&e.current&&"empty-loci"!==e.current.loci.kind){var A=(0,n.lociDetails)(e.current.loci);A&&t(i["PDB.molstar.click"],A,r)}})),e.behaviors.interaction.hover.pipe((0,A.debounceTime)(100)).subscribe((function(e){if(e.current&&e.current.loci&&"empty-loci"!==e.current.loci.kind){var A=(0,n.lociDetails)(e.current.loci);A&&t(i["PDB.molstar.mouseover"],A,r)}e.current&&e.current.loci&&"empty-loci"===e.current.loci.kind&&t(i["PDB.molstar.mouseout"],{},r)}))}}(t.CustomEvents||(t.CustomEvents={}))},48046:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.PDBeDomainAnnotations=void 0;var n=r(70655),A=r(25016),i=r(98307),a=r(48774),o=r(71314);t.PDBeDomainAnnotations=o.PluginBehavior.create({name:"pdbe-domain-annotations-prop",category:"custom-props",display:{name:"Domain annotations",description:"Data for domain annotations, obtained via PDBe."},ctor:function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.provider=A.DomainAnnotationsProvider,t.labelDomainAnnotations={label:function(e){}},t}return n.__extends(t,e),t.prototype.register=function(){this.ctx.customModelProperties.register(this.provider,this.params.autoAttach),this.ctx.managers.lociLabels.addProvider(this.labelDomainAnnotations),this.ctx.representation.structure.themes.colorThemeRegistry.add(i.DomainAnnotationsColorThemeProvider)},t.prototype.update=function(e){var t=this.params.autoAttach!==e.autoAttach;return this.params.autoAttach=e.autoAttach,this.params.showTooltip=e.showTooltip,this.ctx.customModelProperties.setDefaultAutoAttach(this.provider.descriptor.name,this.params.autoAttach),t},t.prototype.unregister=function(){this.ctx.customModelProperties.unregister(A.DomainAnnotationsProvider.descriptor.name),this.ctx.managers.lociLabels.removeProvider(this.labelDomainAnnotations),this.ctx.representation.structure.themes.colorThemeRegistry.remove(i.DomainAnnotationsColorThemeProvider)},t}(o.PluginBehavior.Handler),params:function(){return{autoAttach:a.ParamDefinition.Boolean(!1),showTooltip:a.ParamDefinition.Boolean(!0)}}})},98307:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DomainAnnotationsColorThemeProvider=t.DomainAnnotationsColorTheme=t.DomainAnnotationsColorThemeParams=void 0;var n=r(25016),A=r(1902),i=r(81796),a=r(48774),o=[i.Color.fromRgb(170,170,170),i.Color.fromRgb(255,112,3)];function s(e,t){var r;if(e.structure&&!e.structure.isEmpty&&e.structure.models[0].customProperties.has(n.DomainAnnotationsProvider.descriptor)){var i=n.DomainAnnotations.getDomains,a=t.type.params.kind;r=function(e){return A.StructureElement.Location.is(e)&&i(e).indexOf(a)>=0?o[1]:o[0]}}else r=function(){return o[0]};return{factory:s,granularity:"group",color:r,props:t,description:"Highlights Sequnece and Structure Domain Annotations. Data obtained via PDBe."}}t.DomainAnnotationsColorThemeParams={type:a.ParamDefinition.MappedStatic("",{"":a.ParamDefinition.EmptyGroup()})},t.DomainAnnotationsColorTheme=s,t.DomainAnnotationsColorThemeProvider={name:"pdbe-domain-annotations",label:"Domain annotations",category:"Miscellaneous",factory:s,getParams:function(e){var t=n.DomainAnnotations.getDomainNames(e.structure),r=n.DomainAnnotations.getDomainTypes(e.structure),A={};return r.forEach((function(e,r){t[r].length>0&&(A[e]=a.ParamDefinition.Group({kind:a.ParamDefinition.Select(t[r][0],a.ParamDefinition.arrayToOptions(t[r]))},{isFlat:!0}))})),Object.keys(A).length>0?{type:a.ParamDefinition.MappedStatic(A[0],A)}:{type:a.ParamDefinition.MappedStatic("",{"":a.ParamDefinition.EmptyGroup()})}},defaultValues:a.ParamDefinition.getDefaultValues(t.DomainAnnotationsColorThemeParams),isApplicable:function(e){var t;return n.DomainAnnotations.isApplicable(null===(t=e.structure)||void 0===t?void 0:t.models[0])},ensureCustomProperties:{attach:function(e,t){return t.structure?n.DomainAnnotationsProvider.attach(e,t.structure.models[0],void 0,!0):Promise.resolve()},detach:function(e){return e.structure&&e.structure.models[0].customProperties.reference(n.DomainAnnotationsProvider.descriptor,!1)}}}},25016:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DomainAnnotationsProvider=t.DomainAnnotationsParams=t.DomainAnnotations=void 0;var n,A=r(70655),i=r(1902),a=r(41507),o=r(42194),s=r(48774),u=r(5529),c=r(6510),l=r(42711);function g(e,t,r,n,A){var i=function(e,t,r){var n=(0,e.entities.getEntityIndex)(t);if(n<0||!e.entity_index_label_asym_id.has(n))return-1;var A=e.entity_index_label_asym_id.get(n);return A&&A.has(r)?A.get(r):-1}(t,r,n);if(i<0)return-1;var a=t.chain_index_auth_seq_id.get(i);return a.has(A)?a.get(A):-1}!function(e){function r(e,t){return"".concat(t,"/").concat(e.toLowerCase())}function n(e,t){var r=a.PropertyWrapper.createInfo(),n=function(e,t){for(var r=[],n=[],A=new Map,a=["Pfam","InterPro","CATH","SCOP"],o=0,s=Object.keys(t);o<s.length;o++){var c=s[o];if(-1!==a.indexOf(c)){var l=[];r.push(c);for(var d=t[c],B=0,f=Object.keys(d);B<f.length;B++)for(var I=d[f[B]],p=0,Q=I.mappings;p<Q.length;p++){var h=Q[p];(0,u.arraySetAdd)(l,I.identifier);for(var m=e.atomicHierarchy.index.map,E=h.start.residue_number;E<=h.end.residue_number;E++){var C=E,y=g(0,m,h.entity_id+"",h.chain_id,C),v=[I.identifier],b=A.get(y);b&&(b.push(I.identifier),v=b),A.set(y,v)}}n.push(l)}}return{domains:i.IndexedCustomProperty.fromResidueMap(A),domainNames:n,domainTypes:r}}(e,t);return{info:r,data:n}}e.DefaultServerUrl="https://www.ebi.ac.uk/pdbe/api/mappings",e.getEntryUrl=r,e.isApplicable=function(e){return!!e&&i.Model.hasPdbId(e)},e.fromJson=n,e.fromServer=function(e,t,i){return A.__awaiter(this,void 0,void 0,(function(){var a,o,s;return A.__generator(this,(function(A){switch(A.label){case 0:return a=c.Asset.getUrlAsset(e.assetManager,r(t.entryId,i.serverUrl)),[4,e.assetManager.resolve(a,"json").runInContext(e.runtime)];case 1:if(o=A.sent(),!(s=o.data[t.entryId.toLowerCase()]))throw new Error("missing data");return[2,{value:n(t,s),assets:[o]}]}}))}))};var o=[];e.getDomains=function(e){if(!i.Unit.isAtomic(e.unit))return o;var r=t.DomainAnnotationsProvider.get(e.unit.model).value;if(!r||!r.data)return o;var n=e.unit.residueIndex[e.element];return r.data.domains.has(n)?r.data.domains.get(n):o},e.getDomainTypes=function(e){if(!e)return o;var r=t.DomainAnnotationsProvider.get(e.models[0]).value;return r&&r.data?r.data.domainTypes:o},e.getDomainNames=function(e){if(!e)return o;var r=t.DomainAnnotationsProvider.get(e.models[0]).value;return r&&r.data?r.data.domainNames:o}}(n||(n={})),t.DomainAnnotations=n,t.DomainAnnotationsParams={serverUrl:s.ParamDefinition.Text(n.DefaultServerUrl,{description:"JSON API Server URL"})},t.DomainAnnotationsProvider=o.CustomModelProperty.createProvider({label:"Domain annotations",descriptor:(0,l.CustomPropertyDescriptor)({name:"domain_annotations"}),type:"static",defaultParams:t.DomainAnnotationsParams,getParams:function(e){return t.DomainAnnotationsParams},isApplicable:function(e){return n.isApplicable(e)},obtain:function(e,r,i){return A.__awaiter(void 0,void 0,void 0,(function(){var a;return A.__generator(this,(function(o){switch(o.label){case 0:return a=A.__assign(A.__assign({},s.ParamDefinition.getDefaultValues(t.DomainAnnotationsParams)),i),[4,n.fromServer(e,r,a)];case 1:return[2,o.sent()]}}))}))}})},4013:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ModelInfo=t.QueryHelper=t.LigandView=t.AlphafoldView=t.PDBeVolumes=void 0;var n,A,i,a=r(70655),o=r(24522),s=r(91969),u=r(14880),c=r(1902),l=r(66027),g=r(31309),d=r(1902),B=r(59924),f=r(34054),I=r(57228);(i=t.PDBeVolumes||(t.PDBeVolumes={})).mapParams=function(e,t,r){var n=a.__assign({},e);return n.options.behaviorRef="volume-streaming"+Math.floor(Math.random()*Math.floor(100)),n.options.emContourProvider="pdbe",n.options.serverUrl="https://www.ebi.ac.uk/pdbe/volume-server",n.options.channelParams.em={opacity:t&&t.em&&t.em.opacity?t.em.opacity:.49,wireframe:!!(t&&t.em&&t.em.wireframe)&&t.em.wireframe},n.options.channelParams["2fo-fc"]={opacity:t&&t["2fo-fc"]&&t["2fo-fc"].opacity?t["2fo-fc"].opacity:.49,wireframe:!!(t&&t["2fo-fc"]&&t["2fo-fc"].wireframe)&&t["2fo-fc"].wireframe},n.options.channelParams["fo-fc(+ve)"]={opacity:t&&t["fo-fc(+ve)"]&&t["fo-fc(+ve)"].opacity?t["fo-fc(+ve)"].opacity:.3,wireframe:!(t&&t["fo-fc(+ve)"]&&t["fo-fc(+ve)"].wireframe)||t["fo-fc(+ve)"].wireframe},n.options.channelParams["fo-fc(-ve)"]={opacity:t&&t["fo-fc(-ve)"]&&t["fo-fc(-ve)"].opacity?t["fo-fc(-ve)"].opacity:.3,wireframe:!(t&&t["fo-fc(-ve)"]&&t["fo-fc(-ve)"].wireframe)||t["fo-fc(-ve)"].wireframe},n},i.displayUsibilityMessage=function(e){o.PluginCommands.Toast.Show(e,{title:"Volume",message:"Streaming enabled, click on a residue or an atom to view the data.",key:"toast-1",timeoutMs:7e3})},i.toggle=function(e){var t=e.state.data,r=t.select(u.StateSelection.Generators.ofTransformer(l.CreateVolumeStreamingInfo))[0];r&&o.PluginCommands.State.ToggleVisibility(e,{state:t,ref:r.transform.ref})},(t.AlphafoldView||(t.AlphafoldView={})).getLociByPLDDT=function(e,t){var r=s.MolScriptBuilder.struct.modifier.union([s.MolScriptBuilder.struct.modifier.wholeResidues([s.MolScriptBuilder.struct.modifier.union([s.MolScriptBuilder.struct.generator.atomGroups({"chain-test":s.MolScriptBuilder.core.rel.eq([s.MolScriptBuilder.ammp("objectPrimitive"),"atomistic"]),"residue-test":s.MolScriptBuilder.core.rel.gr([I.QualityAssessment.symbols.pLDDT.symbol(),e])})])])]),n=(0,g.compile)(r)(new c.QueryContext(t));return c.StructureSelection.toLociWithSourceUnits(n)},(A=t.LigandView||(t.LigandView={})).query=function(e){var t,r={"group-by":s.MolScriptBuilder.core.str.concat([s.MolScriptBuilder.struct.atomProperty.core.operatorName(),s.MolScriptBuilder.struct.atomProperty.macromolecular.residueKey()])};e.auth_seq_id?t=s.MolScriptBuilder.core.rel.eq([s.MolScriptBuilder.struct.atomProperty.macromolecular.auth_seq_id(),e.auth_seq_id]):e.label_comp_id&&(t=s.MolScriptBuilder.core.rel.eq([s.MolScriptBuilder.struct.atomProperty.macromolecular.label_comp_id(),e.label_comp_id])),t&&(r["residue-test"]=t),e.auth_asym_id?r["chain-test"]=s.MolScriptBuilder.core.rel.eq([s.MolScriptBuilder.struct.atomProperty.macromolecular.auth_asym_id(),e.auth_asym_id]):e.struct_asym_id&&(r["chain-test"]=s.MolScriptBuilder.core.rel.eq([s.MolScriptBuilder.struct.atomProperty.macromolecular.label_asym_id(),e.struct_asym_id]));var n=e.show_all?s.MolScriptBuilder.struct.generator.atomGroups(r):s.MolScriptBuilder.struct.filter.first([s.MolScriptBuilder.struct.generator.atomGroups(r)]);return{core:n,surroundings:s.MolScriptBuilder.struct.modifier.includeSurroundings({0:n,radius:5,"as-whole-residues":!0})}},A.branchedQuery=function(e){var t=[];e.atom_site.forEach((function(e){var r={"group-by":s.MolScriptBuilder.core.str.concat([s.MolScriptBuilder.struct.atomProperty.core.operatorName(),s.MolScriptBuilder.struct.atomProperty.macromolecular.residueKey()]),"residue-test":s.MolScriptBuilder.core.rel.eq([s.MolScriptBuilder.struct.atomProperty.macromolecular.auth_seq_id(),e.auth_seq_id])};t.push(r)}));var r=[];t.forEach((function(e){r.push(s.MolScriptBuilder.struct.generator.atomGroups(e))}));var n=s.MolScriptBuilder.struct.modifier.union([1===r.length?r[0]:s.MolScriptBuilder.struct.combinator.merge(r.map((function(e){return s.MolScriptBuilder.struct.modifier.union([e])})))]);return{core:n,surroundings:s.MolScriptBuilder.struct.modifier.includeSurroundings({0:n,radius:5,"as-whole-residues":!0})}},(n=t.QueryHelper||(t.QueryHelper={})).getQueryObject=function(e,t){var r,n,A=[];e.forEach((function(e){var i={};e.entity_id&&(i.entityTest=function(t){return c.StructureProperties.entity.id(t.element)===e.entity_id}),e.struct_asym_id?i.chainTest=function(t){return c.StructureProperties.chain.label_asym_id(t.element)===e.struct_asym_id}:e.auth_asym_id&&(i.chainTest=function(t){return c.StructureProperties.chain.auth_asym_id(t.element)===e.auth_asym_id}),e.label_comp_id?i.residueTest=function(t){return c.StructureProperties.atom.label_comp_id(t.element)===e.label_comp_id}:e.uniprot_accession&&e.uniprot_residue_number?i.residueTest=function(A){r&&n===e.uniprot_accession||(r=B.SIFTSMapping.Provider.get(t.models[0]).value,n=e.uniprot_accession);var i=c.StructureProperties.residue.key(A.element);return e.uniprot_accession===r.accession[i]&&e.uniprot_residue_number===+r.num[i]}:e.uniprot_accession&&e.start_uniprot_residue_number&&e.end_uniprot_residue_number?i.residueTest=function(A){r&&n===e.uniprot_accession||(r=B.SIFTSMapping.Provider.get(t.models[0]).value,n=e.uniprot_accession);var i=c.StructureProperties.residue.key(A.element);return e.uniprot_accession===r.accession[i]&&e.start_uniprot_residue_number<=+r.num[i]&&e.end_uniprot_residue_number>=+r.num[i]}:e.residue_number?i.residueTest=function(t){return c.StructureProperties.residue.label_seq_id(t.element)===e.residue_number}:e.start_residue_number&&e.end_residue_number&&e.end_residue_number>e.start_residue_number?i.residueTest=function(t){var r=c.StructureProperties.residue.label_seq_id(t.element);return r>=e.start_residue_number&&r<=e.end_residue_number}:e.start_residue_number&&e.end_residue_number&&e.end_residue_number===e.start_residue_number?i.residueTest=function(t){return c.StructureProperties.residue.label_seq_id(t.element)===e.start_residue_number}:e.auth_seq_id?i.residueTest=function(t){return c.StructureProperties.residue.auth_seq_id(t.element)===e.auth_seq_id}:e.auth_residue_number&&!e.auth_ins_code_id||e.auth_residue_number&&e.auth_ins_code_id?i.residueTest=function(t){return c.StructureProperties.residue.auth_seq_id(t.element)===e.auth_residue_number}:e.start_auth_residue_number&&e.end_auth_residue_number&&e.end_auth_residue_number>e.start_auth_residue_number?i.residueTest=function(t){var r=c.StructureProperties.residue.auth_seq_id(t.element);return r>=e.start_auth_residue_number&&r<=e.end_auth_residue_number}:e.start_auth_residue_number&&e.end_auth_residue_number&&e.end_auth_residue_number===e.start_auth_residue_number&&(i.residueTest=function(t){return c.StructureProperties.residue.auth_seq_id(t.element)===e.start_auth_residue_number}),e.atoms&&(i.atomTest=function(t){return e.atoms.includes(c.StructureProperties.atom.label_atom_id(t.element))}),e.atom_id&&(i.atomTest=function(t){return e.atom_id.includes(c.StructureProperties.atom.id(t.element))}),A.push(i)}));var i=[];return A.forEach((function(e){i.push(d.Queries.generators.atoms(e))})),d.Queries.combinators.merge(i)},n.getInteractivityLoci=function(e,t){var r=f.StructureQuery.run(n.getQueryObject(e,t),t);return c.StructureSelection.toLociWithSourceUnits(r)},n.getHetLoci=function(e,t){var r=(0,g.compile)(e)(new c.QueryContext(t));return c.StructureSelection.toLociWithSourceUnits(r)},(t.ModelInfo||(t.ModelInfo={})).get=function(e,t){return a.__awaiter(this,void 0,void 0,(function(){var t,r,n,A,i,o,s,u,c,l;return a.__generator(this,(function(a){for(t=e.atomicHierarchy.residues._rowCount,r=e.atomicHierarchy.residueAtomSegments.offsets,n=e.atomicHierarchy.chainAtomSegments.index,A=[],i=0,o=0;o<t;o++)s=n[r[o]],u=e.atomicHierarchy.index.getEntityFromChain(s),"non-polymer"!==(c=e.entities.data.type.value(u))&&"branched"!==c||(l=e.atomicHierarchy.atoms.label_comp_id.value(r[o]),"branched"===c?i++:-1===A.indexOf(l)&&A.push(l));return[2,{hetNames:A,carbEntityCount:i}]}))}))}},6435:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.PDBeLociLabelProvider=void 0;var n=r(71314),A=r(1902),i=r(97510);t.PDBeLociLabelProvider=n.PluginBehavior.create({name:"pdbe-loci-label-provider",category:"interaction",ctor:function(){function e(e){var t=this;this.ctx=e,this.f={label:function(e){var r=t.ctx.customState,n=!(!r||!r.initParams.superposition),a=[];if(!n&&A.StructureElement.Loci.is(e)&&1===e.elements.length){for(var o=new Set,s=0,u=e.elements;s<u.length;s++){var c=u[s].unit,l=A.StructureElement.Location.create(e.structure,c,c.elements[0]),g=A.StructureProperties.entity.pdbx_description(l).join(", ");o.add(g)}1===o.size&&o.forEach((function(e){return a.push(e)}))}return a.push((0,i.lociLabel)(e)),a.filter((function(e){return!!e})).join("</br>")},group:function(e){return e.toString().replace(/Model [0-9]+/g,"Models")},priority:100}}return e.prototype.register=function(){this.ctx.managers.lociLabels.addProvider(this.f)},e.prototype.unregister=function(){this.ctx.managers.lociLabels.removeProvider(this.f)},e}(),display:{name:"Provide PDBe Loci Label"}})},93541:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t._bundleLabel=t.bondLabel=t.lociDetails=void 0;var n=r(70655),A=r(1902),i=r(33219),a=r(52801);function o(e){switch(e.kind){case"structure-loci":return{models:e.structure.models.map((function(e){return e.entry})).filter((function(e){return!!e}))};case"element-loci":return n=(r=A.StructureElement.Stats.ofLoci(e)).chainCount,i=r.residueCount,1===(a=r.elementCount)&&0===i&&0===n?s(r.firstElementLoc,"element"):0===a&&1===i&&0===n?s(r.firstResidueLoc,"residue"):void 0;case"bond-loci":var t=e.bonds[0];return t?u(t,"element"):"";default:return}var r,n,i,a}function s(e,t){void 0===t&&(t="element");var r,i={},o=e.unit.model.entry;return o.length>30&&(o=o.substr(0,27)+"…"),i.entry_id=o,"structure"!==t&&(i.model=e.unit.model.modelNum,i.instance=e.unit.conformation.operator.name),A.Unit.isAtomic(e.unit)?r=function(e,t){var r={entity_id:A.StructureProperties.chain.label_entity_id(e),label_asym_id:A.StructureProperties.chain.label_asym_id(e),auth_asym_id:A.StructureProperties.chain.auth_asym_id(e),unp_accession:void 0,unp_seq_id:void 0,seq_id:A.StructureProperties.residue.label_seq_id(e),auth_seq_id:A.StructureProperties.residue.auth_seq_id(e),ins_code:A.StructureProperties.residue.pdbx_PDB_ins_code(e),comp_id:A.StructureProperties.atom.label_comp_id(e),atom_id:[A.StructureProperties.atom.label_atom_id(e)],alt_id:A.StructureProperties.atom.label_alt_id(e)},n=a.SIFTSMapping.getLabel(e);if(n){var i=n.split(" ");"UNP"===i[0]&&(r.unp_accession=i[1],r.unp_seq_id=+i[2])}var o=A.StructureProperties.residue.microheterogeneityCompIds(e);return r.micro_het_comp_ids="residue"===t&&o.length>1?o:[r.comp_id],r}(e,t):A.Unit.isCoarse(e.unit)&&(r=function(e,t){var r={asym_id:A.StructureProperties.coarse.asym_id(e),seq_id_begin:A.StructureProperties.coarse.seq_id_begin(e),seq_id_end:A.StructureProperties.coarse.seq_id_end(e)};if("residue"===t&&r.seq_id_begin===r.seq_id_end){var n=A.StructureProperties.coarse.entityKey(e),i=e.unit.model.sequence.byEntityKey[n];r.comp_id=i.sequence.compId.value(r.seq_id_begin-1)}return r}(e,t)),n.__assign(n.__assign({},i),r)}function u(e,t){return c({loci:[A.StructureElement.Loci(e.aStructure,[{unit:e.aUnit,indices:i.OrderedSet.ofSingleton(e.aIndex)}]),A.StructureElement.Loci(e.bStructure,[{unit:e.bUnit,indices:i.OrderedSet.ofSingleton(e.bIndex)}])]},t)}function c(e,t){for(var r=!0,n=0,a=e.loci;n<a.length;n++){var u=a[n];if(!A.StructureElement.Loci.is(u)||1!==A.StructureElement.Loci.size(u)){r=!1;break}}if(r){var c=e.loci.map((function(e){var t=e.elements[0],r=t.unit,n=t.indices;return A.StructureElement.Location.create(e.structure,r,r.elements[i.OrderedSet.start(n)])})),l=c.map((function(e){return s(e,t)})),g=[l[0].atom_id[0],l[1].atom_id[0]];return(d=l[0]).atom_id=g,d}var d=e.loci.map((function(e){return o(e)}));return d}t.lociDetails=o,t.bondLabel=u,t._bundleLabel=c},59924:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SIFTSMapping=void 0;var n,A=r(70655),i=r(13231),a=r(42711),o=r(42194);!function(e){var t=this;function r(e){if(!i.MmcifFormat.is(e.sourceData))return!1;var t=e.sourceData.data.db.atom_site,r=t.pdbx_sifts_xref_db_name,n=t.pdbx_sifts_xref_db_acc,A=t.pdbx_sifts_xref_db_num,a=t.pdbx_sifts_xref_db_res;return r.isDefined&&n.isDefined&&A.isDefined&&a.isDefined}function n(e){if(i.MmcifFormat.is(e.sourceData)){var t=e.sourceData.data.db.atom_site,r=t.pdbx_sifts_xref_db_name,n=t.pdbx_sifts_xref_db_acc,A=t.pdbx_sifts_xref_db_num,a=t.pdbx_sifts_xref_db_res;if(r.isDefined&&n.isDefined&&A.isDefined&&a.isDefined){for(var o=e.atomicHierarchy.atomSourceIndex,s=e.atomicHierarchy.residueAtomSegments,u=s.count,c=s.offsets,l=new Array(u),g=new Array(u),d=new Array(u),B=new Array(u),f=0;f<u;f++){var I=o.value(c[f]);0===r.valueKind(I)?(l[f]=r.value(I),g[f]=n.value(I),d[f]=A.value(I),B[f]=a.value(I)):(l[f]="",g[f]="",d[f]="",B[f]="")}return{dbName:l,accession:g,num:d,residue:B}}}}e.Provider=o.CustomModelProperty.createProvider({label:"SIFTS Mapping",descriptor:(0,a.CustomPropertyDescriptor)({name:"sifts_sequence_mapping"}),type:"static",defaultParams:{},getParams:function(){return{}},isApplicable:function(e){return r(e)},obtain:function(e,r){return A.__awaiter(t,void 0,void 0,(function(){return A.__generator(this,(function(e){return[2,{value:n(r)}]}))}))}}),e.isAvailable=r,e.getKey=function(t){var r=t.unit.model,n=e.Provider.get(r).value;if(!n)return"";var A=r.atomicHierarchy.residueAtomSegments.index[t.element];return n.accession[A]},e.getLabel=function(t){var r=t.unit.model,n=e.Provider.get(r).value;if(n){var A=r.atomicHierarchy.residueAtomSegments.index[t.element],i=n.dbName[A];if(i)return"".concat(i," ").concat(n.accession[A]," ").concat(n.num[A]," ").concat(n.residue[A])}}}(n||(n={})),t.SIFTSMapping=n},95736:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.PDBeSIFTSMapping=void 0;var n=r(70655),A=r(33219),i=r(59924),a=r(91793),o=r(1902),s=r(48774),u=r(71314);function c(e){if("element-loci"===e.kind){if(0===e.elements.length)return;var t=e.elements[0],r=t.unit,n=o.StructureElement.Location.create(e.structure,r,r.elements[A.OrderedSet.getAt(t.indices,0)]);return i.SIFTSMapping.getLabel(n)}}t.PDBeSIFTSMapping=u.PluginBehavior.create({name:"pdbe-sifts-mapping-prop",category:"custom-props",display:{name:"PDBe SIFTS Mapping"},ctor:function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.provider=i.SIFTSMapping.Provider,t.labelProvider={label:function(e){if(t.params.showTooltip)return c(e)}},t}return n.__extends(t,e),t.prototype.update=function(e){var t=this.params.autoAttach!==e.autoAttach||this.params.showTooltip!==e.showTooltip;return this.params.autoAttach=e.autoAttach,this.params.showTooltip=e.showTooltip,this.ctx.customStructureProperties.setDefaultAutoAttach(this.provider.descriptor.name,this.params.autoAttach),t},t.prototype.register=function(){this.ctx.customModelProperties.register(this.provider,this.params.autoAttach),this.ctx.representation.structure.themes.colorThemeRegistry.add(a.SIFTSMappingColorThemeProvider),this.ctx.managers.lociLabels.addProvider(this.labelProvider)},t.prototype.unregister=function(){this.ctx.customModelProperties.unregister(this.provider.descriptor.name),this.ctx.representation.structure.themes.colorThemeRegistry.remove(a.SIFTSMappingColorThemeProvider),this.ctx.managers.lociLabels.removeProvider(this.labelProvider)},t}(u.PluginBehavior.Handler),params:function(){return{autoAttach:s.ParamDefinition.Boolean(!0),showTooltip:s.ParamDefinition.Boolean(!0)}}})},35465:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DefaultParams=t.createPluginUI=t.DefaultPluginUISpec=t.DefaultPluginSpec=void 0;var n=r(70655),A=n.__importStar(r(67294)),i=n.__importStar(r(73935)),a=r(93985),o=r(7765),s=r(71314),u=r(66027),c=r(17255),l=r(87735),g=r(69785),d=r(5025),B=r(6435),f=r(95736);t.DefaultPluginSpec=function(){return{actions:[l.PluginSpec.Action(d.StateActions.Structure.EnableStructureCustomProps)],behaviors:[l.PluginSpec.Behavior(s.PluginBehaviors.Representation.HighlightLoci),l.PluginSpec.Behavior(s.PluginBehaviors.Representation.SelectLoci),l.PluginSpec.Behavior(B.PDBeLociLabelProvider),l.PluginSpec.Behavior(s.PluginBehaviors.Representation.FocusLoci),l.PluginSpec.Behavior(s.PluginBehaviors.Camera.FocusLoci),l.PluginSpec.Behavior(s.PluginBehaviors.Camera.CameraAxisHelper),l.PluginSpec.Behavior(s.PluginBehaviors.CustomProps.StructureInfo),l.PluginSpec.Behavior(s.PluginBehaviors.CustomProps.AccessibleSurfaceArea),l.PluginSpec.Behavior(f.PDBeSIFTSMapping,{autoAttach:!0,showTooltip:!0}),l.PluginSpec.Behavior(s.PluginBehaviors.CustomProps.Interactions),l.PluginSpec.Behavior(s.PluginBehaviors.CustomProps.SecondaryStructure),l.PluginSpec.Behavior(s.PluginBehaviors.CustomProps.ValenceModel),l.PluginSpec.Behavior(s.PluginBehaviors.CustomProps.CrossLinkRestraint)],config:[[g.PluginConfig.VolumeStreaming.DefaultServer,"https://www.ebi.ac.uk/pdbe/volume-server"]]}},t.DefaultPluginUISpec=function(){return n.__assign(n.__assign({},(0,t.DefaultPluginSpec)()),{customParamEditors:[[u.CreateVolumeStreamingBehavior,a.VolumeStreamingCustomControls]]})},t.createPluginUI=function(e,r,a){return n.__awaiter(this,void 0,void 0,(function(){var s;return n.__generator(this,(function(n){switch(n.label){case 0:return[4,(s=new c.PluginUIContext(r||(0,t.DefaultPluginUISpec)())).init()];case 1:return n.sent(),(null==a?void 0:a.onBeforeUIRender)?[4,a.onBeforeUIRender(s)]:[3,3];case 2:n.sent(),n.label=3;case 3:return i.render(A.createElement(o.Plugin,{plugin:s}),e),[2,s]}}))}))},t.DefaultParams={moleculeId:void 0,superposition:void 0,superpositionParams:void 0,customData:void 0,ligandView:void 0,assemblyId:void 0,visualStyle:void 0,highlightColor:void 0,selectColor:void 0,hideStructure:void 0,hideCanvasControls:void 0,granularity:void 0,selection:void 0,mapSettings:void 0,selectBindings:void 0,focusBindings:void 0,defaultPreset:"default",pdbeUrl:"https://www.ebi.ac.uk/pdbe/",bgColor:{r:0,g:0,b:0},lighting:void 0,encoding:"bcif",selectInteraction:!0,loadMaps:!1,validationAnnotation:!1,domainAnnotation:!1,lowPrecisionCoords:!1,expanded:!1,hideControls:!1,pdbeLink:!0,loadCartoonsOnly:!1,landscape:!1,reactive:!1,subscribeEvents:!1,alphafoldView:!1,sequencePanel:!1}},86615:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.subscribeToComponentEvents=void 0,t.subscribeToComponentEvents=function(e){document.addEventListener("PDB.interactions.click",(function(t){if(void 0!==t.detail){var r=t.detail.interacting_nodes?{data:t.detail.interacting_nodes}:{data:[t.detail.selected_node]};r.data[0].focus=!0,e.visual.select(r)}})),document.addEventListener("PDB.interactions.mouseover",(function(t){if(void 0!==t.detail){var r=t.detail.interacting_nodes?{data:t.detail.interacting_nodes}:{data:[t.detail.selected_node]};e.visual.highlight(r)}})),document.addEventListener("PDB.interactions.mouseout",(function(t){e.visual.clearHighlight()})),document.addEventListener("PDB.topologyViewer.click",(function(t){if(void 0!==t.eventData){var r={entity_id:t.eventData.entityId,struct_asym_id:t.eventData.structAsymId,start_residue_number:t.eventData.residueNumber,end_residue_number:t.eventData.residueNumber,sideChain:!0,focus:!0};e.visual.select({data:[r]})}})),document.addEventListener("PDB.topologyViewer.mouseover",(function(t){if(void 0!==t.eventData){var r={entity_id:t.eventData.entityId,struct_asym_id:t.eventData.structAsymId,start_residue_number:t.eventData.residueNumber,end_residue_number:t.eventData.residueNumber};e.visual.highlight({data:[r]})}})),document.addEventListener("PDB.topologyViewer.mouseout",(function(t){e.visual.clearHighlight()})),document.addEventListener("protvista-mouseover",(function(t){if(void 0!==t.detail){var r=void 0;t.detail.start&&t.detail.end&&(r={start_residue_number:parseInt(t.detail.start),end_residue_number:parseInt(t.detail.end)}),t.detail.feature&&t.detail.feature.entityId&&(r.entity_id=t.detail.feature.entityId+""),t.detail.feature&&t.detail.feature.bestChainId&&(r.struct_asym_id=t.detail.feature.bestChainId),t.detail.feature&&t.detail.feature.chainId&&(r.struct_asym_id=t.detail.feature.chainId),r&&e.visual.highlight({data:[r]})}})),document.addEventListener("protvista-mouseout",(function(t){e.visual.clearHighlight()})),document.addEventListener("protvista-click",(function(t){if(void 0!==t.detail){var r=!1,n=void 0;if(t.detail.start&&t.detail.end&&(n={start_residue_number:parseInt(t.detail.start),end_residue_number:parseInt(t.detail.end)}),t.detail.feature&&t.detail.feature.entityId&&(n.entity_id=t.detail.feature.entityId+""),t.detail.feature&&t.detail.feature.bestChainId&&(n.struct_asym_id=t.detail.feature.bestChainId),t.detail.feature&&t.detail.feature.chainId&&(n.struct_asym_id=t.detail.feature.chainId),(t.detail.feature&&t.detail.feature.accession&&"Chain"===t.detail.feature.accession.split(" ")[0]||"Ligand binding site"===t.detail.feature.tooltipContent)&&(r=!0),t.detail.start===t.detail.end&&(r=!0),n){if(r)n.sideChain=!0;else{var A=void 0;if(t.detail.trackIndex>-1&&t.detail.feature.locations&&t.detail.feature.locations[0].fragments[t.detail.trackIndex].color&&(A=t.detail.feature.locations[0].fragments[t.detail.trackIndex].color),void 0===A&&t.detail.feature.color&&(A=t.detail.feature.color),void 0===A&&t.detail.color&&(A=t.detail.color),void 0===A)A={r:65,g:96,b:91};else if(/rgb/g.test(A)){var i=A.substring(4,A.length-1).split(",");A={r:i[0],g:i[1],b:i[2]}}n.color=A}n.focus=!0,e.visual.select({data:[n]})}}}));var t=["uniprot","pfam","cath","scop","strand","helice"],r=["chain","quality","quality_outlier","binding site","alternate conformer"];document.addEventListener("PDB.seqViewer.click",(function(n){if(void 0!==n.eventData)if(void 0!==n.eventData.elementData&&r.indexOf(n.eventData.elementData.elementType)>-1){var A={entity_id:n.eventData.entityId,struct_asym_id:n.eventData.elementData.pathData.struct_asym_id,start_residue_number:n.eventData.residueNumber,end_residue_number:n.eventData.residueNumber,sideChain:!0,focus:!0};e.visual.select({data:[A]})}else if(void 0!==n.eventData.elementData&&t.indexOf(n.eventData.elementData.elementType)>-1){var i=n.eventData.elementData.color;A={entity_id:n.eventData.entityId,struct_asym_id:n.eventData.elementData.pathData.struct_asym_id,start_residue_number:n.eventData.elementData.pathData.start.residue_number,end_residue_number:n.eventData.elementData.pathData.end.residue_number,color:{r:i[0],g:i[1],b:i[2]},focus:!0},e.visual.select({data:[A]})}})),document.addEventListener("PDB.seqViewer.mouseover",(function(n){if(void 0!==n.eventData)if(void 0!==n.eventData.elementData&&r.indexOf(n.eventData.elementData.elementType)>-1){var A={entity_id:n.eventData.entityId,struct_asym_id:n.eventData.elementData.pathData.struct_asym_id,start_residue_number:n.eventData.residueNumber,end_residue_number:n.eventData.residueNumber,focus:!0};e.visual.select({data:[A]})}else void 0!==n.eventData.elementData&&t.indexOf(n.eventData.elementData.elementType)>-1&&(A={entity_id:n.eventData.entityId,struct_asym_id:n.eventData.elementData.pathData.struct_asym_id,start_residue_number:n.eventData.elementData.pathData.start.residue_number,end_residue_number:n.eventData.elementData.pathData.end.residue_number},e.visual.highlight({data:[A]}))})),document.addEventListener("PDB.seqViewer.mouseout",(function(t){e.visual.clearHighlight()}))}},2590:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.superpositionExportHierarchy=void 0;var n=r(70655),A=r(46235),i=r(1902),a=r(81601),o=r(6806),s=r(27109),u=r(12261),c=r(24522);function l(e,t){var r=this;return a.Task.create("Export",(function(a){return n.__awaiter(r,void 0,void 0,(function(){var r,l,g,d,B,f,I,p,Q,h,m,E,C,y,v,b,D,S,w,_,F,x,U,N,L,G,R,M,k,H,P,V,Y;return n.__generator(this,(function(n){switch(n.label){case 0:return[4,a.update({message:"Exporting...",isIndeterminate:!0,canAbort:!1})];case 1:n.sent(),r=null!==(G=null==t?void 0:t.format)&&void 0!==G?G:"cif",l=e.customState,g=l.superpositionState,d=g.activeSegment-1,B=[],f=new Map,I=g.loadedStructs[d].slice(),g.alphafold.ref&&I.push("AF-".concat(l.initParams.moleculeId)),p=0,Q=I,n.label=2;case 2:if(!(p<Q.length))return[3,7];if(h=Q[p],!(m=g.models[h]))return[3,6];for(E=!1,(C=e.managers.structure.hierarchy.current.refs.get(m)).cell.state.isHidden&&(E=!0),y=0,v=C.components;y<v.length;y++)v[y].cell.state.isHidden&&(E=!0);return E?[3,6]:(b=null!==(k=null===(M=null===(R=C.transform)||void 0===R?void 0:R.cell.obj)||void 0===M?void 0:M.data)&&void 0!==k?k:null===(H=C.cell.obj)||void 0===H?void 0:H.data)?b.models.length>1?(e.log.warn("[Export] Skipping ".concat(null===(P=C.cell.obj)||void 0===P?void 0:P.label,": Multimodel exports not supported.")),[3,6]):b.units.some((function(e){return!i.Unit.isAtomic(e)}))?(e.log.warn("[Export] Skipping ".concat(null===(V=C.cell.obj)||void 0===V?void 0:V.label,": Non-atomic model exports not supported.")),[3,6]):(D=f.has(b.model.entryId)?"".concat(b.model.entryId,"_").concat(f.get(b.model.entryId)+1,".").concat(r):"".concat(b.model.entryId,".").concat(r),f.set(b.model.entryId,(null!==(Y=f.get(b.model.entryId))&&void 0!==Y?Y:0)+1),[4,a.update({message:"Exporting ".concat(b.model.entryId,"..."),isIndeterminate:!0,canAbort:!1})]):[3,6];case 3:return n.sent(),b.elementCount>1e5?[4,new Promise((function(e){return setTimeout(e,50)}))]:[3,5];case 4:n.sent(),n.label=5;case 5:try{B.push([D,(0,i.to_mmCIF)(b.model.entryId,b,"bcif"===r,{copyAllCategories:!0})])}catch(t){throw"cif"===r&&b.elementCount>2e6&&e.log.warn("[Export] The structure might be too big to be exported as Text CIF, consider using the BinaryCIF format instead."),t}n.label=6;case 6:return p++,[3,2];case 7:return 0===B.length?(c.PluginCommands.Toast.Show(e,{title:"Export Models",message:"No visible structure in the 3D view to export!",key:"superposition-toast-1",timeoutMs:7e3}),[2]):1!==B.length?[3,8]:((0,s.download)(new Blob([B[0][1]]),B[0][0]),[3,11]);case 8:if(!(B.length>1))return[3,11];for(S={},w=0,_=B;w<_.length;w++)F=_[w],x=F[0],(U=F[1])instanceof Uint8Array?S[x]=U:(N=new Uint8Array((0,A.utf8ByteCount)(U)),(0,A.utf8Write)(N,0,U),S[x]=N);return[4,a.update({message:"Compressing Data...",isIndeterminate:!0,canAbort:!1})];case 9:return n.sent(),[4,(0,u.zip)(a,S)];case 10:L=n.sent(),(0,s.download)(new Blob([new Uint8Array(L,0,L.byteLength)]),"structures_".concat((0,o.getFormattedTime)(),".zip")),n.label=11;case 11:return e.log.info("[Export] Done."),[2]}}))}))}))}t.superpositionExportHierarchy=function(e,t){return n.__awaiter(this,void 0,void 0,(function(){var r;return n.__generator(this,(function(n){switch(n.label){case 0:return n.trys.push([0,2,,3]),[4,e.runTask(l(e,t),{useOverlay:!0})];case 1:return n.sent(),[3,3];case 2:return r=n.sent(),console.error(r),e.log.error("Model export failed. See console for details."),[3,3];case 3:return[2]}}))}))}},42002:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SuperpositionFocusRepresentation=t.SuperpositionFocusRepresentationTags=void 0;var n,A=r(70655),i=r(1902),a=r(32838),o=r(91439),s=r(71314),u=r(91969),c=r(14880),l=r(48774),g=r(24522),d=r(93541);!function(e){e.SurrSel="superposition-focus-surr-sel",e.SurrRepr="superposition-focus-surr-repr"}(n=t.SuperpositionFocusRepresentationTags||(t.SuperpositionFocusRepresentationTags={}));var B=new Set([n.SurrSel,n.SurrRepr]),f=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return A.__extends(t,e),Object.defineProperty(t.prototype,"surrLabel",{get:function(){return"[Focus] Surroundings (".concat(this.params.expandRadius," Å)")},enumerable:!1,configurable:!0}),t.prototype.ensureShape=function(e){var t=this.plugin.state.data,r=t.tree,A=t.build(),i=c.StateSelection.findUniqueTagsInSubtree(r,e.transform.ref,B);return i[n.SurrSel]||(i[n.SurrSel]=A.to(e).apply(o.StateTransforms.Model.StructureSelectionFromExpression,{expression:u.MolScriptBuilder.struct.generator.empty(),label:this.surrLabel},{tags:n.SurrSel}).ref),i[n.SurrRepr]||(i[n.SurrRepr]=A.to(i[n.SurrSel]).apply(o.StateTransforms.Representation.StructureRepresentation3D,this.params.surroundingsParams,{tags:n.SurrRepr}).ref),{state:t,builder:A,refs:i}},t.prototype.clear=function(e){var t=this.plugin.state.data,r=t.select(c.StateSelection.Generators.byRef(e).subtree().withTag(n.SurrSel));if(0!==r.length){for(var i=t.build(),a=u.MolScriptBuilder.struct.generator.empty(),s=0,l=r;s<l.length;s++){var d=l[s];i.to(d).update(o.StateTransforms.Model.StructureSelectionFromExpression,(function(e){return A.__assign(A.__assign({},e),{expression:a})}))}return g.PluginCommands.State.Update(this.plugin,{state:t,tree:i,options:{doNotLogTiming:!0,doNotUpdateCurrent:!0}})}},t.prototype.focus=function(e){return A.__awaiter(this,void 0,void 0,(function(){var t,r,a,s,c,l,B,f,I,p,Q=this;return A.__generator(this,(function(h){switch(h.label){case 0:return(t=this.plugin.helpers.substructureParent.get(e.structure))&&t.obj?(r=i.StructureElement.Loci.remap(e,t.obj.data),a=i.StructureElement.Loci.extendToWholeResidues(r),s=i.StructureElement.Bundle.fromLoci(a),c=i.StructureElement.Bundle.toExpression(s),l=u.MolScriptBuilder.struct.modifier.includeSurroundings({0:c,radius:this.params.expandRadius,"as-whole-residues":!0}),(0,d.lociDetails)(e)||(l=u.MolScriptBuilder.struct.modifier.exceptBy({0:l,by:c})),B=this.ensureShape(t),f=B.state,I=B.builder,p=B.refs,I.to(p[n.SurrSel]).update(o.StateTransforms.Model.StructureSelectionFromExpression,(function(e){return A.__assign(A.__assign({},e),{expression:l,label:Q.surrLabel})})),[4,g.PluginCommands.State.Update(this.plugin,{state:f,tree:I,options:{doNotLogTiming:!0,doNotUpdateCurrent:!0}})]):[2];case 1:return h.sent(),[2]}}))}))},t.prototype.register=function(e){var t=this;this.subscribeObservable(this.plugin.managers.structure.focus.behaviors.current,(function(e){t.clear(c.StateTransform.RootRef),e&&t.focus(e.loci)}))},t.prototype.update=function(e){return A.__awaiter(this,void 0,void 0,(function(){var t,r,i,a,o,s,u;return A.__generator(this,(function(A){switch(A.label){case 0:for(t=this.params,this.params=e,r=this.plugin.state.data,i=r.build(),a=c.StateSelection.Generators.root.subtree(),o=0,s=r.select(a.withTag(n.SurrRepr));o<s.length;o++)u=s[o],i.to(u).update(this.params.surroundingsParams);return[4,g.PluginCommands.State.Update(this.plugin,{state:r,tree:i,options:{doNotLogTiming:!0,doNotUpdateCurrent:!0}})];case 1:return A.sent(),e.expandRadius===t.expandRadius?[3,3]:[4,this.clear(c.StateTransform.RootRef)];case 2:A.sent(),A.label=3;case 3:return[2,!0]}}))}))},t}(s.PluginBehavior.WithSubscribers);t.SuperpositionFocusRepresentation=s.PluginBehavior.create({name:"create-superposition-focus-representation",display:{name:"Superposition Focus Representation"},category:"interaction",ctor:f,params:function(e,t){return function(e){var t=o.StateTransforms.Representation.StructureRepresentation3D.definition.params(void 0,e);return{expandRadius:l.ParamDefinition.Numeric(5,{min:1,max:10,step:1}),surroundingsParams:l.ParamDefinition.Group(t,{label:"Surroundings",customDefault:(0,a.createStructureRepresentationParams)(e,void 0,{type:"ball-and-stick",size:"physical",typeParams:{sizeFactor:.16},sizeParams:{scale:.3}})})}}(t)}})},10611:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.alignAndSuperposeWithSIFTSMapping=void 0;var n=r(33219),A=r(18939),i=r(59924),a=r(21050);function o(e,t,r,n){for(var i=A.MinimizeRmsd.Positions.empty(n),a=A.MinimizeRmsd.Positions.empty(n),o=0,s=0,u=e;s<u.length;s++){var c=u[s].pivots,l=c[t],g=c[r];if(l&&g)for(var d=Math.min(l[2]-l[1],g[2]-g[1]),B=0;B<d;B++){var f=l[1]+B;i.x[o]=l[0].conformation.x(f),i.y[o]=l[0].conformation.y(f),i.z[o]=l[0].conformation.z(f),f=g[1]+B,a.x[o]=g[0].conformation.x(f),a.y[o]=g[0].conformation.y(f),a.z[o]=g[0].conformation.z(f),o++}}return[i,a]}function s(){return!0}function u(e,t,r,A,o){for(var s,u=a.StructureElement.Location.create(e),c=0,l=e.units;c<l.length;c++){var g=l[c];if(0===g.kind){var d=g.elements,B=g.model;u.unit=g;var f=i.SIFTSMapping.Provider.get(B).value;if(!f)return;for(var I=f.dbName,p=f.accession,Q=f.num,h=n.Segmentation.transientSegments(g.model.atomicHierarchy.chainAtomSegments,d),m=n.Segmentation.transientSegments(g.model.atomicHierarchy.residueAtomSegments,d),E=g.model.atomicHierarchy.derived.residue.traceElementIndex;h.hasNext;){var C=h.move();for(m.setSegment(C);m.hasNext;){var y=m.move(),v=y.index;if(I[v]){var b=E[v],D=void 0,S=void 0;if(A){if(-1===(D=b))continue;S=D+1}else D=d[y.start],S=d[y.end-1]+1;if(u.element=b>=0?b:D,o(u,v,D,S)){var w="".concat(I[v],"-").concat(p[v].split("-")[0],"-").concat(Q[v]);if(t.has(w)){var _=t.get(w);_.pivots[r]||(_.pivots[r]=[g,D,S])}else t.set(w,{key:w,pivots:(s={},s[r]=[g,D,S],s)})}}}}}}}t.alignAndSuperposeWithSIFTSMapping=function(e,t){for(var r,n,i=new Map,a=0;a<e.length;a++){var c=null!==(r=null==t?void 0:t.includeResidueTest)&&void 0!==r?r:s;(null==t?void 0:t.applyTestIndex)&&!t.applyTestIndex.includes(a)&&(c=s),u(e[a],i,a,null===(n=null==t?void 0:t.traceOnly)||void 0===n||n,c)}for(var l=Array.from(i.values()),g=function(e,t){for(var r=[],n=0;n<e;n++){r[n]=[];for(var A=0;A<e;A++)r[n][A]=0}for(var i=0,a=t;i<a.length;i++){var o=a[i].pivots;for(n=0;n<e;n++)if(o[n]){var s=o[n][2]-o[n][1];for(A=n+1;A<e;A++)if(o[A]){var u=o[A][2]-o[A][1];r[n][A]=r[n][A]+Math.min(s,u)}}}var c=[];for(A=1;A<e;A++)c[A-1]={i:0,j:A,count:r[0][A]};return c}(e.length,l),d=[],B=[],f=[],I=0,p=g;I<p.length;I++){var Q=p[I];if(0===Q.count)d.push([Q.i,Q.j]);else{var h=o(l,Q.i,Q.j,Q.count),m=h[0],E=h[1],C=A.MinimizeRmsd.compute({a:m,b:E});Number.isNaN(C.rmsd)?B.push([Q.i,Q.j]):f.push({transform:C,pivot:Q.i,other:Q.j})}}return{entries:f,zeroOverlapPairs:d,failedPairs:B}}},49986:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.renderSuperposition=t.superposeAf=t.loadAfStructure=t.initSuperposition=void 0;var n=r(70655),A=r(22924),i=r(91969),a=r(14880),o=r(91439),s=r(6510),u=r(4013),c=r(80940),l=r(98871),g=r(2980),d=r(81601),B=r(10611),f=r(17543),I=r(1902);function p(e,t){var r=c.ColorLists,n=e.customState.superpositionState,A=n.colorState[t].palleteIndex,i=n.colorState[t].colorIndex;r[n.colorPalette[A]].list[i+1]?i+=1:(i=0,A=n.colorPalette[A+1]?A+1:0);var a=n.colorPalette[A];return e.customState.superpositionState.colorState[t].palleteIndex=A,e.customState.superpositionState.colorState[t].colorIndex=i,r[a].list[i]}function Q(e,t){return n.__awaiter(this,void 0,void 0,(function(){var r,A,i=this;return n.__generator(this,(function(a){switch(a.label){case 0:return[4,e.runTask(d.Task.create("Get AlphaFold URL",(function(a){return n.__awaiter(i,void 0,void 0,(function(){return n.__generator(this,(function(n){switch(n.label){case 0:return n.trys.push([0,2,,3]),[4,e.fetch({url:"https://alphafold.ebi.ac.uk/api/prediction/".concat(t),type:"json"}).runInContext(a)];case 1:return(r=n.sent())&&(null==r?void 0:r[0].bcifUrl)&&(A={cif:null==r?void 0:r[0].cifUrl,pae:null==r?void 0:r[0].paeImageUrl,length:null==r?void 0:r[0].uniprotEnd}),[3,3];case 2:return n.sent(),[3,3];case 3:return[2]}}))}))})))];case 1:return a.sent(),[2,A]}}))}))}function h(e){return n.__awaiter(this,void 0,void 0,(function(){var t,r,A,i,a;return n.__generator(this,(function(n){switch(n.label){case 0:return t=e.customState,[4,C(e,t.superpositionState.alphafold.apiData.cif,"mmcif",!1)];case 1:return r=n.sent().structure,(A=r)?((i=e.customState.superpositionState).alphafold.ref=null==A?void 0:A.ref,i.models["AF-".concat(t.initParams.moleculeId)]=null==A?void 0:A.ref,[4,e.builders.structure.tryCreateComponentStatic(A,"polymer",{label:"AlphaFold Structure",tags:["alphafold-chain","superposition-sel"]})]):[2,!1];case 2:return(a=n.sent())?[4,e.builders.structure.representation.addRepresentation(a,{type:"putty",color:"plddt-confidence",size:"uniform",sizeParams:{value:1.5}},{tag:"af-superposition-visual"})]:[3,4];case 3:return n.sent(),[2,null==A?void 0:A.ref];case 4:return[2,!1]}}))}))}function m(e,t,r){return n.__awaiter(this,void 0,void 0,(function(){var a,o,s,u=this;return n.__generator(this,(function(c){return a=e.customState,o=a.initParams.superpositionParams,s=!1,r.length>1&&(s=!0,a.events.isBusy.next(!0)),[2,e.dataTransaction((function(){return n.__awaiter(u,void 0,void 0,(function(){var u,c,d,B,f,I,Q,h,m,v,b,D,S,_,F,x,U,N,L,G,R,M,k,H,P,V,Y,T,O,j,K,J,q,z,Z,W,X,$,ee,te,re,ne,Ae,ie,ae,oe,se,ue,ce,le,ge,de,Be,fe,Ie,pe,Qe,he;return n.__generator(this,(function(me){switch(me.label){case 0:u=e.customState.superpositionState,me.label=1;case 1:me.trys.push([1,41,42,47]),c=n.__asyncValues(r),me.label=2;case 2:return[4,c.next()];case 3:return(d=me.sent()).done?[3,40]:(B=d.value,u.matrixData["".concat(B.pdb_id,"_").concat(B.auth_asym_id)]?(u.loadedStructs[t].push("".concat(B.pdb_id,"_").concat(B.struct_asym_id)),f="".concat(a.initParams.pdbeUrl,"model-server/v1/").concat(B.pdb_id,"/atoms?auth_asym_id=").concat(B.auth_asym_id,"&encoding=").concat(a.initParams.encoding),o&&o.ligandView&&(f="https://www.ebi.ac.uk/pdbe/entry-files/download/".concat(B.pdb_id,".bcif")),I=void 0,Q=void 0,o&&o.ligandView&&u.entries[B.pdb_id]?(h=e.state.data.select(u.entries[B.pdb_id])[0],Q=h.transform.parent,m=e.state.data.select(Q)[0],[4,e.builders.structure.createStructure(m,{name:"model",params:{}})]):[3,5]):(u.noMatrixStruct.push("".concat(B.pdb_id,"_").concat(B.struct_asym_id)),u.invalidStruct.push("".concat(B.pdb_id,"_").concat(B.struct_asym_id)),[3,39]));case 4:return I=me.sent(),[3,7];case 5:return v="bcif"===a.initParams.encoding,[4,C(e,f,"mmcif",v)];case 6:b=me.sent(),D=b.model,S=b.structure,I=S,Q=D.ref,me.label=7;case 7:return I?(u.models["".concat(B.pdb_id,"_").concat(B.struct_asym_id)]||(u.models["".concat(B.pdb_id,"_").concat(B.struct_asym_id)]=null==I?void 0:I.ref),o&&o.ligandView&&!u.entries[B.pdb_id]&&(u.entries[B.pdb_id]=null==I?void 0:I.ref),_=A.Mat4.ofRows(e.customState.superpositionState.matrixData["".concat(B.pdb_id,"_").concat(B.auth_asym_id)].matrix),[4,y(e,I,_)]):[3,39];case 8:return me.sent(),F=void 0,o&&o.ligandView&&B.is_representative?(x=p(e,t),[4,e.builders.structure.tryCreateComponentFromExpression(I,(Ee=B.struct_asym_id,i.MolScriptBuilder.struct.generator.atomGroups({"chain-test":i.MolScriptBuilder.core.rel.eq([i.MolScriptBuilder.struct.atomProperty.macromolecular.label_asym_id(),Ee])})),"Chain-".concat(t),{label:"Chain",tags:["superposition-sel"]})]):[3,12];case 9:return(F=me.sent())?[4,e.builders.structure.representation.addRepresentation(F,{type:"putty",color:"uniform",colorParams:{value:x},size:"uniform"},{tag:"superpositio