drugflow-molstar 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (65) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +15 -0
  3. package/build/pdbe-molstar-3.1.2.css +1 -0
  4. package/build/pdbe-molstar-component-3.1.2.js +25 -0
  5. package/build/pdbe-molstar-plugin-3.1.2.js +2 -0
  6. package/build/pdbe-molstar-plugin-3.1.2.js.LICENSE.txt +39 -0
  7. package/lib/alphafold-transparency.d.ts +6 -0
  8. package/lib/alphafold-transparency.js +153 -0
  9. package/lib/custom-events.d.ts +4 -0
  10. package/lib/custom-events.js +56 -0
  11. package/lib/domain-annotations/behavior.d.ts +5 -0
  12. package/lib/domain-annotations/behavior.js +49 -0
  13. package/lib/domain-annotations/color.d.ts +10 -0
  14. package/lib/domain-annotations/color.js +78 -0
  15. package/lib/domain-annotations/prop.d.ts +35 -0
  16. package/lib/domain-annotations/prop.js +160 -0
  17. package/lib/helpers.d.ts +80 -0
  18. package/lib/helpers.js +278 -0
  19. package/lib/index.d.ts +1 -0
  20. package/lib/index.js +901 -0
  21. package/lib/labels.d.ts +2 -0
  22. package/lib/labels.js +42 -0
  23. package/lib/loci-details.d.ts +27 -0
  24. package/lib/loci-details.js +128 -0
  25. package/lib/pdbe-molstar-component-build-3.1.2.js +2 -0
  26. package/lib/pdbe-molstar-component-build-3.1.2.js.LICENSE.txt +24 -0
  27. package/lib/sifts-mapping.d.ts +16 -0
  28. package/lib/sifts-mapping.js +83 -0
  29. package/lib/sifts-mappings-behaviour.d.ts +5 -0
  30. package/lib/sifts-mappings-behaviour.js +64 -0
  31. package/lib/spec.d.ts +75 -0
  32. package/lib/spec.js +105 -0
  33. package/lib/subscribe-events.d.ts +1 -0
  34. package/lib/subscribe-events.js +194 -0
  35. package/lib/superposition-export.d.ts +4 -0
  36. package/lib/superposition-export.js +152 -0
  37. package/lib/superposition-focus-representation.d.ts +16 -0
  38. package/lib/superposition-focus-representation.js +153 -0
  39. package/lib/superposition-sifts-mapping.d.ts +22 -0
  40. package/lib/superposition-sifts-mapping.js +159 -0
  41. package/lib/superposition.d.ts +18 -0
  42. package/lib/superposition.js +794 -0
  43. package/lib/ui/alphafold-superposition.d.ts +56 -0
  44. package/lib/ui/alphafold-superposition.js +178 -0
  45. package/lib/ui/alphafold-tranparency.d.ts +22 -0
  46. package/lib/ui/alphafold-tranparency.js +65 -0
  47. package/lib/ui/annotation-controls.d.ts +24 -0
  48. package/lib/ui/annotation-controls.js +166 -0
  49. package/lib/ui/export-superposition.d.ts +6 -0
  50. package/lib/ui/export-superposition.js +71 -0
  51. package/lib/ui/pdbe-left-panel.d.ts +18 -0
  52. package/lib/ui/pdbe-left-panel.js +167 -0
  53. package/lib/ui/pdbe-screenshot-controls.d.ts +20 -0
  54. package/lib/ui/pdbe-screenshot-controls.js +101 -0
  55. package/lib/ui/pdbe-structure-controls.d.ts +17 -0
  56. package/lib/ui/pdbe-structure-controls.js +70 -0
  57. package/lib/ui/pdbe-viewport-controls.d.ts +6 -0
  58. package/lib/ui/pdbe-viewport-controls.js +56 -0
  59. package/lib/ui/segment-tree.d.ts +18 -0
  60. package/lib/ui/segment-tree.js +804 -0
  61. package/lib/ui/superposition-components.d.ts +10 -0
  62. package/lib/ui/superposition-components.js +435 -0
  63. package/lib/ui/superposition-viewport.d.ts +5 -0
  64. package/lib/ui/superposition-viewport.js +23 -0
  65. package/package.json +79 -0
@@ -0,0 +1,80 @@
1
+ import { PluginContext } from 'Molstar/mol-plugin/context';
2
+ import Expression from 'Molstar/mol-script/language/expression';
3
+ import { BuiltInTrajectoryFormat } from 'Molstar/mol-plugin-state/formats/trajectory';
4
+ import { Model } from 'Molstar/mol-model/structure';
5
+ export declare type SupportedFormats = 'mmcif' | 'bcif' | 'cif' | 'pdb' | 'sdf';
6
+ export declare type LoadParams = {
7
+ url: string;
8
+ format?: BuiltInTrajectoryFormat;
9
+ assemblyId?: string;
10
+ isHetView?: boolean;
11
+ isBinary?: boolean;
12
+ };
13
+ export declare namespace PDBeVolumes {
14
+ function mapParams(defaultParams: any, mapParams: any, ref?: string | number): any;
15
+ function displayUsibilityMessage(plugin: PluginContext): void;
16
+ function toggle(plugin: PluginContext): void;
17
+ }
18
+ export declare namespace AlphafoldView {
19
+ function getLociByPLDDT(score: number, contextData: any): import("molstar/lib/mol-model/structure/structure/element/loci").Loci;
20
+ }
21
+ export declare type LigandQueryParam = {
22
+ label_comp_id_list?: any;
23
+ auth_asym_id?: string;
24
+ struct_asym_id?: string;
25
+ label_comp_id?: string;
26
+ auth_seq_id?: number;
27
+ show_all?: boolean;
28
+ };
29
+ export declare namespace LigandView {
30
+ function query(ligandViewParams: LigandQueryParam): {
31
+ core: Expression.Expression;
32
+ surroundings: Expression.Expression;
33
+ };
34
+ function branchedQuery(params: any): {
35
+ core: Expression.Expression;
36
+ surroundings: Expression.Expression;
37
+ };
38
+ }
39
+ export declare type QueryParam = {
40
+ auth_seq_id?: number;
41
+ entity_id?: string;
42
+ auth_asym_id?: string;
43
+ struct_asym_id?: string;
44
+ residue_number?: number;
45
+ start_residue_number?: number;
46
+ end_residue_number?: number;
47
+ auth_residue_number?: number;
48
+ auth_ins_code_id?: string;
49
+ start_auth_residue_number?: number;
50
+ start_auth_ins_code_id?: string;
51
+ end_auth_residue_number?: number;
52
+ end_auth_ins_code_id?: string;
53
+ atoms?: string[];
54
+ label_comp_id?: string;
55
+ color?: any;
56
+ sideChain?: boolean;
57
+ representation?: string;
58
+ representationColor?: any;
59
+ focus?: boolean;
60
+ tooltip?: string;
61
+ start?: any;
62
+ end?: any;
63
+ atom_id?: number[];
64
+ uniprot_accession?: string;
65
+ uniprot_residue_number?: number;
66
+ start_uniprot_residue_number?: number;
67
+ end_uniprot_residue_number?: number;
68
+ };
69
+ export declare namespace QueryHelper {
70
+ function getQueryObject(params: QueryParam[], contextData: any): Expression.Expression;
71
+ function getInteractivityLoci(params: any, contextData: any): import("molstar/lib/mol-model/structure/structure/element/loci").Loci;
72
+ function getHetLoci(queryExp: Expression.Expression, contextData: any): import("molstar/lib/mol-model/structure/structure/element/loci").Loci;
73
+ }
74
+ export interface ModelInfo {
75
+ hetNames: string[];
76
+ carbEntityCount: number;
77
+ }
78
+ export declare namespace ModelInfo {
79
+ function get(model: Model, structures: any): Promise<ModelInfo>;
80
+ }
package/lib/helpers.js ADDED
@@ -0,0 +1,278 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ModelInfo = exports.QueryHelper = exports.LigandView = exports.AlphafoldView = exports.PDBeVolumes = void 0;
4
+ var tslib_1 = require("tslib");
5
+ var commands_1 = require("Molstar/mol-plugin/commands");
6
+ var builder_1 = require("Molstar/mol-script/language/builder");
7
+ var mol_state_1 = require("Molstar/mol-state");
8
+ var structure_1 = require("Molstar/mol-model/structure");
9
+ var transformers_1 = require("Molstar/mol-plugin/behavior/dynamic/volume-streaming/transformers");
10
+ var compiler_1 = require("Molstar/mol-script/runtime/query/compiler");
11
+ var structure_2 = require("Molstar/mol-model/structure");
12
+ var sifts_mapping_1 = require("./sifts-mapping");
13
+ var query_1 = require("Molstar/mol-model/structure/query/query");
14
+ var prop_1 = require("Molstar/extensions/model-archive/quality-assessment/prop");
15
+ var PDBeVolumes;
16
+ (function (PDBeVolumes) {
17
+ function mapParams(defaultParams, mapParams, ref) {
18
+ var pdbeParams = tslib_1.__assign({}, defaultParams);
19
+ pdbeParams.options.behaviorRef = 'volume-streaming' + '' + Math.floor(Math.random() * Math.floor(100));
20
+ pdbeParams.options.emContourProvider = 'pdbe';
21
+ pdbeParams.options.serverUrl = 'https://www.ebi.ac.uk/pdbe/volume-server';
22
+ pdbeParams.options.channelParams['em'] = {
23
+ opacity: (mapParams && mapParams.em && mapParams.em.opacity) ? mapParams.em.opacity : 0.49,
24
+ wireframe: (mapParams && mapParams.em && mapParams.em.wireframe) ? mapParams.em.wireframe : false
25
+ };
26
+ pdbeParams.options.channelParams['2fo-fc'] = {
27
+ opacity: (mapParams && mapParams['2fo-fc'] && mapParams['2fo-fc'].opacity) ? mapParams['2fo-fc'].opacity : 0.49,
28
+ wireframe: (mapParams && mapParams['2fo-fc'] && mapParams['2fo-fc'].wireframe) ? mapParams['2fo-fc'].wireframe : false
29
+ };
30
+ pdbeParams.options.channelParams['fo-fc(+ve)'] = {
31
+ opacity: (mapParams && mapParams['fo-fc(+ve)'] && mapParams['fo-fc(+ve)'].opacity) ? mapParams['fo-fc(+ve)'].opacity : 0.3,
32
+ wireframe: (mapParams && mapParams['fo-fc(+ve)'] && mapParams['fo-fc(+ve)'].wireframe) ? mapParams['fo-fc(+ve)'].wireframe : true
33
+ };
34
+ pdbeParams.options.channelParams['fo-fc(-ve)'] = {
35
+ opacity: (mapParams && mapParams['fo-fc(-ve)'] && mapParams['fo-fc(-ve)'].opacity) ? mapParams['fo-fc(-ve)'].opacity : 0.3,
36
+ wireframe: (mapParams && mapParams['fo-fc(-ve)'] && mapParams['fo-fc(-ve)'].wireframe) ? mapParams['fo-fc(-ve)'].wireframe : true
37
+ };
38
+ return pdbeParams;
39
+ }
40
+ PDBeVolumes.mapParams = mapParams;
41
+ function displayUsibilityMessage(plugin) {
42
+ commands_1.PluginCommands.Toast.Show(plugin, {
43
+ title: 'Volume',
44
+ message: 'Streaming enabled, click on a residue or an atom to view the data.',
45
+ key: 'toast-1',
46
+ timeoutMs: 7000
47
+ });
48
+ }
49
+ PDBeVolumes.displayUsibilityMessage = displayUsibilityMessage;
50
+ function toggle(plugin) {
51
+ var state = plugin.state.data;
52
+ var streamingState = state.select(mol_state_1.StateSelection.Generators.ofTransformer(transformers_1.CreateVolumeStreamingInfo))[0];
53
+ if (streamingState) {
54
+ commands_1.PluginCommands.State.ToggleVisibility(plugin, { state: state, ref: streamingState.transform.ref });
55
+ return;
56
+ }
57
+ }
58
+ PDBeVolumes.toggle = toggle;
59
+ })(PDBeVolumes = exports.PDBeVolumes || (exports.PDBeVolumes = {}));
60
+ var AlphafoldView;
61
+ (function (AlphafoldView) {
62
+ function getLociByPLDDT(score, contextData) {
63
+ var queryExp = builder_1.MolScriptBuilder.struct.modifier.union([
64
+ builder_1.MolScriptBuilder.struct.modifier.wholeResidues([
65
+ builder_1.MolScriptBuilder.struct.modifier.union([
66
+ builder_1.MolScriptBuilder.struct.generator.atomGroups({
67
+ 'chain-test': builder_1.MolScriptBuilder.core.rel.eq([builder_1.MolScriptBuilder.ammp('objectPrimitive'), 'atomistic']),
68
+ 'residue-test': builder_1.MolScriptBuilder.core.rel.gr([prop_1.QualityAssessment.symbols.pLDDT.symbol(), score]),
69
+ })
70
+ ])
71
+ ])
72
+ ]);
73
+ var query = (0, compiler_1.compile)(queryExp);
74
+ var sel = query(new structure_1.QueryContext(contextData));
75
+ return structure_1.StructureSelection.toLociWithSourceUnits(sel);
76
+ }
77
+ AlphafoldView.getLociByPLDDT = getLociByPLDDT;
78
+ })(AlphafoldView = exports.AlphafoldView || (exports.AlphafoldView = {}));
79
+ var LigandView;
80
+ (function (LigandView) {
81
+ function query(ligandViewParams) {
82
+ var atomGroupsParams = {
83
+ 'group-by': builder_1.MolScriptBuilder.core.str.concat([builder_1.MolScriptBuilder.struct.atomProperty.core.operatorName(), builder_1.MolScriptBuilder.struct.atomProperty.macromolecular.residueKey()])
84
+ };
85
+ // Residue Param
86
+ var residueParam;
87
+ if (ligandViewParams.auth_seq_id) {
88
+ residueParam = builder_1.MolScriptBuilder.core.rel.eq([builder_1.MolScriptBuilder.struct.atomProperty.macromolecular.auth_seq_id(), ligandViewParams.auth_seq_id]);
89
+ }
90
+ else if (ligandViewParams.label_comp_id) {
91
+ residueParam = builder_1.MolScriptBuilder.core.rel.eq([builder_1.MolScriptBuilder.struct.atomProperty.macromolecular.label_comp_id(), ligandViewParams.label_comp_id]);
92
+ }
93
+ if (residueParam)
94
+ atomGroupsParams['residue-test'] = residueParam;
95
+ // Chain Param
96
+ if (ligandViewParams.auth_asym_id) {
97
+ atomGroupsParams['chain-test'] = builder_1.MolScriptBuilder.core.rel.eq([builder_1.MolScriptBuilder.struct.atomProperty.macromolecular.auth_asym_id(), ligandViewParams.auth_asym_id]);
98
+ }
99
+ else if (ligandViewParams.struct_asym_id) {
100
+ atomGroupsParams['chain-test'] = builder_1.MolScriptBuilder.core.rel.eq([builder_1.MolScriptBuilder.struct.atomProperty.macromolecular.label_asym_id(), ligandViewParams.struct_asym_id]);
101
+ }
102
+ // Construct core query
103
+ var core = ligandViewParams.show_all ?
104
+ builder_1.MolScriptBuilder.struct.generator.atomGroups(atomGroupsParams) :
105
+ builder_1.MolScriptBuilder.struct.filter.first([
106
+ builder_1.MolScriptBuilder.struct.generator.atomGroups(atomGroupsParams)
107
+ ]);
108
+ // Construct surroundings query
109
+ var surroundings = builder_1.MolScriptBuilder.struct.modifier.includeSurroundings({ 0: core, radius: 5, 'as-whole-residues': true });
110
+ return {
111
+ core: core,
112
+ surroundings: surroundings
113
+ };
114
+ }
115
+ LigandView.query = query;
116
+ function branchedQuery(params) {
117
+ var entityObjArray = [];
118
+ params.atom_site.forEach(function (param) {
119
+ var qEntities = {
120
+ 'group-by': builder_1.MolScriptBuilder.core.str.concat([builder_1.MolScriptBuilder.struct.atomProperty.core.operatorName(), builder_1.MolScriptBuilder.struct.atomProperty.macromolecular.residueKey()]),
121
+ 'residue-test': builder_1.MolScriptBuilder.core.rel.eq([builder_1.MolScriptBuilder.struct.atomProperty.macromolecular.auth_seq_id(), param.auth_seq_id])
122
+ };
123
+ entityObjArray.push(qEntities);
124
+ });
125
+ var atmGroupsQueries = [];
126
+ entityObjArray.forEach(function (entityObj) {
127
+ atmGroupsQueries.push(builder_1.MolScriptBuilder.struct.generator.atomGroups(entityObj));
128
+ });
129
+ var core = builder_1.MolScriptBuilder.struct.modifier.union([
130
+ atmGroupsQueries.length === 1
131
+ ? atmGroupsQueries[0]
132
+ // Need to union before merge for fast performance
133
+ : builder_1.MolScriptBuilder.struct.combinator.merge(atmGroupsQueries.map(function (q) { return builder_1.MolScriptBuilder.struct.modifier.union([q]); }))
134
+ ]);
135
+ // Construct surroundings query
136
+ var surroundings = builder_1.MolScriptBuilder.struct.modifier.includeSurroundings({ 0: core, radius: 5, 'as-whole-residues': true });
137
+ return {
138
+ core: core,
139
+ surroundings: surroundings
140
+ };
141
+ }
142
+ LigandView.branchedQuery = branchedQuery;
143
+ })(LigandView = exports.LigandView || (exports.LigandView = {}));
144
+ var QueryHelper;
145
+ (function (QueryHelper) {
146
+ function getQueryObject(params, contextData) {
147
+ var selections = [];
148
+ var siftMappings;
149
+ var currentAccession;
150
+ params.forEach(function (param) {
151
+ var selection = {};
152
+ // entity
153
+ if (param.entity_id)
154
+ selection['entityTest'] = function (l) { return structure_1.StructureProperties.entity.id(l.element) === param.entity_id; };
155
+ // chain
156
+ if (param.struct_asym_id) {
157
+ selection['chainTest'] = function (l) { return structure_1.StructureProperties.chain.label_asym_id(l.element) === param.struct_asym_id; };
158
+ }
159
+ else if (param.auth_asym_id) {
160
+ selection['chainTest'] = function (l) { return structure_1.StructureProperties.chain.auth_asym_id(l.element) === param.auth_asym_id; };
161
+ }
162
+ // residues
163
+ if (param.label_comp_id) {
164
+ selection['residueTest'] = function (l) { return structure_1.StructureProperties.atom.label_comp_id(l.element) === param.label_comp_id; };
165
+ }
166
+ else if (param.uniprot_accession && param.uniprot_residue_number) {
167
+ selection['residueTest'] = function (l) {
168
+ if (!siftMappings || currentAccession !== param.uniprot_accession) {
169
+ siftMappings = sifts_mapping_1.SIFTSMapping.Provider.get(contextData.models[0]).value;
170
+ currentAccession = param.uniprot_accession;
171
+ }
172
+ var rI = structure_1.StructureProperties.residue.key(l.element);
173
+ return param.uniprot_accession === siftMappings.accession[rI] && param.uniprot_residue_number === +siftMappings.num[rI];
174
+ };
175
+ }
176
+ else if (param.uniprot_accession && param.start_uniprot_residue_number && param.end_uniprot_residue_number) {
177
+ selection['residueTest'] = function (l) {
178
+ if (!siftMappings || currentAccession !== param.uniprot_accession) {
179
+ siftMappings = sifts_mapping_1.SIFTSMapping.Provider.get(contextData.models[0]).value;
180
+ currentAccession = param.uniprot_accession;
181
+ }
182
+ var rI = structure_1.StructureProperties.residue.key(l.element);
183
+ return param.uniprot_accession === siftMappings.accession[rI] && (param.start_uniprot_residue_number <= +siftMappings.num[rI] && param.end_uniprot_residue_number >= +siftMappings.num[rI]);
184
+ };
185
+ }
186
+ else if (param.residue_number) {
187
+ selection['residueTest'] = function (l) { return structure_1.StructureProperties.residue.label_seq_id(l.element) === param.residue_number; };
188
+ }
189
+ else if ((param.start_residue_number && param.end_residue_number) && (param.end_residue_number > param.start_residue_number)) {
190
+ selection['residueTest'] = function (l) {
191
+ var labelSeqId = structure_1.StructureProperties.residue.label_seq_id(l.element);
192
+ return labelSeqId >= param.start_residue_number && labelSeqId <= param.end_residue_number;
193
+ };
194
+ }
195
+ else if ((param.start_residue_number && param.end_residue_number) && (param.end_residue_number === param.start_residue_number)) {
196
+ selection['residueTest'] = function (l) { return structure_1.StructureProperties.residue.label_seq_id(l.element) === param.start_residue_number; };
197
+ }
198
+ else if (param.auth_seq_id) {
199
+ selection['residueTest'] = function (l) { return structure_1.StructureProperties.residue.auth_seq_id(l.element) === param.auth_seq_id; };
200
+ }
201
+ else if (param.auth_residue_number && !param.auth_ins_code_id) {
202
+ selection['residueTest'] = function (l) { return structure_1.StructureProperties.residue.auth_seq_id(l.element) === param.auth_residue_number; };
203
+ }
204
+ else if (param.auth_residue_number && param.auth_ins_code_id) {
205
+ selection['residueTest'] = function (l) { return structure_1.StructureProperties.residue.auth_seq_id(l.element) === param.auth_residue_number; };
206
+ }
207
+ else if ((param.start_auth_residue_number && param.end_auth_residue_number) && (param.end_auth_residue_number > param.start_auth_residue_number)) {
208
+ selection['residueTest'] = function (l) {
209
+ var authSeqId = structure_1.StructureProperties.residue.auth_seq_id(l.element);
210
+ return authSeqId >= param.start_auth_residue_number && authSeqId <= param.end_auth_residue_number;
211
+ };
212
+ }
213
+ else if ((param.start_auth_residue_number && param.end_auth_residue_number) && (param.end_auth_residue_number === param.start_auth_residue_number)) {
214
+ selection['residueTest'] = function (l) { return structure_1.StructureProperties.residue.auth_seq_id(l.element) === param.start_auth_residue_number; };
215
+ }
216
+ // atoms
217
+ if (param.atoms) {
218
+ selection['atomTest'] = function (l) { return param.atoms.includes(structure_1.StructureProperties.atom.label_atom_id(l.element)); };
219
+ }
220
+ if (param.atom_id) {
221
+ selection['atomTest'] = function (l) { return param.atom_id.includes(structure_1.StructureProperties.atom.id(l.element)); };
222
+ }
223
+ selections.push(selection);
224
+ });
225
+ var atmGroupsQueries = [];
226
+ selections.forEach(function (selection) {
227
+ atmGroupsQueries.push(structure_2.Queries.generators.atoms(selection));
228
+ });
229
+ return structure_2.Queries.combinators.merge(atmGroupsQueries);
230
+ }
231
+ QueryHelper.getQueryObject = getQueryObject;
232
+ function getInteractivityLoci(params, contextData) {
233
+ var sel = query_1.StructureQuery.run(QueryHelper.getQueryObject(params, contextData), contextData);
234
+ return structure_1.StructureSelection.toLociWithSourceUnits(sel);
235
+ }
236
+ QueryHelper.getInteractivityLoci = getInteractivityLoci;
237
+ function getHetLoci(queryExp, contextData) {
238
+ var query = (0, compiler_1.compile)(queryExp);
239
+ var sel = query(new structure_1.QueryContext(contextData));
240
+ return structure_1.StructureSelection.toLociWithSourceUnits(sel);
241
+ }
242
+ QueryHelper.getHetLoci = getHetLoci;
243
+ })(QueryHelper = exports.QueryHelper || (exports.QueryHelper = {}));
244
+ var ModelInfo;
245
+ (function (ModelInfo) {
246
+ function get(model, structures) {
247
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
248
+ var residueCount, residueOffsets, chainIndex, hetNames, carbEntityCount, rI, cI, eI, entityType, comp_id;
249
+ return tslib_1.__generator(this, function (_a) {
250
+ residueCount = model.atomicHierarchy.residues._rowCount;
251
+ residueOffsets = model.atomicHierarchy.residueAtomSegments.offsets;
252
+ chainIndex = model.atomicHierarchy.chainAtomSegments.index;
253
+ hetNames = [];
254
+ carbEntityCount = 0;
255
+ for (rI = 0; rI < residueCount; rI++) {
256
+ cI = chainIndex[residueOffsets[rI]];
257
+ eI = model.atomicHierarchy.index.getEntityFromChain(cI);
258
+ entityType = model.entities.data.type.value(eI);
259
+ if (entityType !== 'non-polymer' && entityType !== 'branched')
260
+ continue;
261
+ comp_id = model.atomicHierarchy.atoms.label_comp_id.value(residueOffsets[rI]);
262
+ if (entityType === 'branched') {
263
+ carbEntityCount++;
264
+ }
265
+ else {
266
+ if (hetNames.indexOf(comp_id) === -1)
267
+ hetNames.push(comp_id);
268
+ }
269
+ }
270
+ return [2 /*return*/, {
271
+ hetNames: hetNames,
272
+ carbEntityCount: carbEntityCount
273
+ }];
274
+ });
275
+ });
276
+ }
277
+ ModelInfo.get = get;
278
+ })(ModelInfo = exports.ModelInfo || (exports.ModelInfo = {}));
package/lib/index.d.ts ADDED
@@ -0,0 +1 @@
1
+ export {};