@datagrok/bio 2.16.8 → 2.16.9

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.
package/package.json CHANGED
@@ -5,7 +5,7 @@
5
5
  "name": "Aleksandr Tanas",
6
6
  "email": "atanas@datagrok.ai"
7
7
  },
8
- "version": "2.16.8",
8
+ "version": "2.16.9",
9
9
  "description": "Bioinformatics support (import/export of sequences, conversion, visualization, analysis). [See more](https://github.com/datagrok-ai/public/blob/master/packages/Bio/README.md) for details.",
10
10
  "repository": {
11
11
  "type": "git",
@@ -37,7 +37,7 @@
37
37
  ],
38
38
  "dependencies": {
39
39
  "@biowasm/aioli": "^3.1.0",
40
- "@datagrok-libraries/bio": "^5.45.6",
40
+ "@datagrok-libraries/bio": "^5.45.7",
41
41
  "@datagrok-libraries/chem-meta": "^1.2.7",
42
42
  "@datagrok-libraries/math": "^1.2.2",
43
43
  "@datagrok-libraries/ml": "^6.7.4",
package/src/package.ts CHANGED
@@ -102,52 +102,46 @@ let initBioPromise: Promise<void> | null = null;
102
102
 
103
103
  //tags: init
104
104
  export async function initBio(): Promise<void> {
105
- if (initBioPromise === null) {
105
+ if (initBioPromise === null)
106
106
  initBioPromise = initBioInt();
107
- }
107
+
108
108
  await initBioPromise;
109
109
  }
110
110
 
111
111
  async function initBioInt() {
112
112
  const logPrefix = 'Bio: _package.initBio()';
113
113
  _package.logger.debug(`${logPrefix}, start`);
114
- let monomerLib!: IMonomerLib;
115
- let monomerSets!: IMonomerSet;
116
- let rdKitModule!: RDModule;
117
- let libHelper!: MonomerLibManager;
118
114
  const t1: number = window.performance.now();
119
- await Promise.all([
120
- (async () => {
121
- libHelper = await MonomerLibManager.getInstance();
122
- // Fix user lib settings for explicit stuck from a terminated test
123
- const libSettings = await getUserLibSettings();
124
- if (libSettings.explicit) {
125
- libSettings.explicit = [];
126
- await setUserLibSettings(libSettings);
127
- }
128
- libHelper.awaitLoaded(Infinity).then(() => {
129
- // Do not wait for monomers and sets loaded
130
- return Promise.all([libHelper.loadMonomerLib(), libHelper.loadMonomerSets()]);
131
- });
132
- monomerLib = libHelper.getMonomerLib();
133
- monomerSets = libHelper.getMonomerSets();
134
- })(),
135
- (async () => {
136
- const pkgProps = await _package.getProperties();
137
- const bioPkgProps = new BioPackageProperties(pkgProps);
138
- _package.properties = bioPkgProps;
139
- })(),
140
- (async () => { rdKitModule = await getRdKitModule(); })(),
141
- ]).finally(() => {
142
- const t2: number = window.performance.now();
143
- _package.logger.debug(`${logPrefix}, loading ET: ${t2 - t1} ms`);
115
+ // very important that loading should happen in correct order!
116
+ // first make sure chem and rdkit module are loaded
117
+ const rdKitModule = await getRdKitModule();
118
+ // then load package settings
119
+ const pkgProps = await _package.getProperties();
120
+ const bioPkgProps = new BioPackageProperties(pkgProps);
121
+ _package.properties = bioPkgProps;
122
+ // then load monomer lib
123
+ const libHelper = await MonomerLibManager.getInstance();
124
+ // Fix user lib settings for explicit stuck from a terminated test
125
+ const libSettings = await getUserLibSettings();
126
+ if (libSettings.explicit) {
127
+ libSettings.explicit = [];
128
+ await setUserLibSettings(libSettings);
129
+ }
130
+ libHelper.awaitLoaded(Infinity).then(() => {
131
+ // Do not wait for monomers and sets loaded
132
+ return Promise.all([libHelper.loadMonomerLib(), libHelper.loadMonomerSets()]);
144
133
  });
145
- const seqHelper = new SeqHelper(libHelper, rdKitModule);
146
- _package.completeInit(seqHelper, monomerLib, monomerSets, rdKitModule);
134
+ const monomerLib = libHelper.getMonomerLib();
135
+ const monomerSets = libHelper.getMonomerSets();
136
+ // finally log
137
+ const t2: number = window.performance.now();
138
+ _package.logger.debug(`${logPrefix}, loading ET: ${t2 - t1} ms`);
147
139
 
148
140
  const monomers: string[] = [];
149
141
  const logPs: number[] = [];
150
142
 
143
+ const seqHelper = new SeqHelper(libHelper, rdKitModule);
144
+ _package.completeInit(seqHelper, monomerLib, monomerSets, rdKitModule);
151
145
  const series = monomerLib!.getMonomerMolsByPolymerType('PEPTIDE')!;
152
146
  Object.keys(series).forEach((symbol) => {
153
147
  monomers.push(symbol);
@@ -1216,6 +1210,7 @@ export async function detectMacromoleculeProbe(file: DG.FileInfo, colName: strin
1216
1210
  //name: getSeqHelper
1217
1211
  //output: object result
1218
1212
  export async function getSeqHelper(): Promise<ISeqHelper> {
1213
+ await initBio();
1219
1214
  return _package.seqHelper;
1220
1215
  }
1221
1216