@datagrok/peptides 1.3.5 → 1.3.7

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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@datagrok/peptides",
3
- "version": "1.3.5",
3
+ "version": "1.3.7",
4
4
  "author": {
5
5
  "name": "Volodymyr Dyma",
6
6
  "email": "vdyma@datagrok.ai"
@@ -12,17 +12,19 @@
12
12
  "directory": "packages/Peptides"
13
13
  },
14
14
  "dependencies": {
15
- "@datagrok-libraries/bio": "^5.5.0",
15
+ "@datagrok-libraries/bio": "^5.6.0",
16
16
  "@datagrok-libraries/ml": "^2.0.1",
17
17
  "@datagrok-libraries/statistics": "^0.1.6",
18
18
  "@datagrok-libraries/utils": "^1.11.1",
19
19
  "cash-dom": "latest",
20
20
  "datagrok-api": "^1.6.0",
21
21
  "file-loader": "^6.2.0",
22
- "rxjs": "^6.5.5"
22
+ "rxjs": "^6.5.5",
23
+ "wu": "latest"
23
24
  },
24
25
  "devDependencies": {
25
26
  "@types/jquery": "^3.5.6",
27
+ "@types/wu": "latest",
26
28
  "@typescript-eslint/eslint-plugin": "latest",
27
29
  "@typescript-eslint/parser": "latest",
28
30
  "css-loader": "^5.2.4",
package/src/model.ts CHANGED
@@ -5,6 +5,7 @@ import * as bio from '@datagrok-libraries/bio';
5
5
 
6
6
  import {splitAlignedSequences} from '@datagrok-libraries/bio/src/utils/splitter';
7
7
 
8
+ import wu from 'wu';
8
9
  import * as rxjs from 'rxjs';
9
10
 
10
11
  import * as C from './utils/constants';
@@ -55,7 +56,8 @@ export class PeptidesModel {
55
56
  barData: type.MonomerDfStats = {};
56
57
  barsBounds: { [position: string]: type.BarCoordinates } = {};
57
58
  cachedBarchartTooltip: { bar: string, tooltip: null | HTMLDivElement } = {bar: '', tooltip: null};
58
- monomerLib: bio.IMonomerLib | null = null;
59
+ monomerLib: bio.IMonomerLib | null = null; // To get monomers from lib(s)
60
+ monomerWorks: bio.MonomerWorks | null = null; // To get processed monomers
59
61
 
60
62
  private constructor(dataFrame: DG.DataFrame) {
61
63
  this.df = dataFrame;
@@ -813,8 +815,10 @@ export class PeptidesModel {
813
815
  showMonomerTooltip(aar: string, x: number, y: number): void {
814
816
  const tooltipElements: HTMLDivElement[] = [];
815
817
  const monomerName = aar.toLowerCase();
816
- const monomer: bio.Monomer = this.monomerLib!.get('HELM_AA', monomerName) ??
817
- this.monomerLib!.get('HELM_CHEM', monomerName)!;
818
+
819
+ const monomer: bio.Monomer | null = wu(['HELM_AA', 'HELM_CHEM'])
820
+ .map((monomerType) => this.monomerWorks!.getCappedMonomer(monomerType, monomerName))
821
+ .find((m) => m != null) ?? null;
818
822
 
819
823
  if (monomer) {
820
824
  tooltipElements.push(ui.div(monomer.n));
@@ -1085,15 +1089,17 @@ export class PeptidesModel {
1085
1089
  return;
1086
1090
 
1087
1091
  // Get monomer library through bio library
1088
- this.monomerLib = (await bio.getMonomerLib()) as bio.IMonomerLib;
1092
+ this.monomerLib = await bio.getMonomerLib();
1089
1093
  this.monomerLib.onChanged.subscribe(() => {
1090
1094
  this.sourceGrid.invalidate();
1091
1095
  });
1096
+ this.monomerWorks = new bio.MonomerWorks(this.monomerLib);
1092
1097
 
1093
- this.currentView = this.df.tags[C.PEPTIDES_ANALYSIS] == 'true' ? grok.shell.v as DG.TableView :
1098
+ this.currentView = wu(grok.shell.tableViews).find(({dataFrame}) => dataFrame.tags[C.PEPTIDES_ANALYSIS] === 'true') ??
1094
1099
  grok.shell.addTableView(this.df);
1100
+ grok.shell.v = this.currentView;
1095
1101
  this.sourceGrid = this.currentView.grid;
1096
- if (this.df.tags[C.PEPTIDES_ANALYSIS] == 'true')
1102
+ if (this.df.tags[C.PEPTIDES_ANALYSIS] === 'true')
1097
1103
  return;
1098
1104
 
1099
1105
  this.df.tags[C.PEPTIDES_ANALYSIS] = 'true';
@@ -15,7 +15,7 @@ export function setAARRenderer(col: DG.Column, alphabet: string, grid: DG.Grid,
15
15
  col.semType = C.SEM_TYPES.MONOMER;
16
16
  col.setTag('cell.renderer', C.SEM_TYPES.MONOMER);
17
17
  col.tags[C.TAGS.ALPHABET] = alphabet;
18
- setTimeout(() => grid.columns.byName(col.name)!.width = 60, timeout);
18
+ // setTimeout(() => grid.columns.byName(col.name)!.width = 60, timeout);
19
19
  }
20
20
 
21
21
  export function renderMutationCliffCell(canvasContext: CanvasRenderingContext2D, currentAAR: string,