@sjcrh/proteinpaint-shared 2.188.1 → 2.189.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 (76) hide show
  1. package/constants/AiHisto.ts +17 -13
  2. package/dist/constants/AiHisto.d.ts +14 -12
  3. package/dist/constants/AiHisto.js +15 -17
  4. package/dist/constants/AiHisto.js.map +3 -3
  5. package/dist/src/aiHisto.d.ts +2 -2
  6. package/dist/src/aiHisto.js.map +2 -2
  7. package/dist/src/bulk.cnv.d.ts +2 -0
  8. package/dist/src/bulk.cnv.js +1 -1
  9. package/dist/src/bulk.cnv.js.map +3 -3
  10. package/dist/src/bulk.d.ts +56 -0
  11. package/dist/src/bulk.del.d.ts +2 -0
  12. package/dist/src/bulk.del.js +2 -2
  13. package/dist/src/bulk.del.js.map +3 -3
  14. package/dist/src/bulk.itd.d.ts +2 -0
  15. package/dist/src/bulk.itd.js +2 -2
  16. package/dist/src/bulk.itd.js.map +3 -3
  17. package/dist/src/bulk.js +1 -2
  18. package/dist/src/bulk.js.map +3 -3
  19. package/dist/src/bulk.snv.d.ts +2 -0
  20. package/dist/src/bulk.snv.js +3 -3
  21. package/dist/src/bulk.snv.js.map +3 -3
  22. package/dist/src/bulk.sv.d.ts +3 -0
  23. package/dist/src/bulk.sv.js +1 -1
  24. package/dist/src/bulk.sv.js.map +3 -3
  25. package/dist/src/bulk.svjson.d.ts +2 -0
  26. package/dist/src/bulk.svjson.js +3 -3
  27. package/dist/src/bulk.svjson.js.map +3 -3
  28. package/dist/src/bulk.trunc.d.ts +2 -0
  29. package/dist/src/bulk.trunc.js +1 -1
  30. package/dist/src/bulk.trunc.js.map +3 -3
  31. package/dist/src/clustering.d.ts +10 -0
  32. package/dist/src/clustering.js.map +1 -1
  33. package/dist/src/common.d.ts +431 -0
  34. package/dist/src/common.js +62 -22
  35. package/dist/src/common.js.map +3 -3
  36. package/dist/src/compute.percentile.d.ts +1 -0
  37. package/dist/src/compute.percentile.js.map +1 -1
  38. package/dist/src/fetch-helpers.d.ts +8 -0
  39. package/dist/src/fetch-helpers.js +17 -18
  40. package/dist/src/fetch-helpers.js.map +3 -3
  41. package/dist/src/fileSize.d.ts +1 -0
  42. package/dist/src/fileSize.js.map +1 -1
  43. package/dist/src/hash.d.ts +1 -0
  44. package/dist/src/hash.js.map +1 -1
  45. package/dist/src/helpers.d.ts +14 -0
  46. package/dist/src/helpers.js +3 -4
  47. package/dist/src/helpers.js.map +3 -3
  48. package/dist/src/mds3tk.d.ts +6 -0
  49. package/dist/src/mds3tk.js.map +3 -3
  50. package/dist/src/roundValue.d.ts +14 -0
  51. package/dist/src/roundValue.js.map +1 -1
  52. package/dist/src/termdb.bins.d.ts +5 -0
  53. package/dist/src/termdb.bins.js +1 -1
  54. package/dist/src/termdb.bins.js.map +3 -3
  55. package/dist/src/termdb.initbinconfig.d.ts +1 -0
  56. package/dist/src/termdb.initbinconfig.js +1 -1
  57. package/dist/src/termdb.initbinconfig.js.map +3 -3
  58. package/dist/src/termdb.usecase.d.ts +2 -0
  59. package/dist/src/termdb.usecase.js.map +3 -3
  60. package/dist/src/terms.d.ts +26 -26
  61. package/dist/src/tree.d.ts +1 -0
  62. package/dist/src/tree.js.map +3 -3
  63. package/dist/src/vcf.ann.d.ts +1 -0
  64. package/dist/src/vcf.ann.js +1 -2
  65. package/dist/src/vcf.ann.js.map +3 -3
  66. package/dist/src/vcf.csq.d.ts +1 -0
  67. package/dist/src/vcf.csq.js +1 -2
  68. package/dist/src/vcf.csq.js.map +3 -3
  69. package/dist/src/vcf.d.ts +2 -0
  70. package/dist/src/vcf.info.d.ts +1 -0
  71. package/dist/src/vcf.info.js.map +1 -1
  72. package/dist/src/vcf.js +47 -42
  73. package/dist/src/vcf.js.map +4 -4
  74. package/dist/src/vcf.type.d.ts +1 -0
  75. package/dist/src/vcf.type.js.map +1 -1
  76. package/package.json +1 -1
@@ -1,16 +1,20 @@
1
- export enum FlagStatus {
2
- Normal = 0,
3
- Skipped = 1,
4
- Flagged = 2,
5
- Deleted = 3
6
- }
1
+ export const FlagStatus = {
2
+ Normal: 0,
3
+ Skipped: 1,
4
+ Flagged: 2,
5
+ Deleted: 3
6
+ } as const
7
7
 
8
- export enum FeaturePrefixes {
9
- Star = 'annotation-star-',
10
- Square = 'annotation-square-',
11
- Border = 'annotation-border-',
12
- PredBorder = 'prediction-border-'
13
- }
8
+ export type FlagStatusValues = (typeof FlagStatus)[keyof typeof FlagStatus]
9
+
10
+ export const FeaturePrefixes = {
11
+ Star: 'annotation-star-',
12
+ Square: 'annotation-square-',
13
+ Border: 'annotation-border-',
14
+ PredBorder: 'prediction-border-'
15
+ } as const
16
+
17
+ export type FeaturePrefixValues = (typeof FeaturePrefixes)[keyof typeof FeaturePrefixes]
14
18
 
15
19
  export const SelectionPrefixes = {
16
20
  TileSelection: 'ts_',
@@ -19,7 +23,7 @@ export const SelectionPrefixes = {
19
23
  } as const
20
24
 
21
25
  export type SelectionPrefixValues = (typeof SelectionPrefixes)[keyof typeof SelectionPrefixes]
22
-
26
+ //Didn't add Deleted to FlagStatusMessages because deleted annotations dont exist and deleted predictons are filtered out in /Users/jsimps98/dev/sjpp/proteinpaint/server/routes/aiProjectSelectedWSImages.ts line 119
23
27
  export const FlagStatusMessages = {
24
28
  [FlagStatus.Normal]: '',
25
29
  [FlagStatus.Skipped]: '(Skipped)',
@@ -1,15 +1,17 @@
1
- export declare enum FlagStatus {
2
- Normal = 0,
3
- Skipped = 1,
4
- Flagged = 2,
5
- Deleted = 3
6
- }
7
- export declare enum FeaturePrefixes {
8
- Star = "annotation-star-",
9
- Square = "annotation-square-",
10
- Border = "annotation-border-",
11
- PredBorder = "prediction-border-"
12
- }
1
+ export declare const FlagStatus: {
2
+ readonly Normal: 0;
3
+ readonly Skipped: 1;
4
+ readonly Flagged: 2;
5
+ readonly Deleted: 3;
6
+ };
7
+ export type FlagStatusValues = (typeof FlagStatus)[keyof typeof FlagStatus];
8
+ export declare const FeaturePrefixes: {
9
+ readonly Star: "annotation-star-";
10
+ readonly Square: "annotation-square-";
11
+ readonly Border: "annotation-border-";
12
+ readonly PredBorder: "prediction-border-";
13
+ };
14
+ export type FeaturePrefixValues = (typeof FeaturePrefixes)[keyof typeof FeaturePrefixes];
13
15
  export declare const SelectionPrefixes: {
14
16
  readonly TileSelection: "ts_";
15
17
  readonly Prediction: "pred_";
@@ -1,26 +1,24 @@
1
- var FlagStatus = /* @__PURE__ */ ((FlagStatus2) => {
2
- FlagStatus2[FlagStatus2["Normal"] = 0] = "Normal";
3
- FlagStatus2[FlagStatus2["Skipped"] = 1] = "Skipped";
4
- FlagStatus2[FlagStatus2["Flagged"] = 2] = "Flagged";
5
- FlagStatus2[FlagStatus2["Deleted"] = 3] = "Deleted";
6
- return FlagStatus2;
7
- })(FlagStatus || {});
8
- var FeaturePrefixes = /* @__PURE__ */ ((FeaturePrefixes2) => {
9
- FeaturePrefixes2["Star"] = "annotation-star-";
10
- FeaturePrefixes2["Square"] = "annotation-square-";
11
- FeaturePrefixes2["Border"] = "annotation-border-";
12
- FeaturePrefixes2["PredBorder"] = "prediction-border-";
13
- return FeaturePrefixes2;
14
- })(FeaturePrefixes || {});
1
+ const FlagStatus = {
2
+ Normal: 0,
3
+ Skipped: 1,
4
+ Flagged: 2,
5
+ Deleted: 3
6
+ };
7
+ const FeaturePrefixes = {
8
+ Star: "annotation-star-",
9
+ Square: "annotation-square-",
10
+ Border: "annotation-border-",
11
+ PredBorder: "prediction-border-"
12
+ };
15
13
  const SelectionPrefixes = {
16
14
  TileSelection: "ts_",
17
15
  Prediction: "pred_",
18
16
  Annotation: "anno_"
19
17
  };
20
18
  const FlagStatusMessages = {
21
- [0 /* Normal */]: "",
22
- [1 /* Skipped */]: "(Skipped)",
23
- [2 /* Flagged */]: "(Flagged)"
19
+ [FlagStatus.Normal]: "",
20
+ [FlagStatus.Skipped]: "(Skipped)",
21
+ [FlagStatus.Flagged]: "(Flagged)"
24
22
  };
25
23
  export {
26
24
  FeaturePrefixes,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../constants/AiHisto.ts"],
4
- "sourcesContent": ["export enum FlagStatus {\n\tNormal = 0,\n\tSkipped = 1,\n\tFlagged = 2,\n\tDeleted = 3\n}\n\nexport enum FeaturePrefixes {\n\tStar = 'annotation-star-',\n\tSquare = 'annotation-square-',\n\tBorder = 'annotation-border-',\n\tPredBorder = 'prediction-border-'\n}\n\nexport const SelectionPrefixes = {\n\tTileSelection: 'ts_',\n\tPrediction: 'pred_',\n\tAnnotation: 'anno_'\n} as const\n\nexport type SelectionPrefixValues = (typeof SelectionPrefixes)[keyof typeof SelectionPrefixes]\n\nexport const FlagStatusMessages = {\n\t[FlagStatus.Normal]: '',\n\t[FlagStatus.Skipped]: '(Skipped)',\n\t[FlagStatus.Flagged]: '(Flagged)'\n}\n"],
5
- "mappings": "AAAO,IAAK,aAAL,kBAAKA,gBAAL;AACN,EAAAA,wBAAA,YAAS,KAAT;AACA,EAAAA,wBAAA,aAAU,KAAV;AACA,EAAAA,wBAAA,aAAU,KAAV;AACA,EAAAA,wBAAA,aAAU,KAAV;AAJW,SAAAA;AAAA,GAAA;AAOL,IAAK,kBAAL,kBAAKC,qBAAL;AACN,EAAAA,iBAAA,UAAO;AACP,EAAAA,iBAAA,YAAS;AACT,EAAAA,iBAAA,YAAS;AACT,EAAAA,iBAAA,gBAAa;AAJF,SAAAA;AAAA,GAAA;AAOL,MAAM,oBAAoB;AAAA,EAChC,eAAe;AAAA,EACf,YAAY;AAAA,EACZ,YAAY;AACb;AAIO,MAAM,qBAAqB;AAAA,EACjC,CAAC,cAAiB,GAAG;AAAA,EACrB,CAAC,eAAkB,GAAG;AAAA,EACtB,CAAC,eAAkB,GAAG;AACvB;",
6
- "names": ["FlagStatus", "FeaturePrefixes"]
4
+ "sourcesContent": ["export const FlagStatus = {\n\tNormal: 0,\n\tSkipped: 1,\n\tFlagged: 2,\n\tDeleted: 3\n} as const\n\nexport type FlagStatusValues = (typeof FlagStatus)[keyof typeof FlagStatus]\n\nexport const FeaturePrefixes = {\n\tStar: 'annotation-star-',\n\tSquare: 'annotation-square-',\n\tBorder: 'annotation-border-',\n\tPredBorder: 'prediction-border-'\n} as const\n\nexport type FeaturePrefixValues = (typeof FeaturePrefixes)[keyof typeof FeaturePrefixes]\n\nexport const SelectionPrefixes = {\n\tTileSelection: 'ts_',\n\tPrediction: 'pred_',\n\tAnnotation: 'anno_'\n} as const\n\nexport type SelectionPrefixValues = (typeof SelectionPrefixes)[keyof typeof SelectionPrefixes]\n//Didn't add Deleted to FlagStatusMessages because deleted annotations dont exist and deleted predictons are filtered out in /Users/jsimps98/dev/sjpp/proteinpaint/server/routes/aiProjectSelectedWSImages.ts line 119\nexport const FlagStatusMessages = {\n\t[FlagStatus.Normal]: '',\n\t[FlagStatus.Skipped]: '(Skipped)',\n\t[FlagStatus.Flagged]: '(Flagged)'\n}\n"],
5
+ "mappings": "AAAO,MAAM,aAAa;AAAA,EACzB,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,SAAS;AAAA,EACT,SAAS;AACV;AAIO,MAAM,kBAAkB;AAAA,EAC9B,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,YAAY;AACb;AAIO,MAAM,oBAAoB;AAAA,EAChC,eAAe;AAAA,EACf,YAAY;AAAA,EACZ,YAAY;AACb;AAIO,MAAM,qBAAqB;AAAA,EACjC,CAAC,WAAW,MAAM,GAAG;AAAA,EACrB,CAAC,WAAW,OAAO,GAAG;AAAA,EACtB,CAAC,WAAW,OAAO,GAAG;AACvB;",
6
+ "names": []
7
7
  }
@@ -1,5 +1,5 @@
1
1
  import { type TileSelection } from '@sjcrh/proteinpaint-types';
2
- import type { FeaturePrefixes, SelectionPrefixValues } from '../constants/AiHisto.js';
2
+ import type { FeaturePrefixValues, SelectionPrefixValues } from '../constants/AiHisto.js';
3
3
  export declare function createSelectionID(prefix: SelectionPrefixValues, coordinates: [number, number]): string;
4
4
  export declare function checkSelectionType(tileSelection: TileSelection, suspectedPrefix: SelectionPrefixValues): boolean;
5
- export declare function createFeatureID(featurePrefix: FeaturePrefixes, coords: [number, number]): string;
5
+ export declare function createFeatureID(featurePrefix: FeaturePrefixValues, coords: [number, number]): string;
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/aiHisto.ts"],
4
- "sourcesContent": ["import { type TileSelection } from '@sjcrh/proteinpaint-types'\nimport type { FeaturePrefixes, SelectionPrefixValues } from '../constants/AiHisto.js'\n\nexport function createSelectionID(prefix: SelectionPrefixValues, coordinates: [number, number]): string {\n\treturn prefix + JSON.stringify(coordinates)\n}\n\nexport function checkSelectionType(tileSelection: TileSelection, suspectedPrefix: SelectionPrefixValues): boolean {\n\treturn tileSelection.id.startsWith(suspectedPrefix)\n}\n\nexport function createFeatureID(featurePrefix: FeaturePrefixes, coords: [number, number]) {\n\treturn featurePrefix + JSON.stringify(coords)\n}\n"],
5
- "mappings": "AAGO,SAAS,kBAAkB,QAA+B,aAAuC;AACvG,SAAO,SAAS,KAAK,UAAU,WAAW;AAC3C;AAEO,SAAS,mBAAmB,eAA8B,iBAAiD;AACjH,SAAO,cAAc,GAAG,WAAW,eAAe;AACnD;AAEO,SAAS,gBAAgB,eAAgC,QAA0B;AACzF,SAAO,gBAAgB,KAAK,UAAU,MAAM;AAC7C;",
4
+ "sourcesContent": ["import { type TileSelection } from '@sjcrh/proteinpaint-types'\nimport type { FeaturePrefixValues, SelectionPrefixValues } from '../constants/AiHisto.js'\n\nexport function createSelectionID(prefix: SelectionPrefixValues, coordinates: [number, number]): string {\n\treturn prefix + JSON.stringify(coordinates)\n}\n\nexport function checkSelectionType(tileSelection: TileSelection, suspectedPrefix: SelectionPrefixValues): boolean {\n\treturn tileSelection.id.startsWith(suspectedPrefix)\n}\n\nexport function createFeatureID(featurePrefix: FeaturePrefixValues, coords: [number, number]) {\n\treturn featurePrefix + JSON.stringify(coords)\n}\n"],
5
+ "mappings": "AAGO,SAAS,kBAAkB,QAA+B,aAAuC;AACvG,SAAO,SAAS,KAAK,UAAU,WAAW;AAC3C;AAEO,SAAS,mBAAmB,eAA8B,iBAAiD;AACjH,SAAO,cAAc,GAAG,WAAW,eAAe;AACnD;AAEO,SAAS,gBAAgB,eAAoC,QAA0B;AAC7F,SAAO,gBAAgB,KAAK,UAAU,MAAM;AAC7C;",
6
6
  "names": []
7
7
  }
@@ -0,0 +1,2 @@
1
+ export declare function parseheader(line: any, flag: any): false | "invalid file header for CNV" | "gene missing from header" | "CNV missing from header";
2
+ export declare function parseline(i: any, line: any, flag: any): void;
@@ -65,7 +65,7 @@ function parseline(i, line, flag) {
65
65
  if (!m.class) {
66
66
  return;
67
67
  }
68
- if (bulk.parsesample(m, flag, i, lst, flag.cnv.badlines)) {
68
+ if (bulk.parsesample(m, flag, i, lst)) {
69
69
  return;
70
70
  }
71
71
  m.dt = common.dtcnv;
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../src/bulk.cnv.js"],
4
- "sourcesContent": ["////////////////////////////////////\n//\n// shared between client and server\n//\n////////////////////////////////////\n\nimport * as common from './common.js'\nimport * as bulk from './bulk.js'\n\nexport function parseheader(line, flag) {\n\tconst header = line.toLowerCase().split('\\t')\n\tif (header.length <= 1) return 'invalid file header for CNV'\n\tconst htry = (...lst) => {\n\t\tfor (const i of lst) {\n\t\t\tconst j = header.indexOf(i)\n\t\t\tif (j != -1) return j\n\t\t}\n\t\treturn -1\n\t}\n\tlet i = htry('gene')\n\tif (i == -1) return 'gene missing from header'\n\theader[i] = 'gene'\n\ti = htry('cnv')\n\tif (i == -1) return 'CNV missing from header'\n\theader[i] = 'cnv'\n\ti = htry('sample', 'sample_name', 'tumor_sample_barcode')\n\tif (i != -1) header[i] = 'sample'\n\ti = htry('patient', 'donor', 'target_case_id')\n\tif (i != -1) header[i] = 'patient'\n\ti = htry('disease')\n\tif (i != -1) header[i] = 'disease'\n\ti = htry('origin')\n\tif (i != -1) header[i] = 'origin'\n\ti = htry('sampletype', 'sample type', 'sample_type')\n\tif (i != -1) header[i] = 'sampletype'\n\tflag.cnv.header = header\n\tflag.cnv.loaded = true\n\treturn false\n}\n\nexport function parseline(i, line, flag) {\n\tif (line == '' || line[0] == '#') return\n\tconst lst = line.split('\\t')\n\tconst m = {}\n\tfor (let j = 0; j < flag.cnv.header.length; j++) {\n\t\tm[flag.cnv.header[j]] = lst[j]\n\t}\n\tif (!m.gene) {\n\t\tflag.cnv.badlines.push([i, 'missing gene', lst])\n\t\treturn\n\t}\n\tif (!m.cnv) {\n\t\tflag.cnv.badlines.push([i, 'missing cnv value', lst])\n\t\treturn\n\t}\n\tconst value = m.cnv.toLowerCase()\n\tswitch (value) {\n\t\tcase 'amplification':\n\t\tcase 'gain':\n\t\t\tm.class = common.mclasscnvgain\n\t\t\tbreak\n\t\tcase 'deletion':\n\t\tcase 'loss':\n\t\t\tm.class = common.mclasscnvloss\n\t\t\tbreak\n\t\tcase 'loh':\n\t\t\tm.class = common.mclasscnvloh\n\t\t\tbreak\n\t\tdefault:\n\t\t\tflag.cnv.badlines.push([i, 'invalid cnv value: ' + m.cnv, lst])\n\t\t\tm.class = null\n\t}\n\tif (!m.class) {\n\t\treturn\n\t}\n\tif (bulk.parsesample(m, flag, i, lst, flag.cnv.badlines)) {\n\t\treturn\n\t}\n\tm.dt = common.dtcnv\n\tflag.good++\n\tconst n = flag.geneToUpper ? m.gene.toUpperCase() : m.gene\n\tif (!(n in flag.data)) {\n\t\tflag.data[n] = []\n\t}\n\tflag.data[n].push(m)\n}\n"],
5
- "mappings": "AAMA,YAAY,YAAY;AACxB,YAAY,UAAU;AAEf,SAAS,YAAY,MAAM,MAAM;AACvC,QAAM,SAAS,KAAK,YAAY,EAAE,MAAM,GAAI;AAC5C,MAAI,OAAO,UAAU,EAAG,QAAO;AAC/B,QAAM,OAAO,IAAI,QAAQ;AACxB,eAAWA,MAAK,KAAK;AACpB,YAAM,IAAI,OAAO,QAAQA,EAAC;AAC1B,UAAI,KAAK,GAAI,QAAO;AAAA,IACrB;AACA,WAAO;AAAA,EACR;AACA,MAAI,IAAI,KAAK,MAAM;AACnB,MAAI,KAAK,GAAI,QAAO;AACpB,SAAO,CAAC,IAAI;AACZ,MAAI,KAAK,KAAK;AACd,MAAI,KAAK,GAAI,QAAO;AACpB,SAAO,CAAC,IAAI;AACZ,MAAI,KAAK,UAAU,eAAe,sBAAsB;AACxD,MAAI,KAAK,GAAI,QAAO,CAAC,IAAI;AACzB,MAAI,KAAK,WAAW,SAAS,gBAAgB;AAC7C,MAAI,KAAK,GAAI,QAAO,CAAC,IAAI;AACzB,MAAI,KAAK,SAAS;AAClB,MAAI,KAAK,GAAI,QAAO,CAAC,IAAI;AACzB,MAAI,KAAK,QAAQ;AACjB,MAAI,KAAK,GAAI,QAAO,CAAC,IAAI;AACzB,MAAI,KAAK,cAAc,eAAe,aAAa;AACnD,MAAI,KAAK,GAAI,QAAO,CAAC,IAAI;AACzB,OAAK,IAAI,SAAS;AAClB,OAAK,IAAI,SAAS;AAClB,SAAO;AACR;AAEO,SAAS,UAAU,GAAG,MAAM,MAAM;AACxC,MAAI,QAAQ,MAAM,KAAK,CAAC,KAAK,IAAK;AAClC,QAAM,MAAM,KAAK,MAAM,GAAI;AAC3B,QAAM,IAAI,CAAC;AACX,WAAS,IAAI,GAAG,IAAI,KAAK,IAAI,OAAO,QAAQ,KAAK;AAChD,MAAE,KAAK,IAAI,OAAO,CAAC,CAAC,IAAI,IAAI,CAAC;AAAA,EAC9B;AACA,MAAI,CAAC,EAAE,MAAM;AACZ,SAAK,IAAI,SAAS,KAAK,CAAC,GAAG,gBAAgB,GAAG,CAAC;AAC/C;AAAA,EACD;AACA,MAAI,CAAC,EAAE,KAAK;AACX,SAAK,IAAI,SAAS,KAAK,CAAC,GAAG,qBAAqB,GAAG,CAAC;AACpD;AAAA,EACD;AACA,QAAM,QAAQ,EAAE,IAAI,YAAY;AAChC,UAAQ,OAAO;AAAA,IACd,KAAK;AAAA,IACL,KAAK;AACJ,QAAE,QAAQ,OAAO;AACjB;AAAA,IACD,KAAK;AAAA,IACL,KAAK;AACJ,QAAE,QAAQ,OAAO;AACjB;AAAA,IACD,KAAK;AACJ,QAAE,QAAQ,OAAO;AACjB;AAAA,IACD;AACC,WAAK,IAAI,SAAS,KAAK,CAAC,GAAG,wBAAwB,EAAE,KAAK,GAAG,CAAC;AAC9D,QAAE,QAAQ;AAAA,EACZ;AACA,MAAI,CAAC,EAAE,OAAO;AACb;AAAA,EACD;AACA,MAAI,KAAK,YAAY,GAAG,MAAM,GAAG,KAAK,KAAK,IAAI,QAAQ,GAAG;AACzD;AAAA,EACD;AACA,IAAE,KAAK,OAAO;AACd,OAAK;AACL,QAAM,IAAI,KAAK,cAAc,EAAE,KAAK,YAAY,IAAI,EAAE;AACtD,MAAI,EAAE,KAAK,KAAK,OAAO;AACtB,SAAK,KAAK,CAAC,IAAI,CAAC;AAAA,EACjB;AACA,OAAK,KAAK,CAAC,EAAE,KAAK,CAAC;AACpB;",
3
+ "sources": ["../../src/bulk.cnv.ts"],
4
+ "sourcesContent": ["////////////////////////////////////\n//\n// shared between client and server\n//\n////////////////////////////////////\n\nimport * as common from './common.js'\nimport * as bulk from './bulk.js'\n\nexport function parseheader(line, flag) {\n\tconst header = line.toLowerCase().split('\\t')\n\tif (header.length <= 1) return 'invalid file header for CNV'\n\tconst htry = (...lst) => {\n\t\tfor (const i of lst) {\n\t\t\tconst j = header.indexOf(i)\n\t\t\tif (j != -1) return j\n\t\t}\n\t\treturn -1\n\t}\n\tlet i = htry('gene')\n\tif (i == -1) return 'gene missing from header'\n\theader[i] = 'gene'\n\ti = htry('cnv')\n\tif (i == -1) return 'CNV missing from header'\n\theader[i] = 'cnv'\n\ti = htry('sample', 'sample_name', 'tumor_sample_barcode')\n\tif (i != -1) header[i] = 'sample'\n\ti = htry('patient', 'donor', 'target_case_id')\n\tif (i != -1) header[i] = 'patient'\n\ti = htry('disease')\n\tif (i != -1) header[i] = 'disease'\n\ti = htry('origin')\n\tif (i != -1) header[i] = 'origin'\n\ti = htry('sampletype', 'sample type', 'sample_type')\n\tif (i != -1) header[i] = 'sampletype'\n\tflag.cnv.header = header\n\tflag.cnv.loaded = true\n\treturn false\n}\n\nexport function parseline(i, line, flag) {\n\tif (line == '' || line[0] == '#') return\n\tconst lst = line.split('\\t')\n\tconst m: Record<string, any> = {}\n\tfor (let j = 0; j < flag.cnv.header.length; j++) {\n\t\tm[flag.cnv.header[j]] = lst[j]\n\t}\n\tif (!m.gene) {\n\t\tflag.cnv.badlines.push([i, 'missing gene', lst])\n\t\treturn\n\t}\n\tif (!m.cnv) {\n\t\tflag.cnv.badlines.push([i, 'missing cnv value', lst])\n\t\treturn\n\t}\n\tconst value = m.cnv.toLowerCase()\n\tswitch (value) {\n\t\tcase 'amplification':\n\t\tcase 'gain':\n\t\t\tm.class = common.mclasscnvgain\n\t\t\tbreak\n\t\tcase 'deletion':\n\t\tcase 'loss':\n\t\t\tm.class = common.mclasscnvloss\n\t\t\tbreak\n\t\tcase 'loh':\n\t\t\tm.class = common.mclasscnvloh\n\t\t\tbreak\n\t\tdefault:\n\t\t\tflag.cnv.badlines.push([i, 'invalid cnv value: ' + m.cnv, lst])\n\t\t\tm.class = null\n\t}\n\tif (!m.class) {\n\t\treturn\n\t}\n\tif (bulk.parsesample(m, flag, i, lst)) {\n\t\treturn\n\t}\n\tm.dt = common.dtcnv\n\tflag.good++\n\tconst n = flag.geneToUpper ? m.gene.toUpperCase() : m.gene\n\tif (!(n in flag.data)) {\n\t\tflag.data[n] = []\n\t}\n\tflag.data[n].push(m)\n}\n"],
5
+ "mappings": "AAMA,YAAY,YAAY;AACxB,YAAY,UAAU;AAEf,SAAS,YAAY,MAAM,MAAM;AACvC,QAAM,SAAS,KAAK,YAAY,EAAE,MAAM,GAAI;AAC5C,MAAI,OAAO,UAAU,EAAG,QAAO;AAC/B,QAAM,OAAO,IAAI,QAAQ;AACxB,eAAWA,MAAK,KAAK;AACpB,YAAM,IAAI,OAAO,QAAQA,EAAC;AAC1B,UAAI,KAAK,GAAI,QAAO;AAAA,IACrB;AACA,WAAO;AAAA,EACR;AACA,MAAI,IAAI,KAAK,MAAM;AACnB,MAAI,KAAK,GAAI,QAAO;AACpB,SAAO,CAAC,IAAI;AACZ,MAAI,KAAK,KAAK;AACd,MAAI,KAAK,GAAI,QAAO;AACpB,SAAO,CAAC,IAAI;AACZ,MAAI,KAAK,UAAU,eAAe,sBAAsB;AACxD,MAAI,KAAK,GAAI,QAAO,CAAC,IAAI;AACzB,MAAI,KAAK,WAAW,SAAS,gBAAgB;AAC7C,MAAI,KAAK,GAAI,QAAO,CAAC,IAAI;AACzB,MAAI,KAAK,SAAS;AAClB,MAAI,KAAK,GAAI,QAAO,CAAC,IAAI;AACzB,MAAI,KAAK,QAAQ;AACjB,MAAI,KAAK,GAAI,QAAO,CAAC,IAAI;AACzB,MAAI,KAAK,cAAc,eAAe,aAAa;AACnD,MAAI,KAAK,GAAI,QAAO,CAAC,IAAI;AACzB,OAAK,IAAI,SAAS;AAClB,OAAK,IAAI,SAAS;AAClB,SAAO;AACR;AAEO,SAAS,UAAU,GAAG,MAAM,MAAM;AACxC,MAAI,QAAQ,MAAM,KAAK,CAAC,KAAK,IAAK;AAClC,QAAM,MAAM,KAAK,MAAM,GAAI;AAC3B,QAAM,IAAyB,CAAC;AAChC,WAAS,IAAI,GAAG,IAAI,KAAK,IAAI,OAAO,QAAQ,KAAK;AAChD,MAAE,KAAK,IAAI,OAAO,CAAC,CAAC,IAAI,IAAI,CAAC;AAAA,EAC9B;AACA,MAAI,CAAC,EAAE,MAAM;AACZ,SAAK,IAAI,SAAS,KAAK,CAAC,GAAG,gBAAgB,GAAG,CAAC;AAC/C;AAAA,EACD;AACA,MAAI,CAAC,EAAE,KAAK;AACX,SAAK,IAAI,SAAS,KAAK,CAAC,GAAG,qBAAqB,GAAG,CAAC;AACpD;AAAA,EACD;AACA,QAAM,QAAQ,EAAE,IAAI,YAAY;AAChC,UAAQ,OAAO;AAAA,IACd,KAAK;AAAA,IACL,KAAK;AACJ,QAAE,QAAQ,OAAO;AACjB;AAAA,IACD,KAAK;AAAA,IACL,KAAK;AACJ,QAAE,QAAQ,OAAO;AACjB;AAAA,IACD,KAAK;AACJ,QAAE,QAAQ,OAAO;AACjB;AAAA,IACD;AACC,WAAK,IAAI,SAAS,KAAK,CAAC,GAAG,wBAAwB,EAAE,KAAK,GAAG,CAAC;AAC9D,QAAE,QAAQ;AAAA,EACZ;AACA,MAAI,CAAC,EAAE,OAAO;AACb;AAAA,EACD;AACA,MAAI,KAAK,YAAY,GAAG,MAAM,GAAG,GAAG,GAAG;AACtC;AAAA,EACD;AACA,IAAE,KAAK,OAAO;AACd,OAAK;AACL,QAAM,IAAI,KAAK,cAAc,EAAE,KAAK,YAAY,IAAI,EAAE;AACtD,MAAI,EAAE,KAAK,KAAK,OAAO;AACtB,SAAK,KAAK,CAAC,IAAI,CAAC;AAAA,EACjB;AACA,OAAK,KAAK,CAAC,EAAE,KAAK,CAAC;AACpB;",
6
6
  "names": ["i"]
7
7
  }
@@ -0,0 +1,56 @@
1
+ declare const _default: {};
2
+ export default _default;
3
+ export declare function init_bulk_flag(genome: any): {
4
+ genome: any;
5
+ mclasslabel2key: {};
6
+ data: {};
7
+ sample2disease: {};
8
+ patient2st: {};
9
+ good: number;
10
+ geneToUpper: boolean;
11
+ snv: {
12
+ loaded: boolean;
13
+ header: null;
14
+ badlines: never[];
15
+ missense: number;
16
+ silent: number;
17
+ };
18
+ svjson: {
19
+ loaded: boolean;
20
+ header: null;
21
+ badlines: never[];
22
+ };
23
+ fusion: {
24
+ loaded: boolean;
25
+ header: null;
26
+ badlines: never[];
27
+ original: never[];
28
+ };
29
+ sv: {
30
+ loaded: boolean;
31
+ header: null;
32
+ badlines: never[];
33
+ original: never[];
34
+ };
35
+ cnv: {
36
+ loaded: boolean;
37
+ header: null;
38
+ badlines: never[];
39
+ };
40
+ itd: {
41
+ loaded: boolean;
42
+ header: null;
43
+ badlines: never[];
44
+ };
45
+ del: {
46
+ loaded: boolean;
47
+ header: null;
48
+ badlines: never[];
49
+ };
50
+ truncation: {
51
+ loaded: boolean;
52
+ header: null;
53
+ badlines: never[];
54
+ };
55
+ } | null;
56
+ export declare function parsesample(m: any, flag: any, i: any, lst: any): boolean | undefined;
@@ -0,0 +1,2 @@
1
+ export declare function parseheader(line: any, flag: any): false | "gene missing from header" | "invalid header line for intragenic deletion" | "isoform missing from header" | "rnadellength is required when rnaPosition is used" | "chr_start is required when chr is used" | "chr_stop is required when chr is used";
2
+ export declare function parseline(i: any, line: any, flag: any): void;
@@ -99,14 +99,14 @@ function parseline(i, line, flag) {
99
99
  }
100
100
  m.chrpos2 = v;
101
101
  }
102
- if (bulk.parsesample(m, flag, i, lst, flag.del.badlines)) {
102
+ if (bulk.parsesample(m, flag, i, lst)) {
103
103
  return;
104
104
  }
105
105
  m.dt = common.dtdel;
106
106
  m.class = common.mclassdel;
107
107
  m.mname = "DEL";
108
108
  flag.good++;
109
- var n = flag.geneToUpper ? m.gene.toUpperCase() : m.gene;
109
+ const n = flag.geneToUpper ? m.gene.toUpperCase() : m.gene;
110
110
  if (!(n in flag.data)) {
111
111
  flag.data[n] = [];
112
112
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../src/bulk.del.js"],
4
- "sourcesContent": ["////////////////////////////////////\n//\n// shared between client and server\n//\n////////////////////////////////////\n\nimport * as common from './common.js'\nimport * as bulk from './bulk.js'\n\nexport function parseheader(line, flag) {\n\tconst header = line.toLowerCase().split('\\t')\n\tif (header.length <= 1) return 'invalid header line for intragenic deletion'\n\tconst htry = (...lst) => {\n\t\tfor (const i of lst) {\n\t\t\tconst j = header.indexOf(i)\n\t\t\tif (j != -1) return j\n\t\t}\n\t\treturn -1\n\t}\n\tlet i = htry('gene')\n\tif (i == -1) return 'gene missing from header'\n\theader[i] = 'gene'\n\ti = htry(\n\t\t'annovar_isoform',\n\t\t'mrna_accession',\n\t\t'mrna accession',\n\t\t'refseq_mrna_id',\n\t\t'annovar_sj_filter_isoform',\n\t\t'refseq',\n\t\t'isoform'\n\t)\n\tif (i == -1) return 'isoform missing from header'\n\theader[i] = 'isoform'\n\ti = htry('rnaposition')\n\tif (i != -1) {\n\t\theader[i] = 'rnaposition'\n\t\ti = htry('rnadellength')\n\t\tif (i == -1) return 'rnadellength is required when rnaPosition is used'\n\t\theader[i] = 'rnadellength'\n\t}\n\ti = htry('chromosome', 'chr')\n\tif (i != -1) {\n\t\theader[i] = 'chr'\n\t\ti = htry('chr_start')\n\t\tif (i == -1) return 'chr_start is required when chr is used'\n\t\theader[i] = 'chrpos1'\n\t\ti = htry('chr_stop')\n\t\tif (i == -1) return 'chr_stop is required when chr is used'\n\t\theader[i] = 'chrpos2'\n\t}\n\n\ti = htry('sample', 'sample_name', 'tumor_sample_barcode')\n\tif (i != -1) header[i] = 'sample'\n\ti = htry('patient', 'donor', 'target_case_id')\n\tif (i != -1) header[i] = 'patient'\n\ti = htry('disease')\n\tif (i != -1) header[i] = 'disease'\n\ti = htry('origin')\n\tif (i != -1) header[i] = 'origin'\n\ti = htry('sampletype', 'sample type', 'sample_type')\n\tif (i != -1) header[i] = 'sampletype'\n\tflag.del.header = header\n\tflag.del.loaded = true\n\treturn false\n}\n\nexport function parseline(i, line, flag) {\n\tif (line == '' || line[0] == '#') return\n\tconst lst = line.split('\\t')\n\tconst m = {}\n\tfor (let j = 0; j < flag.del.header.length; j++) {\n\t\tif (lst[j] == undefined) break\n\t\tm[flag.del.header[j]] = lst[j]\n\t}\n\tif (!m.gene) {\n\t\tflag.del.badlines.push([i, 'missing gene', lst])\n\t\treturn\n\t}\n\tif (m.rnaposition) {\n\t\tlet v = Number.parseInt(m.rnaposition)\n\t\tif (Number.isNaN(v) || v < 0) {\n\t\t\tflag.del.badlines.push([i, 'invalid rnaPosition value', lst])\n\t\t\treturn\n\t\t}\n\t\tm.rnaposition = v\n\t\tif (!m.rnadellength) {\n\t\t\tflag.del.badlines.push([i, 'missing rnaDellength value', lst])\n\t\t\treturn\n\t\t}\n\t\tv = Number.parseInt(m.rnadellength)\n\t\tif (Number.isNaN(v) || v < 0) {\n\t\t\tflag.del.badlines.push([i, 'invalid rnaDellength value', lst])\n\t\t\treturn\n\t\t}\n\t\tm.rnadellength = v\n\t}\n\tif (m.chr) {\n\t\tlet v = Number.parseInt(m.chrpos1)\n\t\tif (Number.isNaN(v) || v < 0) {\n\t\t\tflag.del.badlines.push([i, 'invalid chr_start value', lst])\n\t\t\treturn\n\t\t}\n\t\tm.chrpos1 = v\n\t\tv = Number.parseInt(m.chrpos2)\n\t\tif (Number.isNaN(v) || v < 0) {\n\t\t\tflag.del.badlines.push([i, 'invalid chr_stop value', lst])\n\t\t\treturn\n\t\t}\n\t\tm.chrpos2 = v\n\t}\n\n\tif (bulk.parsesample(m, flag, i, lst, flag.del.badlines)) {\n\t\treturn\n\t}\n\tm.dt = common.dtdel\n\tm.class = common.mclassdel\n\tm.mname = 'DEL'\n\tflag.good++\n\tvar n = flag.geneToUpper ? m.gene.toUpperCase() : m.gene\n\tif (!(n in flag.data)) {\n\t\tflag.data[n] = []\n\t}\n\tflag.data[n].push(m)\n}\n"],
5
- "mappings": "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",
3
+ "sources": ["../../src/bulk.del.ts"],
4
+ "sourcesContent": ["////////////////////////////////////\n//\n// shared between client and server\n//\n////////////////////////////////////\n\nimport * as common from './common.js'\nimport * as bulk from './bulk.js'\n\nexport function parseheader(line, flag) {\n\tconst header = line.toLowerCase().split('\\t')\n\tif (header.length <= 1) return 'invalid header line for intragenic deletion'\n\tconst htry = (...lst) => {\n\t\tfor (const i of lst) {\n\t\t\tconst j = header.indexOf(i)\n\t\t\tif (j != -1) return j\n\t\t}\n\t\treturn -1\n\t}\n\tlet i = htry('gene')\n\tif (i == -1) return 'gene missing from header'\n\theader[i] = 'gene'\n\ti = htry(\n\t\t'annovar_isoform',\n\t\t'mrna_accession',\n\t\t'mrna accession',\n\t\t'refseq_mrna_id',\n\t\t'annovar_sj_filter_isoform',\n\t\t'refseq',\n\t\t'isoform'\n\t)\n\tif (i == -1) return 'isoform missing from header'\n\theader[i] = 'isoform'\n\ti = htry('rnaposition')\n\tif (i != -1) {\n\t\theader[i] = 'rnaposition'\n\t\ti = htry('rnadellength')\n\t\tif (i == -1) return 'rnadellength is required when rnaPosition is used'\n\t\theader[i] = 'rnadellength'\n\t}\n\ti = htry('chromosome', 'chr')\n\tif (i != -1) {\n\t\theader[i] = 'chr'\n\t\ti = htry('chr_start')\n\t\tif (i == -1) return 'chr_start is required when chr is used'\n\t\theader[i] = 'chrpos1'\n\t\ti = htry('chr_stop')\n\t\tif (i == -1) return 'chr_stop is required when chr is used'\n\t\theader[i] = 'chrpos2'\n\t}\n\n\ti = htry('sample', 'sample_name', 'tumor_sample_barcode')\n\tif (i != -1) header[i] = 'sample'\n\ti = htry('patient', 'donor', 'target_case_id')\n\tif (i != -1) header[i] = 'patient'\n\ti = htry('disease')\n\tif (i != -1) header[i] = 'disease'\n\ti = htry('origin')\n\tif (i != -1) header[i] = 'origin'\n\ti = htry('sampletype', 'sample type', 'sample_type')\n\tif (i != -1) header[i] = 'sampletype'\n\tflag.del.header = header\n\tflag.del.loaded = true\n\treturn false\n}\n\nexport function parseline(i, line, flag) {\n\tif (line == '' || line[0] == '#') return\n\tconst lst = line.split('\\t')\n\tconst m: Record<string, any> = {}\n\tfor (let j = 0; j < flag.del.header.length; j++) {\n\t\tif (lst[j] == undefined) break\n\t\tm[flag.del.header[j]] = lst[j]\n\t}\n\tif (!m.gene) {\n\t\tflag.del.badlines.push([i, 'missing gene', lst])\n\t\treturn\n\t}\n\tif (m.rnaposition) {\n\t\tlet v = Number.parseInt(m.rnaposition)\n\t\tif (Number.isNaN(v) || v < 0) {\n\t\t\tflag.del.badlines.push([i, 'invalid rnaPosition value', lst])\n\t\t\treturn\n\t\t}\n\t\tm.rnaposition = v\n\t\tif (!m.rnadellength) {\n\t\t\tflag.del.badlines.push([i, 'missing rnaDellength value', lst])\n\t\t\treturn\n\t\t}\n\t\tv = Number.parseInt(m.rnadellength)\n\t\tif (Number.isNaN(v) || v < 0) {\n\t\t\tflag.del.badlines.push([i, 'invalid rnaDellength value', lst])\n\t\t\treturn\n\t\t}\n\t\tm.rnadellength = v\n\t}\n\tif (m.chr) {\n\t\tlet v = Number.parseInt(m.chrpos1)\n\t\tif (Number.isNaN(v) || v < 0) {\n\t\t\tflag.del.badlines.push([i, 'invalid chr_start value', lst])\n\t\t\treturn\n\t\t}\n\t\tm.chrpos1 = v\n\t\tv = Number.parseInt(m.chrpos2)\n\t\tif (Number.isNaN(v) || v < 0) {\n\t\t\tflag.del.badlines.push([i, 'invalid chr_stop value', lst])\n\t\t\treturn\n\t\t}\n\t\tm.chrpos2 = v\n\t}\n\n\tif (bulk.parsesample(m, flag, i, lst)) {\n\t\treturn\n\t}\n\tm.dt = common.dtdel\n\tm.class = common.mclassdel\n\tm.mname = 'DEL'\n\tflag.good++\n\tconst n = flag.geneToUpper ? m.gene.toUpperCase() : m.gene\n\tif (!(n in flag.data)) {\n\t\tflag.data[n] = []\n\t}\n\tflag.data[n].push(m)\n}\n"],
5
+ "mappings": "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",
6
6
  "names": ["i"]
7
7
  }
@@ -0,0 +1,2 @@
1
+ export declare function parseheader(line: any, flag: any): false | "gene missing from header" | "isoform missing from header" | "invalid header line for ITD" | "rnaduplength is required when rnaposition is present" | "chr_start is required when chr is present" | "chr_stop is required when chr is present";
2
+ export declare function parseline(i: any, line: any, flag: any): void;
@@ -99,14 +99,14 @@ function parseline(i, line, flag) {
99
99
  }
100
100
  m.chrpos2 = v;
101
101
  }
102
- if (bulk.parsesample(m, flag, i, lst, flag.itd.badlines)) {
102
+ if (bulk.parsesample(m, flag, i, lst)) {
103
103
  return;
104
104
  }
105
105
  m.dt = common.dtitd;
106
106
  m.class = common.mclassitd;
107
107
  m.mname = "ITD";
108
108
  flag.good++;
109
- var n = flag.geneToUpper ? m.gene.toUpperCase() : m.gene;
109
+ const n = flag.geneToUpper ? m.gene.toUpperCase() : m.gene;
110
110
  if (!(n in flag.data)) {
111
111
  flag.data[n] = [];
112
112
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../src/bulk.itd.js"],
4
- "sourcesContent": ["////////////////////////////////////\n//\n// shared between client and server\n//\n////////////////////////////////////\n\nimport * as common from './common.js'\nimport * as bulk from './bulk.js'\n\nexport function parseheader(line, flag) {\n\tconst header = line.toLowerCase().split('\\t')\n\tif (header.length <= 1) return 'invalid header line for ITD'\n\tconst htry = (...lst) => {\n\t\tfor (const i of lst) {\n\t\t\tconst j = header.indexOf(i)\n\t\t\tif (j != -1) return j\n\t\t}\n\t\treturn -1\n\t}\n\tlet i = htry('gene')\n\tif (i == -1) return 'gene missing from header'\n\theader[i] = 'gene'\n\ti = htry(\n\t\t'annovar_isoform',\n\t\t'mrna_accession',\n\t\t'mrna accession',\n\t\t'refseq_mrna_id',\n\t\t'annovar_sj_filter_isoform',\n\t\t'refseq',\n\t\t'isoform'\n\t)\n\tif (i == -1) return 'isoform missing from header'\n\theader[i] = 'isoform'\n\ti = htry('rnaposition')\n\tif (i != -1) {\n\t\theader[i] = 'rnaposition'\n\t\ti = htry('rnaduplength')\n\t\tif (i == -1) return 'rnaduplength is required when rnaposition is present'\n\t\theader[i] = 'rnaduplength'\n\t}\n\ti = htry('chromosome', 'chr')\n\tif (i != -1) {\n\t\theader[i] = 'chr'\n\t\ti = htry('chr_start')\n\t\tif (i == -1) return 'chr_start is required when chr is present'\n\t\theader[i] = 'chrpos1'\n\t\ti = htry('chr_stop')\n\t\tif (i == -1) return 'chr_stop is required when chr is present'\n\t\theader[i] = 'chrpos2'\n\t}\n\n\ti = htry('sample', 'sample_name', 'tumor_sample_barcode')\n\tif (i != -1) header[i] = 'sample'\n\ti = htry('patient', 'donor', 'target_case_id')\n\tif (i != -1) header[i] = 'patient'\n\ti = htry('disease')\n\tif (i != -1) header[i] = 'disease'\n\ti = htry('origin')\n\tif (i != -1) header[i] = 'origin'\n\ti = htry('sampletype', 'sample type', 'sample_type')\n\tif (i != -1) header[i] = 'sampletype'\n\tflag.itd.header = header\n\tflag.itd.loaded = true\n\treturn false\n}\n\nexport function parseline(i, line, flag) {\n\tif (line == '' || line[0] == '#') return\n\tconst lst = line.split('\\t')\n\tconst m = {}\n\tfor (let j = 0; j < flag.itd.header.length; j++) {\n\t\tif (lst[j] == undefined) break\n\t\tm[flag.itd.header[j]] = lst[j]\n\t}\n\tif (!m.gene) {\n\t\tflag.itd.badlines.push([i, 'missing gene', lst])\n\t\treturn\n\t}\n\tif (m.rnaposition) {\n\t\tlet v = Number.parseInt(m.rnaposition)\n\t\tif (Number.isNaN(v) || v < 0) {\n\t\t\tflag.itd.badlines.push([i, 'invalid rnaPosition value', lst])\n\t\t\treturn\n\t\t}\n\t\tm.rnaposition = v\n\t\tif (!m.rnaduplength) {\n\t\t\tflag.itd.badlines.push([i, 'missing rnaDuplength value', lst])\n\t\t\treturn\n\t\t}\n\t\tv = Number.parseInt(m.rnaduplength)\n\t\tif (Number.isNaN(v) || v < 0) {\n\t\t\tflag.itd.badlines.push([i, 'invalid rnaDuplength value', lst])\n\t\t\treturn\n\t\t}\n\t\tm.rnaduplength = v\n\t}\n\tif (m.chr) {\n\t\tlet v = Number.parseInt(m.chrpos1)\n\t\tif (Number.isNaN(v) || v < 0) {\n\t\t\tflag.itd.badlines.push([i, 'invalid chr_start value', lst])\n\t\t\treturn\n\t\t}\n\t\tm.chrpos1 = v\n\t\tv = Number.parseInt(m.chrpos2)\n\t\tif (Number.isNaN(v) || v < 0) {\n\t\t\tflag.itd.badlines.push([i, 'invalid chr_stop value', lst])\n\t\t\treturn\n\t\t}\n\t\tm.chrpos2 = v\n\t}\n\tif (bulk.parsesample(m, flag, i, lst, flag.itd.badlines)) {\n\t\treturn\n\t}\n\tm.dt = common.dtitd\n\tm.class = common.mclassitd\n\tm.mname = 'ITD'\n\tflag.good++\n\tvar n = flag.geneToUpper ? m.gene.toUpperCase() : m.gene\n\tif (!(n in flag.data)) {\n\t\tflag.data[n] = []\n\t}\n\tflag.data[n].push(m)\n}\n"],
5
- "mappings": "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",
3
+ "sources": ["../../src/bulk.itd.ts"],
4
+ "sourcesContent": ["////////////////////////////////////\n//\n// shared between client and server\n//\n////////////////////////////////////\n\nimport * as common from './common.js'\nimport * as bulk from './bulk.js'\n\nexport function parseheader(line, flag) {\n\tconst header = line.toLowerCase().split('\\t')\n\tif (header.length <= 1) return 'invalid header line for ITD'\n\tconst htry = (...lst) => {\n\t\tfor (const i of lst) {\n\t\t\tconst j = header.indexOf(i)\n\t\t\tif (j != -1) return j\n\t\t}\n\t\treturn -1\n\t}\n\tlet i = htry('gene')\n\tif (i == -1) return 'gene missing from header'\n\theader[i] = 'gene'\n\ti = htry(\n\t\t'annovar_isoform',\n\t\t'mrna_accession',\n\t\t'mrna accession',\n\t\t'refseq_mrna_id',\n\t\t'annovar_sj_filter_isoform',\n\t\t'refseq',\n\t\t'isoform'\n\t)\n\tif (i == -1) return 'isoform missing from header'\n\theader[i] = 'isoform'\n\ti = htry('rnaposition')\n\tif (i != -1) {\n\t\theader[i] = 'rnaposition'\n\t\ti = htry('rnaduplength')\n\t\tif (i == -1) return 'rnaduplength is required when rnaposition is present'\n\t\theader[i] = 'rnaduplength'\n\t}\n\ti = htry('chromosome', 'chr')\n\tif (i != -1) {\n\t\theader[i] = 'chr'\n\t\ti = htry('chr_start')\n\t\tif (i == -1) return 'chr_start is required when chr is present'\n\t\theader[i] = 'chrpos1'\n\t\ti = htry('chr_stop')\n\t\tif (i == -1) return 'chr_stop is required when chr is present'\n\t\theader[i] = 'chrpos2'\n\t}\n\n\ti = htry('sample', 'sample_name', 'tumor_sample_barcode')\n\tif (i != -1) header[i] = 'sample'\n\ti = htry('patient', 'donor', 'target_case_id')\n\tif (i != -1) header[i] = 'patient'\n\ti = htry('disease')\n\tif (i != -1) header[i] = 'disease'\n\ti = htry('origin')\n\tif (i != -1) header[i] = 'origin'\n\ti = htry('sampletype', 'sample type', 'sample_type')\n\tif (i != -1) header[i] = 'sampletype'\n\tflag.itd.header = header\n\tflag.itd.loaded = true\n\treturn false\n}\n\nexport function parseline(i, line, flag) {\n\tif (line == '' || line[0] == '#') return\n\tconst lst = line.split('\\t')\n\tconst m: Record<string, any> = {}\n\tfor (let j = 0; j < flag.itd.header.length; j++) {\n\t\tif (lst[j] == undefined) break\n\t\tm[flag.itd.header[j]] = lst[j]\n\t}\n\tif (!m.gene) {\n\t\tflag.itd.badlines.push([i, 'missing gene', lst])\n\t\treturn\n\t}\n\tif (m.rnaposition) {\n\t\tlet v = Number.parseInt(m.rnaposition)\n\t\tif (Number.isNaN(v) || v < 0) {\n\t\t\tflag.itd.badlines.push([i, 'invalid rnaPosition value', lst])\n\t\t\treturn\n\t\t}\n\t\tm.rnaposition = v\n\t\tif (!m.rnaduplength) {\n\t\t\tflag.itd.badlines.push([i, 'missing rnaDuplength value', lst])\n\t\t\treturn\n\t\t}\n\t\tv = Number.parseInt(m.rnaduplength)\n\t\tif (Number.isNaN(v) || v < 0) {\n\t\t\tflag.itd.badlines.push([i, 'invalid rnaDuplength value', lst])\n\t\t\treturn\n\t\t}\n\t\tm.rnaduplength = v\n\t}\n\tif (m.chr) {\n\t\tlet v = Number.parseInt(m.chrpos1)\n\t\tif (Number.isNaN(v) || v < 0) {\n\t\t\tflag.itd.badlines.push([i, 'invalid chr_start value', lst])\n\t\t\treturn\n\t\t}\n\t\tm.chrpos1 = v\n\t\tv = Number.parseInt(m.chrpos2)\n\t\tif (Number.isNaN(v) || v < 0) {\n\t\t\tflag.itd.badlines.push([i, 'invalid chr_stop value', lst])\n\t\t\treturn\n\t\t}\n\t\tm.chrpos2 = v\n\t}\n\tif (bulk.parsesample(m, flag, i, lst)) {\n\t\treturn\n\t}\n\tm.dt = common.dtitd\n\tm.class = common.mclassitd\n\tm.mname = 'ITD'\n\tflag.good++\n\tconst n = flag.geneToUpper ? m.gene.toUpperCase() : m.gene\n\tif (!(n in flag.data)) {\n\t\tflag.data[n] = []\n\t}\n\tflag.data[n].push(m)\n}\n"],
5
+ "mappings": "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",
6
6
  "names": ["i"]
7
7
  }
package/dist/src/bulk.js CHANGED
@@ -69,7 +69,7 @@ function init_bulk_flag(genome) {
69
69
  }
70
70
  };
71
71
  }
72
- function parsesample(m, flag, i, lst, badline) {
72
+ function parsesample(m, flag, i, lst) {
73
73
  let variantorigin = common.moriginsomatic;
74
74
  if (m.sampletype) {
75
75
  const s = m.sampletype.toLowerCase();
@@ -145,7 +145,6 @@ function parsesample(m, flag, i, lst, badline) {
145
145
  return;
146
146
  }
147
147
  const nopatientname = "no patient/individual name";
148
- let p;
149
148
  if (m.patient) {
150
149
  if (!flag.patient2st[m.patient]) {
151
150
  flag.patient2st[m.patient] = {};
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../src/bulk.js"],
4
- "sourcesContent": ["////////////////////////////////////\n//\n// shared between client and server\n//\n////////////////////////////////////\n\nimport * as common from './common.js'\n\nexport default {}\n\nexport function init_bulk_flag(genome) {\n\tif (!genome) {\n\t\treturn null\n\t}\n\tconst mclasslabel2key = {}\n\tfor (const n in common.mclass) {\n\t\tmclasslabel2key[common.mclass[n].label.toUpperCase()] = n\n\t}\n\treturn {\n\t\tgenome: genome,\n\t\tmclasslabel2key: mclasslabel2key,\n\t\tdata: {},\n\t\tsample2disease: {}, // (proof) k: sample, v: disease\n\t\t// will only record this when origin is used\n\t\tpatient2st: {},\n\t\t// k: patient, v: { k: sampletype, v: sample }\n\t\t// new sample names always override old\n\t\tgood: 0,\n\t\tgeneToUpper: true, // option to not force uppercase on gene names\n\t\tsnv: {\n\t\t\tloaded: false,\n\t\t\theader: null,\n\t\t\tbadlines: [],\n\t\t\t// jinghui: based on missense/silent ratio of entire dataset to decide whether to include silent when importing...\n\t\t\t// hard-coded class codes\n\t\t\tmissense: 0,\n\t\t\tsilent: 0\n\t\t},\n\t\tsvjson: {\n\t\t\tloaded: false,\n\t\t\theader: null,\n\t\t\tbadlines: []\n\t\t},\n\t\tfusion: {\n\t\t\tloaded: false,\n\t\t\theader: null,\n\t\t\tbadlines: [],\n\t\t\toriginal: []\n\t\t},\n\t\tsv: {\n\t\t\tloaded: false,\n\t\t\theader: null,\n\t\t\tbadlines: [],\n\t\t\toriginal: []\n\t\t},\n\t\tcnv: {\n\t\t\tloaded: false,\n\t\t\theader: null,\n\t\t\tbadlines: []\n\t\t},\n\t\titd: {\n\t\t\tloaded: false,\n\t\t\theader: null,\n\t\t\tbadlines: []\n\t\t},\n\t\tdel: {\n\t\t\tloaded: false,\n\t\t\theader: null,\n\t\t\tbadlines: []\n\t\t},\n\t\ttruncation: {\n\t\t\tloaded: false,\n\t\t\theader: null,\n\t\t\tbadlines: []\n\t\t}\n\t}\n}\n\nexport function parsesample(m, flag, i, lst, badline) {\n\tlet variantorigin = common.moriginsomatic\n\tif (m.sampletype) {\n\t\tconst s = m.sampletype.toLowerCase()\n\t\tswitch (s) {\n\t\t\tcase 'relapse':\n\t\t\t\tvariantorigin = common.moriginrelapse\n\t\t\t\tbreak\n\t\t\tcase 'germline':\n\t\t\t\tvariantorigin = common.morigingermline\n\t\t\t\tbreak\n\t\t\tcase 'somatic':\n\t\t\tcase 'diagnosis':\n\t\t\t\tbreak\n\t\t}\n\t\tif (m.sample) {\n\t\t\tif (m.patient) {\n\t\t\t\t// good\n\t\t\t} else {\n\t\t\t\tm.patient = m.sample + ' ' + m.sampletype\n\t\t\t}\n\t\t} else {\n\t\t\tif (m.patient) {\n\t\t\t\tm.sample = m.patient + ' ' + m.sampletype\n\t\t\t} else {\n\t\t\t\t// neither sample or patient, will quit later\n\t\t\t}\n\t\t}\n\t} else {\n\t\tif (m.patient) {\n\t\t\tif (m.sample) {\n\t\t\t\tm.sampletype = m.sample\n\t\t\t} else {\n\t\t\t\tm.sample = m.sampletype = m.patient\n\t\t\t}\n\t\t} else {\n\t\t\tif (m.sample) {\n\t\t\t\tm.sampletype = m.sample\n\t\t\t} else {\n\t\t\t\t// no patient/sample, will quit later\n\t\t\t}\n\t\t}\n\t}\n\tif (m.origin) {\n\t\t// override existing variantorigin\n\t\tconst s = m.origin.toLowerCase()\n\t\tswitch (s) {\n\t\t\tcase 'r':\n\t\t\tcase 'relapse':\n\t\t\t\tvariantorigin = common.moriginrelapse\n\t\t\t\tm.isrim2 = true\n\t\t\t\tbreak\n\t\t\tcase 'g':\n\t\t\tcase 'germline':\n\t\t\t\tvariantorigin = common.morigingermline\n\t\t\t\tm.isrim1 = true\n\t\t\t\tbreak\n\t\t\tcase 'gp':\n\t\t\tcase 'germline pathogenic':\n\t\t\t\tvariantorigin = common.morigingermlinepathogenic\n\t\t\t\tm.isrim1 = true\n\t\t\t\tbreak\n\t\t\tcase 'gnp':\n\t\t\tcase 'germline nonpathogenic':\n\t\t\tcase 'germline non-pathogenic':\n\t\t\t\tvariantorigin = common.morigingermlinenonpathogenic\n\t\t\t\tm.isrim1 = true\n\t\t\t\tbreak\n\t\t\tcase 's':\n\t\t\tcase 'somatic':\n\t\t\tcase 'diagnosis':\n\t\t\t\tvariantorigin = common.moriginsomatic\n\t\t\t\tbreak\n\t\t}\n\t}\n\tm.origin = variantorigin\n\n\tif (!m.sample && !m.patient) {\n\t\t// will not go into sample table\n\t\treturn\n\t}\n\n\tconst nopatientname = 'no patient/individual name'\n\tlet p\n\tif (m.patient) {\n\t\tif (!flag.patient2st[m.patient]) {\n\t\t\tflag.patient2st[m.patient] = {}\n\t\t}\n\t\tflag.patient2st[m.patient][m.sampletype] = m.sample\n\t} else {\n\t\tif (!flag.patient2st[nopatientname]) {\n\t\t\tflag.patient2st[nopatientname] = {}\n\t\t}\n\t\tflag.patient2st[nopatientname][m.sampletype] = m.sample\n\t}\n\n\tif (m.sample) {\n\t\tif (m.disease) {\n\t\t\tif (m.sample in flag.sample2disease) {\n\t\t\t\tif (m.disease != flag.sample2disease[m.sample]) {\n\t\t\t\t\tflag.snv.badlines.push([\n\t\t\t\t\t\ti,\n\t\t\t\t\t\t'conflict of disease types for sample \"' +\n\t\t\t\t\t\t\tm.sample +\n\t\t\t\t\t\t\t'\": ' +\n\t\t\t\t\t\t\tm.disease +\n\t\t\t\t\t\t\t', ' +\n\t\t\t\t\t\t\tflag.sample2disease[m.sample],\n\t\t\t\t\t\tlst\n\t\t\t\t\t])\n\t\t\t\t\treturn true\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tflag.sample2disease[m.sample] = m.disease\n\t\t\t}\n\t\t}\n\t}\n\treturn false\n}\n"],
5
- "mappings": "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",
3
+ "sources": ["../../src/bulk.ts"],
4
+ "sourcesContent": ["////////////////////////////////////\n//\n// shared between client and server\n//\n////////////////////////////////////\n\nimport * as common from './common.js'\n\nexport default {}\n\nexport function init_bulk_flag(genome) {\n\tif (!genome) {\n\t\treturn null\n\t}\n\tconst mclasslabel2key = {}\n\tfor (const n in common.mclass) {\n\t\tmclasslabel2key[common.mclass[n].label.toUpperCase()] = n\n\t}\n\treturn {\n\t\tgenome: genome,\n\t\tmclasslabel2key: mclasslabel2key,\n\t\tdata: {},\n\t\tsample2disease: {}, // (proof) k: sample, v: disease\n\t\t// will only record this when origin is used\n\t\tpatient2st: {},\n\t\t// k: patient, v: { k: sampletype, v: sample }\n\t\t// new sample names always override old\n\t\tgood: 0,\n\t\tgeneToUpper: true, // option to not force uppercase on gene names\n\t\tsnv: {\n\t\t\tloaded: false,\n\t\t\theader: null,\n\t\t\tbadlines: [],\n\t\t\t// jinghui: based on missense/silent ratio of entire dataset to decide whether to include silent when importing...\n\t\t\t// hard-coded class codes\n\t\t\tmissense: 0,\n\t\t\tsilent: 0\n\t\t},\n\t\tsvjson: {\n\t\t\tloaded: false,\n\t\t\theader: null,\n\t\t\tbadlines: []\n\t\t},\n\t\tfusion: {\n\t\t\tloaded: false,\n\t\t\theader: null,\n\t\t\tbadlines: [],\n\t\t\toriginal: []\n\t\t},\n\t\tsv: {\n\t\t\tloaded: false,\n\t\t\theader: null,\n\t\t\tbadlines: [],\n\t\t\toriginal: []\n\t\t},\n\t\tcnv: {\n\t\t\tloaded: false,\n\t\t\theader: null,\n\t\t\tbadlines: []\n\t\t},\n\t\titd: {\n\t\t\tloaded: false,\n\t\t\theader: null,\n\t\t\tbadlines: []\n\t\t},\n\t\tdel: {\n\t\t\tloaded: false,\n\t\t\theader: null,\n\t\t\tbadlines: []\n\t\t},\n\t\ttruncation: {\n\t\t\tloaded: false,\n\t\t\theader: null,\n\t\t\tbadlines: []\n\t\t}\n\t}\n}\n\nexport function parsesample(m, flag, i, lst) {\n\tlet variantorigin = common.moriginsomatic\n\tif (m.sampletype) {\n\t\tconst s = m.sampletype.toLowerCase()\n\t\tswitch (s) {\n\t\t\tcase 'relapse':\n\t\t\t\tvariantorigin = common.moriginrelapse\n\t\t\t\tbreak\n\t\t\tcase 'germline':\n\t\t\t\tvariantorigin = common.morigingermline\n\t\t\t\tbreak\n\t\t\tcase 'somatic':\n\t\t\tcase 'diagnosis':\n\t\t\t\tbreak\n\t\t}\n\t\tif (m.sample) {\n\t\t\tif (m.patient) {\n\t\t\t\t// good\n\t\t\t} else {\n\t\t\t\tm.patient = m.sample + ' ' + m.sampletype\n\t\t\t}\n\t\t} else {\n\t\t\tif (m.patient) {\n\t\t\t\tm.sample = m.patient + ' ' + m.sampletype\n\t\t\t} else {\n\t\t\t\t// neither sample or patient, will quit later\n\t\t\t}\n\t\t}\n\t} else {\n\t\tif (m.patient) {\n\t\t\tif (m.sample) {\n\t\t\t\tm.sampletype = m.sample\n\t\t\t} else {\n\t\t\t\tm.sample = m.sampletype = m.patient\n\t\t\t}\n\t\t} else {\n\t\t\tif (m.sample) {\n\t\t\t\tm.sampletype = m.sample\n\t\t\t} else {\n\t\t\t\t// no patient/sample, will quit later\n\t\t\t}\n\t\t}\n\t}\n\tif (m.origin) {\n\t\t// override existing variantorigin\n\t\tconst s = m.origin.toLowerCase()\n\t\tswitch (s) {\n\t\t\tcase 'r':\n\t\t\tcase 'relapse':\n\t\t\t\tvariantorigin = common.moriginrelapse\n\t\t\t\tm.isrim2 = true\n\t\t\t\tbreak\n\t\t\tcase 'g':\n\t\t\tcase 'germline':\n\t\t\t\tvariantorigin = common.morigingermline\n\t\t\t\tm.isrim1 = true\n\t\t\t\tbreak\n\t\t\tcase 'gp':\n\t\t\tcase 'germline pathogenic':\n\t\t\t\tvariantorigin = common.morigingermlinepathogenic\n\t\t\t\tm.isrim1 = true\n\t\t\t\tbreak\n\t\t\tcase 'gnp':\n\t\t\tcase 'germline nonpathogenic':\n\t\t\tcase 'germline non-pathogenic':\n\t\t\t\tvariantorigin = common.morigingermlinenonpathogenic\n\t\t\t\tm.isrim1 = true\n\t\t\t\tbreak\n\t\t\tcase 's':\n\t\t\tcase 'somatic':\n\t\t\tcase 'diagnosis':\n\t\t\t\tvariantorigin = common.moriginsomatic\n\t\t\t\tbreak\n\t\t}\n\t}\n\tm.origin = variantorigin\n\n\tif (!m.sample && !m.patient) {\n\t\t// will not go into sample table\n\t\treturn\n\t}\n\n\tconst nopatientname = 'no patient/individual name'\n\n\tif (m.patient) {\n\t\tif (!flag.patient2st[m.patient]) {\n\t\t\tflag.patient2st[m.patient] = {}\n\t\t}\n\t\tflag.patient2st[m.patient][m.sampletype] = m.sample\n\t} else {\n\t\tif (!flag.patient2st[nopatientname]) {\n\t\t\tflag.patient2st[nopatientname] = {}\n\t\t}\n\t\tflag.patient2st[nopatientname][m.sampletype] = m.sample\n\t}\n\n\tif (m.sample) {\n\t\tif (m.disease) {\n\t\t\tif (m.sample in flag.sample2disease) {\n\t\t\t\tif (m.disease != flag.sample2disease[m.sample]) {\n\t\t\t\t\tflag.snv.badlines.push([\n\t\t\t\t\t\ti,\n\t\t\t\t\t\t'conflict of disease types for sample \"' +\n\t\t\t\t\t\t\tm.sample +\n\t\t\t\t\t\t\t'\": ' +\n\t\t\t\t\t\t\tm.disease +\n\t\t\t\t\t\t\t', ' +\n\t\t\t\t\t\t\tflag.sample2disease[m.sample],\n\t\t\t\t\t\tlst\n\t\t\t\t\t])\n\t\t\t\t\treturn true\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tflag.sample2disease[m.sample] = m.disease\n\t\t\t}\n\t\t}\n\t}\n\treturn false\n}\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -0,0 +1,2 @@
1
+ export declare function parseheader(line: any, flag: any): false | "gene missing from header" | "isoform missing from header" | "invalid file header for snv/indel" | "amino_acid_change missing from header" | "variant_class missing from header" | "chromosome missing from header" | "start missing from header";
2
+ export declare function parseline(linei: any, line: any, flag: any): void;
@@ -109,7 +109,7 @@ function parseline(linei, line, flag) {
109
109
  return;
110
110
  }
111
111
  }
112
- if (bulk.parsesample(m, flag, linei, lst, flag.snv.badlines)) {
112
+ if (bulk.parsesample(m, flag, linei, lst)) {
113
113
  return;
114
114
  }
115
115
  if (!m.chr) {
@@ -132,7 +132,7 @@ function parseline(linei, line, flag) {
132
132
  if (m.maf_tumor_v2 != void 0 && m.maf_tumor_v1 != void 0) {
133
133
  if (m.maf_tumor_v2 == "") {
134
134
  } else {
135
- let v1 = Number.parseInt(m.maf_tumor_v1), v2 = Number.parseInt(m.maf_tumor_v2);
135
+ const v1 = Number.parseInt(m.maf_tumor_v1), v2 = Number.parseInt(m.maf_tumor_v2);
136
136
  if (Number.isNaN(v1) || Number.isNaN(v2)) {
137
137
  flag.snv.badlines.push([linei, "invalid maf_tumor mutant and/or total read count", lst]);
138
138
  return;
@@ -145,7 +145,7 @@ function parseline(linei, line, flag) {
145
145
  if (m.maf_normal_v1 != void 0 && m.maf_normal_v2 != void 0) {
146
146
  if (m.maf_normal_v2 == "") {
147
147
  } else {
148
- let v1 = Number.parseInt(m.maf_normal_v1), v2 = Number.parseInt(m.maf_normal_v2);
148
+ const v1 = Number.parseInt(m.maf_normal_v1), v2 = Number.parseInt(m.maf_normal_v2);
149
149
  if (Number.isNaN(v1) || Number.isNaN(v2)) {
150
150
  flag.snv.badlines.push([linei, "invalid maf_normal mutant and/or total read count", lst]);
151
151
  return;
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../src/bulk.snv.js"],
4
- "sourcesContent": ["///////////////////////////////\n//\n// shared between client and server\n//\n///////////////////////////////\n\nimport * as common from './common.js'\nimport * as bulk from './bulk.js'\n\nexport function parseheader(line, flag) {\n\tconst header = line.toLowerCase().split('\\t')\n\tif (header.length <= 1) return 'invalid file header for snv/indel'\n\tconst htry = (...args) => {\n\t\tfor (const s of args) {\n\t\t\tconst i = header.indexOf(s)\n\t\t\tif (i != -1) return i\n\t\t}\n\t\treturn -1\n\t}\n\tlet i = htry('annovar_gene', 'annovar_sj_gene', 'gene', 'genename', 'gene_symbol', 'hugo_symbol')\n\tif (i == -1) return 'gene missing from header'\n\theader[i] = 'gene'\n\ti = htry('annovar_aachange', 'amino_acid_change', 'annovar_sj_aachange', 'aachange', 'protein_change', 'variant')\n\tif (i == -1) return 'amino_acid_change missing from header'\n\theader[i] = 'mname'\n\ti = htry('annovar_class', 'class', 'mclass', 'variant_class', 'variant_classification', 'annovar_sj_class')\n\tif (i == -1) return 'variant_class missing from header'\n\theader[i] = 'class'\n\ti = htry('chromosome', 'chr')\n\tif (i == -1) return 'chromosome missing from header'\n\theader[i] = 'chr'\n\ti = htry('wu_hg19_pos', 'start', 'start_position', 'chr_position', 'position')\n\tif (i == -1) return 'start missing from header'\n\theader[i] = 'pos'\n\ti = htry(\n\t\t'annovar_isoform',\n\t\t'mrna_accession',\n\t\t'mrna accession',\n\t\t'refseq_mrna_id',\n\t\t'annovar_sj_filter_isoform',\n\t\t'refseq',\n\t\t'isoform'\n\t)\n\tif (i == -1) return 'isoform missing from header'\n\theader[i] = 'isoform'\n\n\t// optional\n\ti = htry('sample', 'sample_name', 'tumor_sample_barcode')\n\tif (i != -1) header[i] = 'sample'\n\ti = htry('patient', 'donor', 'target_case_id')\n\tif (i != -1) header[i] = 'patient'\n\ti = htry('quantitative_measurements')\n\tif (i != -1) header[i] = 'qmset'\n\t// dna maf tumor\n\ti = htry('mutant_reads_in_case', 'mutant_in_tumor', 'tumor_readcount_alt')\n\tif (i != -1) header[i] = 'maf_tumor_v1'\n\ti = htry('total_reads_in_case', 'total_in_tumor', 'tumor_readcount_total')\n\tif (i != -1) header[i] = 'maf_tumor_v2'\n\t// dna maf normal\n\ti = htry('mutant_reads_in_control', 'mutant_in_normal', 'normal_readcount_alt')\n\tif (i != -1) header[i] = 'maf_normal_v1'\n\ti = htry('total_reads_in_control', 'total_in_normal', 'normal_readcount_total')\n\tif (i != -1) header[i] = 'maf_normal_v2'\n\t// rna maf\n\t// cdna\n\ti = htry('cdna_change')\n\tif (i != -1) header[i] = 'cdna_change'\n\ti = htry('sampletype', 'sample type', 'sample_type')\n\tif (i != -1) header[i] = 'sampletype'\n\ti = htry('origin')\n\tif (i != -1) header[i] = 'origin'\n\ti = htry('cancer', 'disease', 'diagnosis')\n\tif (i != -1) header[i] = 'disease'\n\tflag.snv.header = header\n\tflag.snv.loaded = true\n\treturn false\n}\n\nexport function parseline(linei, line, flag) {\n\tif (line == '' || line[0] == '#') return\n\tconst lst = line.split('\\t')\n\tconst m = {}\n\tfor (let j = 0; j < flag.snv.header.length; j++) {\n\t\tif (lst[j] == undefined) break\n\t\tm[flag.snv.header[j]] = lst[j]\n\t}\n\tif (!m.gene) {\n\t\tflag.snv.badlines.push([linei, 'missing gene', lst])\n\t\treturn\n\t}\n\tif (m.gene.toUpperCase() == 'UNKNOWN') {\n\t\tflag.snv.badlines.push([linei, 'gene name is UNKNOWN', lst])\n\t\treturn\n\t}\n\tif (!m.isoform) {\n\t\tflag.snv.badlines.push([linei, 'missing isoform', lst])\n\t\treturn\n\t}\n\tif (!m.mname) {\n\t\tm.mname = m.cdna_change\n\t\tif (!m.mname) {\n\t\t\tflag.snv.badlines.push([linei, 'missing amino acid change', lst])\n\t\t\treturn\n\t\t}\n\t} else {\n\t\tif (m.mname.indexOf('p.') == 0) {\n\t\t\tm.mname = m.mname.replace(/^p\\./, '')\n\t\t}\n\t}\n\tif (!m.class) {\n\t\tflag.snv.badlines.push([linei, 'missing mutation class', lst])\n\t\treturn\n\t}\n\tlet _c = flag.mclasslabel2key[m.class.toUpperCase()]\n\tif (_c) {\n\t\tm.class = _c\n\t} else {\n\t\t_c = common.mclasstester(m.class)\n\t\tif (_c) {\n\t\t\tm.class = _c\n\t\t} else {\n\t\t\tflag.snv.badlines.push([linei, 'wrong mutation class: ' + m.class, lst])\n\t\t\treturn\n\t\t}\n\t}\n\tif (bulk.parsesample(m, flag, linei, lst, flag.snv.badlines)) {\n\t\treturn\n\t}\n\tif (!m.chr) {\n\t\tflag.snv.badlines.push([linei, 'missing chromosome', lst])\n\t\treturn\n\t}\n\tif (m.chr.toLowerCase().indexOf('chr') != 0) {\n\t\tm.chr = 'chr' + m.chr\n\t}\n\tif (!m.pos) {\n\t\tflag.snv.badlines.push([linei, 'missing chromosome position', lst])\n\t\treturn\n\t}\n\tconst v = Number.parseInt(m.pos)\n\tif (Number.isNaN(v)) {\n\t\tflag.snv.badlines.push([linei, 'invalid chromosome position', lst])\n\t\treturn\n\t}\n\tm.pos = v - 1\n\n\tif (m.maf_tumor_v2 != undefined && m.maf_tumor_v1 != undefined) {\n\t\tif (m.maf_tumor_v2 == '') {\n\t\t\t// no value, do not parse\n\t\t} else {\n\t\t\tlet v1 = Number.parseInt(m.maf_tumor_v1),\n\t\t\t\tv2 = Number.parseInt(m.maf_tumor_v2)\n\t\t\tif (Number.isNaN(v1) || Number.isNaN(v2)) {\n\t\t\t\tflag.snv.badlines.push([linei, 'invalid maf_tumor mutant and/or total read count', lst])\n\t\t\t\treturn\n\t\t\t}\n\t\t\tm.maf_tumor = { f: v1 / v2, v1: v1, v2: v2 }\n\t\t}\n\t\tdelete m.maf_tumor_v1\n\t\tdelete m.maf_tumor_v2\n\t}\n\n\tif (m.maf_normal_v1 != undefined && m.maf_normal_v2 != undefined) {\n\t\tif (m.maf_normal_v2 == '') {\n\t\t\t// no value\n\t\t} else {\n\t\t\tlet v1 = Number.parseInt(m.maf_normal_v1),\n\t\t\t\tv2 = Number.parseInt(m.maf_normal_v2)\n\t\t\tif (Number.isNaN(v1) || Number.isNaN(v2)) {\n\t\t\t\tflag.snv.badlines.push([linei, 'invalid maf_normal mutant and/or total read count', lst])\n\t\t\t\treturn\n\t\t\t}\n\t\t\tm.maf_normal = { f: v1 / v2, v1: v1, v2: v2 }\n\t\t}\n\t\tdelete m.maf_normal_v1\n\t\tdelete m.maf_normal_v2\n\t}\n\n\t/*\n\tif(m.qmset) {\n\t\ttry{\n\t\t\tvar v=JSON.parse(m.qmset)\n\t\t} catch(e){\n\t\t\tflag.snv.badlines.push([linei,'invalid JSON for quantitative_measurements',lst])\n\t\t\tv=null\n\t\t} finally {\n\t\t\tif(v) {\n\t\t\t\tif(typeof(v)!='object') {\n\t\t\t\t\tflag.snv.badlines.push([linei,'value of quantitative_measurements must be an object',lst])\n\t\t\t\t\tdelete m.qmset\n\t\t\t\t} else {\n\t\t\t\t\tfor(var n in v) {\n\t\t\t\t\t\tif(!Array.isArray(v[n])) {\n\t\t\t\t\t\t\tflag.snv.badlines.push([linei,'quantitative_measurements: \"'+n+'\" value must be an array',lst])\n\t\t\t\t\t\t\tdelete v[n]\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tvar tmp=[]\n\t\t\t\t\t\t\tv[n].forEach(function(v2){\n\t\t\t\t\t\t\t\tif(typeof(v2)=='number') {\n\t\t\t\t\t\t\t\t\ttmp.push({v:v2})\n\t\t\t\t\t\t\t\t} else if(v2.v && typeof(v2.v)=='number') {\n\t\t\t\t\t\t\t\t\ttmp.push(v2)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\tif(tmp.length) {\n\t\t\t\t\t\t\t\tv[n]=tmp\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tflag.snv.badlines.push([linei,'quantitative_measurements: no valid value for \"'+n+'\"',lst])\n\t\t\t\t\t\t\t\tdelete v[n]\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tm.qmset=v\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tdelete m.qmset\n\t\t\t}\n\t\t}\n\t}\n\t*/\n\tflag.good++\n\t// FIXME hard-coded M and S\n\tif (m.class == 'M') {\n\t\tflag.snv.missense++\n\t} else if (m.class == 'S') {\n\t\tflag.snv.silent++\n\t}\n\tconst n = flag.geneToUpper ? m.gene.toUpperCase() : m.gene\n\tif (!flag.data[n]) {\n\t\tflag.data[n] = []\n\t}\n\tm.dt = common.dtsnvindel\n\tflag.data[n].push(m)\n}\n"],
5
- "mappings": "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",
3
+ "sources": ["../../src/bulk.snv.ts"],
4
+ "sourcesContent": ["///////////////////////////////\n//\n// shared between client and server\n//\n///////////////////////////////\n\nimport * as common from './common.js'\nimport * as bulk from './bulk.js'\n\nexport function parseheader(line, flag) {\n\tconst header = line.toLowerCase().split('\\t')\n\tif (header.length <= 1) return 'invalid file header for snv/indel'\n\tconst htry = (...args) => {\n\t\tfor (const s of args) {\n\t\t\tconst i = header.indexOf(s)\n\t\t\tif (i != -1) return i\n\t\t}\n\t\treturn -1\n\t}\n\tlet i = htry('annovar_gene', 'annovar_sj_gene', 'gene', 'genename', 'gene_symbol', 'hugo_symbol')\n\tif (i == -1) return 'gene missing from header'\n\theader[i] = 'gene'\n\ti = htry('annovar_aachange', 'amino_acid_change', 'annovar_sj_aachange', 'aachange', 'protein_change', 'variant')\n\tif (i == -1) return 'amino_acid_change missing from header'\n\theader[i] = 'mname'\n\ti = htry('annovar_class', 'class', 'mclass', 'variant_class', 'variant_classification', 'annovar_sj_class')\n\tif (i == -1) return 'variant_class missing from header'\n\theader[i] = 'class'\n\ti = htry('chromosome', 'chr')\n\tif (i == -1) return 'chromosome missing from header'\n\theader[i] = 'chr'\n\ti = htry('wu_hg19_pos', 'start', 'start_position', 'chr_position', 'position')\n\tif (i == -1) return 'start missing from header'\n\theader[i] = 'pos'\n\ti = htry(\n\t\t'annovar_isoform',\n\t\t'mrna_accession',\n\t\t'mrna accession',\n\t\t'refseq_mrna_id',\n\t\t'annovar_sj_filter_isoform',\n\t\t'refseq',\n\t\t'isoform'\n\t)\n\tif (i == -1) return 'isoform missing from header'\n\theader[i] = 'isoform'\n\n\t// optional\n\ti = htry('sample', 'sample_name', 'tumor_sample_barcode')\n\tif (i != -1) header[i] = 'sample'\n\ti = htry('patient', 'donor', 'target_case_id')\n\tif (i != -1) header[i] = 'patient'\n\ti = htry('quantitative_measurements')\n\tif (i != -1) header[i] = 'qmset'\n\t// dna maf tumor\n\ti = htry('mutant_reads_in_case', 'mutant_in_tumor', 'tumor_readcount_alt')\n\tif (i != -1) header[i] = 'maf_tumor_v1'\n\ti = htry('total_reads_in_case', 'total_in_tumor', 'tumor_readcount_total')\n\tif (i != -1) header[i] = 'maf_tumor_v2'\n\t// dna maf normal\n\ti = htry('mutant_reads_in_control', 'mutant_in_normal', 'normal_readcount_alt')\n\tif (i != -1) header[i] = 'maf_normal_v1'\n\ti = htry('total_reads_in_control', 'total_in_normal', 'normal_readcount_total')\n\tif (i != -1) header[i] = 'maf_normal_v2'\n\t// rna maf\n\t// cdna\n\ti = htry('cdna_change')\n\tif (i != -1) header[i] = 'cdna_change'\n\ti = htry('sampletype', 'sample type', 'sample_type')\n\tif (i != -1) header[i] = 'sampletype'\n\ti = htry('origin')\n\tif (i != -1) header[i] = 'origin'\n\ti = htry('cancer', 'disease', 'diagnosis')\n\tif (i != -1) header[i] = 'disease'\n\tflag.snv.header = header\n\tflag.snv.loaded = true\n\treturn false\n}\n\nexport function parseline(linei, line, flag) {\n\tif (line == '' || line[0] == '#') return\n\tconst lst = line.split('\\t')\n\tconst m: Record<string, any> = {}\n\tfor (let j = 0; j < flag.snv.header.length; j++) {\n\t\tif (lst[j] == undefined) break\n\t\tm[flag.snv.header[j]] = lst[j]\n\t}\n\tif (!m.gene) {\n\t\tflag.snv.badlines.push([linei, 'missing gene', lst])\n\t\treturn\n\t}\n\tif (m.gene.toUpperCase() == 'UNKNOWN') {\n\t\tflag.snv.badlines.push([linei, 'gene name is UNKNOWN', lst])\n\t\treturn\n\t}\n\tif (!m.isoform) {\n\t\tflag.snv.badlines.push([linei, 'missing isoform', lst])\n\t\treturn\n\t}\n\tif (!m.mname) {\n\t\tm.mname = m.cdna_change\n\t\tif (!m.mname) {\n\t\t\tflag.snv.badlines.push([linei, 'missing amino acid change', lst])\n\t\t\treturn\n\t\t}\n\t} else {\n\t\tif (m.mname.indexOf('p.') == 0) {\n\t\t\tm.mname = m.mname.replace(/^p\\./, '')\n\t\t}\n\t}\n\tif (!m.class) {\n\t\tflag.snv.badlines.push([linei, 'missing mutation class', lst])\n\t\treturn\n\t}\n\tlet _c = flag.mclasslabel2key[m.class.toUpperCase()]\n\tif (_c) {\n\t\tm.class = _c\n\t} else {\n\t\t_c = common.mclasstester(m.class)\n\t\tif (_c) {\n\t\t\tm.class = _c\n\t\t} else {\n\t\t\tflag.snv.badlines.push([linei, 'wrong mutation class: ' + m.class, lst])\n\t\t\treturn\n\t\t}\n\t}\n\tif (bulk.parsesample(m, flag, linei, lst)) {\n\t\treturn\n\t}\n\tif (!m.chr) {\n\t\tflag.snv.badlines.push([linei, 'missing chromosome', lst])\n\t\treturn\n\t}\n\tif (m.chr.toLowerCase().indexOf('chr') != 0) {\n\t\tm.chr = 'chr' + m.chr\n\t}\n\tif (!m.pos) {\n\t\tflag.snv.badlines.push([linei, 'missing chromosome position', lst])\n\t\treturn\n\t}\n\tconst v = Number.parseInt(m.pos)\n\tif (Number.isNaN(v)) {\n\t\tflag.snv.badlines.push([linei, 'invalid chromosome position', lst])\n\t\treturn\n\t}\n\tm.pos = v - 1\n\n\tif (m.maf_tumor_v2 != undefined && m.maf_tumor_v1 != undefined) {\n\t\tif (m.maf_tumor_v2 == '') {\n\t\t\t// no value, do not parse\n\t\t} else {\n\t\t\tconst v1 = Number.parseInt(m.maf_tumor_v1),\n\t\t\t\tv2 = Number.parseInt(m.maf_tumor_v2)\n\t\t\tif (Number.isNaN(v1) || Number.isNaN(v2)) {\n\t\t\t\tflag.snv.badlines.push([linei, 'invalid maf_tumor mutant and/or total read count', lst])\n\t\t\t\treturn\n\t\t\t}\n\t\t\tm.maf_tumor = { f: v1 / v2, v1: v1, v2: v2 }\n\t\t}\n\t\tdelete m.maf_tumor_v1\n\t\tdelete m.maf_tumor_v2\n\t}\n\n\tif (m.maf_normal_v1 != undefined && m.maf_normal_v2 != undefined) {\n\t\tif (m.maf_normal_v2 == '') {\n\t\t\t// no value\n\t\t} else {\n\t\t\tconst v1 = Number.parseInt(m.maf_normal_v1),\n\t\t\t\tv2 = Number.parseInt(m.maf_normal_v2)\n\t\t\tif (Number.isNaN(v1) || Number.isNaN(v2)) {\n\t\t\t\tflag.snv.badlines.push([linei, 'invalid maf_normal mutant and/or total read count', lst])\n\t\t\t\treturn\n\t\t\t}\n\t\t\tm.maf_normal = { f: v1 / v2, v1: v1, v2: v2 }\n\t\t}\n\t\tdelete m.maf_normal_v1\n\t\tdelete m.maf_normal_v2\n\t}\n\n\t/*\n\tif(m.qmset) {\n\t\ttry{\n\t\t\tvar v=JSON.parse(m.qmset)\n\t\t} catch(e){\n\t\t\tflag.snv.badlines.push([linei,'invalid JSON for quantitative_measurements',lst])\n\t\t\tv=null\n\t\t} finally {\n\t\t\tif(v) {\n\t\t\t\tif(typeof(v)!='object') {\n\t\t\t\t\tflag.snv.badlines.push([linei,'value of quantitative_measurements must be an object',lst])\n\t\t\t\t\tdelete m.qmset\n\t\t\t\t} else {\n\t\t\t\t\tfor(var n in v) {\n\t\t\t\t\t\tif(!Array.isArray(v[n])) {\n\t\t\t\t\t\t\tflag.snv.badlines.push([linei,'quantitative_measurements: \"'+n+'\" value must be an array',lst])\n\t\t\t\t\t\t\tdelete v[n]\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tvar tmp=[]\n\t\t\t\t\t\t\tv[n].forEach(function(v2){\n\t\t\t\t\t\t\t\tif(typeof(v2)=='number') {\n\t\t\t\t\t\t\t\t\ttmp.push({v:v2})\n\t\t\t\t\t\t\t\t} else if(v2.v && typeof(v2.v)=='number') {\n\t\t\t\t\t\t\t\t\ttmp.push(v2)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\tif(tmp.length) {\n\t\t\t\t\t\t\t\tv[n]=tmp\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tflag.snv.badlines.push([linei,'quantitative_measurements: no valid value for \"'+n+'\"',lst])\n\t\t\t\t\t\t\t\tdelete v[n]\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tm.qmset=v\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tdelete m.qmset\n\t\t\t}\n\t\t}\n\t}\n\t*/\n\tflag.good++\n\t// FIXME hard-coded M and S\n\tif (m.class == 'M') {\n\t\tflag.snv.missense++\n\t} else if (m.class == 'S') {\n\t\tflag.snv.silent++\n\t}\n\tconst n = flag.geneToUpper ? m.gene.toUpperCase() : m.gene\n\tif (!flag.data[n]) {\n\t\tflag.data[n] = []\n\t}\n\tm.dt = common.dtsnvindel\n\tflag.data[n].push(m)\n}\n"],
5
+ "mappings": "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",
6
6
  "names": ["i"]
7
7
  }
@@ -0,0 +1,3 @@
1
+ export declare function parseheader(line: any, flag: any, issv: any): false | "invalid file header for fusions" | "gene_a missing from header" | "gene_b missing from header" | "chr_a missing from header" | "chr_b missing from header" | "pos_a missing from header" | "pos_b missing from header" | "isoform_a missing from header" | "isoform_b missing from header" | "strand_a missing from header" | "strand_b missing from header";
2
+ export declare function parseline(i: any, line: any, flag: any, issv: any): void;
3
+ export declare function duplicate(m: any): Record<string, any>;
@@ -104,7 +104,7 @@ function parseline(i, line, flag, issv) {
104
104
  return;
105
105
  }
106
106
  m.position2 = v2;
107
- if (bulk.parsesample(m, flag, i, lst, badlines)) {
107
+ if (bulk.parsesample(m, flag, i, lst)) {
108
108
  return;
109
109
  }
110
110
  if (m.isoform1 && m.isoform1.indexOf(",") != -1) {