@sjcrh/proteinpaint-shared 2.187.0 → 2.188.1
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/README.md +10 -2
- package/constants/AiHisto.ts +27 -0
- package/constants/README.md +11 -0
- package/devTs.ts +3 -0
- package/dist/constants/AiHisto.d.ts +23 -0
- package/dist/constants/AiHisto.js +31 -0
- package/dist/constants/AiHisto.js.map +7 -0
- package/dist/src/aiHisto.d.ts +5 -0
- package/dist/src/aiHisto.js +15 -0
- package/dist/src/aiHisto.js.map +7 -0
- package/dist/src/bulk.cnv.js +83 -0
- package/dist/src/bulk.cnv.js.map +7 -0
- package/dist/src/bulk.del.js +119 -0
- package/dist/src/bulk.del.js.map +7 -0
- package/dist/src/bulk.itd.js +119 -0
- package/dist/src/bulk.itd.js.map +7 -0
- package/dist/src/bulk.js +183 -0
- package/dist/src/bulk.js.map +7 -0
- package/dist/src/bulk.snv.js +175 -0
- package/dist/src/bulk.snv.js.map +7 -0
- package/dist/src/bulk.sv.js +266 -0
- package/dist/src/bulk.sv.js.map +7 -0
- package/dist/src/bulk.svjson.js +151 -0
- package/dist/src/bulk.svjson.js.map +7 -0
- package/dist/src/bulk.trunc.js +122 -0
- package/dist/src/bulk.trunc.js.map +7 -0
- package/dist/src/clustering.js +71 -0
- package/dist/src/clustering.js.map +7 -0
- package/dist/src/common.js +1302 -0
- package/dist/src/common.js.map +7 -0
- package/dist/src/compute.percentile.js +10 -0
- package/dist/src/compute.percentile.js.map +7 -0
- package/dist/src/doc.d.ts +7 -0
- package/dist/src/doc.js +10 -0
- package/dist/src/doc.js.map +7 -0
- package/dist/src/fetch-helpers.js +177 -0
- package/dist/src/fetch-helpers.js.map +7 -0
- package/dist/src/fileSize.js +10 -0
- package/dist/src/fileSize.js.map +7 -0
- package/dist/src/filter.d.ts +62 -0
- package/dist/src/filter.js +194 -0
- package/dist/src/filter.js.map +7 -0
- package/dist/src/hash.js +20 -0
- package/dist/src/hash.js.map +7 -0
- package/dist/src/helpers.js +66 -0
- package/dist/src/helpers.js.map +7 -0
- package/dist/src/index.d.ts +26 -0
- package/dist/src/index.js +27 -0
- package/dist/src/index.js.map +7 -0
- package/dist/src/joinUrl.d.ts +1 -0
- package/dist/src/joinUrl.js +17 -0
- package/dist/src/joinUrl.js.map +7 -0
- package/dist/src/mds3tk.js +64 -0
- package/dist/src/mds3tk.js.map +7 -0
- package/dist/src/roundValue.js +57 -0
- package/dist/src/roundValue.js.map +7 -0
- package/dist/src/termdb.bins.js +272 -0
- package/dist/src/termdb.bins.js.map +7 -0
- package/dist/src/termdb.initbinconfig.js +79 -0
- package/dist/src/termdb.initbinconfig.js.map +7 -0
- package/dist/src/termdb.usecase.js +239 -0
- package/dist/src/termdb.usecase.js.map +7 -0
- package/dist/src/terms.d.ts +83 -0
- package/dist/src/terms.js +327 -0
- package/dist/src/terms.js.map +7 -0
- package/dist/src/time.d.ts +9 -0
- package/dist/src/time.js +23 -0
- package/dist/src/time.js.map +7 -0
- package/dist/src/tree.js +82 -0
- package/dist/src/tree.js.map +7 -0
- package/dist/src/urljson.d.ts +8 -0
- package/dist/src/urljson.js +31 -0
- package/dist/src/urljson.js.map +7 -0
- package/dist/src/vcf.ann.js +56 -0
- package/dist/src/vcf.ann.js.map +7 -0
- package/dist/src/vcf.csq.js +82 -0
- package/dist/src/vcf.csq.js.map +7 -0
- package/dist/src/vcf.info.js +40 -0
- package/dist/src/vcf.info.js.map +7 -0
- package/dist/src/vcf.js +439 -0
- package/dist/src/vcf.js.map +7 -0
- package/dist/src/vcf.type.js +17 -0
- package/dist/src/vcf.type.js.map +7 -0
- package/package.json +20 -11
- package/src/bulk.cnv.js +0 -86
- package/src/bulk.del.js +0 -124
- package/src/bulk.itd.js +0 -123
- package/src/bulk.js +0 -197
- package/src/bulk.snv.js +0 -271
- package/src/bulk.sv.js +0 -276
- package/src/bulk.svjson.js +0 -164
- package/src/bulk.trunc.js +0 -132
- package/src/clustering.js +0 -66
- package/src/common.js +0 -1608
- package/src/compute.percentile.js +0 -11
- package/src/doc.js +0 -6
- package/src/fetch-helpers.js +0 -323
- package/src/fileSize.js +0 -6
- package/src/filter.js +0 -221
- package/src/hash.js +0 -21
- package/src/helpers.js +0 -88
- package/src/index.js +0 -26
- package/src/joinUrl.js +0 -14
- package/src/mds3tk.js +0 -100
- package/src/roundValue.js +0 -94
- package/src/termdb.bins.js +0 -456
- package/src/termdb.initbinconfig.js +0 -130
- package/src/termdb.usecase.js +0 -344
- package/src/terms.js +0 -341
- package/src/time.js +0 -22
- package/src/tree.js +0 -138
- package/src/urljson.js +0 -41
- package/src/vcf.ann.js +0 -62
- package/src/vcf.csq.js +0 -153
- package/src/vcf.info.js +0 -50
- package/src/vcf.js +0 -654
- package/src/vcf.type.js +0 -24
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/bulk.sv.js"],
|
|
4
|
+
"sourcesContent": ["import * as bulk from './bulk.js'\nimport * as common from './common.js'\n\n/////////////////////////////////\n//\n// client/server shared\n//\n/////////////////////////////////\n\n// work for both sv/fusion\n// must tell if the data is fusion or sv\n\nexport function parseheader(line, flag, issv) {\n\tconst header = line.toLowerCase().split('\\t')\n\tif (header.length <= 1) return 'invalid file header for fusions'\n\tconst htry = (...lst) => {\n\t\tfor (const a of lst) {\n\t\t\tconst j = header.indexOf(a)\n\t\t\tif (j != -1) return j\n\t\t}\n\t\treturn -1\n\t}\n\tlet i = htry('gene_a', 'gene1', 'genea')\n\tif (i == -1) return 'gene_a missing from header'\n\theader[i] = 'gene1'\n\ti = htry('gene_b', 'gene2', 'geneb')\n\tif (i == -1) return 'gene_b missing from header'\n\theader[i] = 'gene2'\n\ti = htry('chr_a', 'chr1', 'chra')\n\tif (i == -1) return 'chr_a missing from header'\n\theader[i] = 'chr1'\n\ti = htry('chr_b', 'chr2', 'chrb')\n\tif (i == -1) return 'chr_b missing from header'\n\theader[i] = 'chr2'\n\ti = htry('pos_a', 'position_a', 'position1', 'posa')\n\tif (i == -1) return 'pos_a missing from header'\n\theader[i] = 'position1'\n\ti = htry('pos_b', 'position_b', 'position2', 'posb')\n\tif (i == -1) return 'pos_b missing from header'\n\theader[i] = 'position2'\n\ti = htry('isoform_a', 'refseq_a', 'refseq1', 'isoform1', 'sv_refseqa')\n\tif (i == -1) return 'isoform_a missing from header'\n\theader[i] = 'isoform1'\n\ti = htry('isoform_b', 'refseq_b', 'refseq2', 'isoform2', 'sv_refseqb')\n\tif (i == -1) return 'isoform_b missing from header'\n\theader[i] = 'isoform2'\n\ti = htry('strand_a', 'orta')\n\tif (i == -1) return 'strand_a missing from header'\n\theader[i] = 'strand1'\n\ti = htry('strand_b', 'ortb')\n\tif (i == -1) return 'strand_b missing from header'\n\theader[i] = 'strand2'\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('sampletype', 'sample type', 'sample_type')\n\tif (i != -1) header[i] = 'sampletype'\n\ti = htry('disease')\n\tif (i != -1) header[i] = 'disease'\n\ti = htry('origin')\n\tif (i != -1) header[i] = 'origin'\n\tif (issv) {\n\t\tflag.sv.loaded = true\n\t\tflag.sv.header = header\n\t} else {\n\t\tflag.fusion.loaded = true\n\t\tflag.fusion.header = header\n\t}\n\treturn false\n}\n\nexport function parseline(i, line, flag, issv) {\n\tif (line == '' || line[0] == '#') return\n\tconst lst = line.split('\\t')\n\tconst m = {}\n\tconst header = issv ? flag.sv.header : flag.fusion.header\n\tconst badlines = issv ? flag.sv.badlines : flag.fusion.badlines\n\n\tfor (let j = 0; j < header.length; j++) {\n\t\tm[header[j]] = lst[j]\n\t}\n\tif (!m.chr1) {\n\t\tbadlines.push([i, 'missing chr1', lst])\n\t\treturn\n\t}\n\tif (m.chr1.toLowerCase().indexOf('chr') != 0) {\n\t\tm.chr1 = 'chr' + m.chr1\n\t}\n\tif (!m.chr2) {\n\t\tbadlines.push([i, 'missing chr2', lst])\n\t\treturn\n\t}\n\tif (m.chr2.toLowerCase().indexOf('chr') != 0) {\n\t\tm.chr2 = 'chr' + m.chr2\n\t}\n\tlet v = m.position1\n\tif (!v) {\n\t\tbadlines.push([i, 'missing position1', lst])\n\t\treturn\n\t}\n\tlet v2 = Number.parseInt(v)\n\tif (Number.isNaN(v2) || v2 <= 0) {\n\t\tbadlines.push([i, 'invalid value for position1', lst])\n\t\treturn\n\t}\n\tm.position1 = v2\n\tv = m.position2\n\tif (!v) {\n\t\tbadlines.push([i, 'missing position2', lst])\n\t\treturn\n\t}\n\tv2 = Number.parseInt(v)\n\tif (Number.isNaN(v2) || v2 <= 0) {\n\t\tbadlines.push([i, 'invalid value for position2', lst])\n\t\treturn\n\t}\n\tm.position2 = v2\n\tif (bulk.parsesample(m, flag, i, lst, badlines)) {\n\t\treturn\n\t}\n\tif (m.isoform1 && m.isoform1.indexOf(',') != -1) {\n\t\tconst lst2 = m.isoform1.split(',')\n\t\tm.isoform1 = undefined\n\t\tfor (const t of lst2) {\n\t\t\tif (t != '') m.isoform1 = t\n\t\t}\n\t}\n\tif (m.isoform2 && m.isoform2.indexOf(',') != -1) {\n\t\tconst lst2 = m.isoform2.split(',')\n\t\tm.isoform2 = undefined\n\t\tfor (const t of lst2) {\n\t\t\tif (t != '') m.isoform2 = t\n\t\t}\n\t}\n\tif (!m.gene1) {\n\t\tm.isoform1 = undefined\n\t}\n\tif (!m.gene2) {\n\t\tm.isoform2 = undefined\n\t}\n\tif (m.gene1) {\n\t\t// put data under gene1\n\t\tflag.good++\n\t\tconst m2 = {\n\t\t\tdt: issv ? common.dtsv : common.dtfusionrna,\n\t\t\tclass: issv ? common.mclasssv : common.mclassfusionrna,\n\t\t\tisoform: m.isoform1,\n\t\t\tmname: m.gene2 || m.chr2,\n\t\t\tsample: m.sample,\n\t\t\tpatient: m.patient,\n\t\t\tsampletype: m.sampletype,\n\t\t\torigin: m.origin,\n\t\t\tdisease: m.disease,\n\t\t\tpairlst: [\n\t\t\t\t{\n\t\t\t\t\ta: {\n\t\t\t\t\t\tname: m.gene1,\n\t\t\t\t\t\tisoform: m.isoform1,\n\t\t\t\t\t\tstrand: m.strand1,\n\t\t\t\t\t\tchr: m.chr1,\n\t\t\t\t\t\tposition: m.position1\n\t\t\t\t\t},\n\t\t\t\t\tb: {\n\t\t\t\t\t\tname: m.gene2,\n\t\t\t\t\t\tisoform: m.isoform2,\n\t\t\t\t\t\tstrand: m.strand2,\n\t\t\t\t\t\tchr: m.chr2,\n\t\t\t\t\t\tposition: m.position2\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t]\n\t\t}\n\t\tconst n = flag.geneToUpper ? m.gene1.toUpperCase() : m.gene1\n\t\tif (!flag.data[n]) {\n\t\t\tflag.data[n] = []\n\t\t}\n\t\tflag.data[n].push(m2)\n\t}\n\tif (m.gene2 && m.gene2 != m.gene1) {\n\t\t// put data under gene2\n\t\tflag.good++\n\t\tconst m2 = {\n\t\t\tdt: issv ? common.dtsv : common.dtfusionrna,\n\t\t\tclass: issv ? common.mclasssv : common.mclassfusionrna,\n\t\t\tisoform: m.isoform2,\n\t\t\tmname: m.gene1 || m.chr1,\n\t\t\tsample: m.sample,\n\t\t\tpatient: m.patient,\n\t\t\tsampletype: m.sampletype,\n\t\t\torigin: m.origin,\n\t\t\tdisease: m.disease,\n\t\t\tpairlst: [\n\t\t\t\t{\n\t\t\t\t\ta: {\n\t\t\t\t\t\tname: m.gene1,\n\t\t\t\t\t\tisoform: m.isoform1,\n\t\t\t\t\t\tstrand: m.strand1,\n\t\t\t\t\t\tchr: m.chr1,\n\t\t\t\t\t\tposition: m.position1\n\t\t\t\t\t},\n\t\t\t\t\tb: {\n\t\t\t\t\t\tname: m.gene2,\n\t\t\t\t\t\tisoform: m.isoform2,\n\t\t\t\t\t\tstrand: m.strand2,\n\t\t\t\t\t\tchr: m.chr2,\n\t\t\t\t\t\tposition: m.position2\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t]\n\t\t}\n\t\tconst n = flag.geneToUpper ? m.gene2.toUpperCase() : m.gene2\n\t\tif (!flag.data[n]) {\n\t\t\tflag.data[n] = []\n\t\t}\n\t\tflag.data[n].push(m2)\n\t}\n}\n\nexport function duplicate(m) {\n\tconst n = {}\n\tfor (const k in m) {\n\t\tif (k == 'pairlst') continue\n\t\tconst v = m[k]\n\t\tconst type = typeof v\n\t\tif (type == 'object') {\n\t\t\tcontinue\n\t\t}\n\t\tn[k] = v\n\t}\n\tif (m.pairlst) {\n\t\tn.pairlst = []\n\t\tfor (const pair of m.pairlst) {\n\t\t\tconst p = {}\n\t\t\tfor (const k in pair) {\n\t\t\t\tif (k == 'a' || k == 'b' || k == 'interstitial') {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tp[k] = pair[k]\n\t\t\t}\n\t\t\tif (pair.a) {\n\t\t\t\tp.a = {}\n\t\t\t\tfor (const k in pair.a) {\n\t\t\t\t\tconst v = pair.a[k]\n\t\t\t\t\tif (typeof v == 'object') {\n\t\t\t\t\t\tcontinue\n\t\t\t\t\t}\n\t\t\t\t\tp.a[k] = v\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (pair.b) {\n\t\t\t\tp.b = {}\n\t\t\t\tfor (const k in pair.b) {\n\t\t\t\t\tconst v = pair.b[k]\n\t\t\t\t\tif (typeof v == 'object') {\n\t\t\t\t\t\tcontinue\n\t\t\t\t\t}\n\t\t\t\t\tp.b[k] = v\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (pair.interstitial) {\n\t\t\t\tp.interstitial = {}\n\t\t\t\tfor (const k in pair.interstitial) {\n\t\t\t\t\tconst v = pair.interstitial[k]\n\t\t\t\t\tif (typeof v == 'object') {\n\t\t\t\t\t\tcontinue\n\t\t\t\t\t}\n\t\t\t\t\tp.interstitial[k] = v\n\t\t\t\t}\n\t\t\t}\n\t\t\tn.pairlst.push(p)\n\t\t}\n\t}\n\treturn n\n}\n"],
|
|
5
|
+
"mappings": "AAAA,YAAY,UAAU;AACtB,YAAY,YAAY;AAWjB,SAAS,YAAY,MAAM,MAAM,MAAM;AAC7C,QAAM,SAAS,KAAK,YAAY,EAAE,MAAM,GAAI;AAC5C,MAAI,OAAO,UAAU,EAAG,QAAO;AAC/B,QAAM,OAAO,IAAI,QAAQ;AACxB,eAAW,KAAK,KAAK;AACpB,YAAM,IAAI,OAAO,QAAQ,CAAC;AAC1B,UAAI,KAAK,GAAI,QAAO;AAAA,IACrB;AACA,WAAO;AAAA,EACR;AACA,MAAI,IAAI,KAAK,UAAU,SAAS,OAAO;AACvC,MAAI,KAAK,GAAI,QAAO;AACpB,SAAO,CAAC,IAAI;AACZ,MAAI,KAAK,UAAU,SAAS,OAAO;AACnC,MAAI,KAAK,GAAI,QAAO;AACpB,SAAO,CAAC,IAAI;AACZ,MAAI,KAAK,SAAS,QAAQ,MAAM;AAChC,MAAI,KAAK,GAAI,QAAO;AACpB,SAAO,CAAC,IAAI;AACZ,MAAI,KAAK,SAAS,QAAQ,MAAM;AAChC,MAAI,KAAK,GAAI,QAAO;AACpB,SAAO,CAAC,IAAI;AACZ,MAAI,KAAK,SAAS,cAAc,aAAa,MAAM;AACnD,MAAI,KAAK,GAAI,QAAO;AACpB,SAAO,CAAC,IAAI;AACZ,MAAI,KAAK,SAAS,cAAc,aAAa,MAAM;AACnD,MAAI,KAAK,GAAI,QAAO;AACpB,SAAO,CAAC,IAAI;AACZ,MAAI,KAAK,aAAa,YAAY,WAAW,YAAY,YAAY;AACrE,MAAI,KAAK,GAAI,QAAO;AACpB,SAAO,CAAC,IAAI;AACZ,MAAI,KAAK,aAAa,YAAY,WAAW,YAAY,YAAY;AACrE,MAAI,KAAK,GAAI,QAAO;AACpB,SAAO,CAAC,IAAI;AACZ,MAAI,KAAK,YAAY,MAAM;AAC3B,MAAI,KAAK,GAAI,QAAO;AACpB,SAAO,CAAC,IAAI;AACZ,MAAI,KAAK,YAAY,MAAM;AAC3B,MAAI,KAAK,GAAI,QAAO;AACpB,SAAO,CAAC,IAAI;AAEZ,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,cAAc,eAAe,aAAa;AACnD,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,MAAM;AACT,SAAK,GAAG,SAAS;AACjB,SAAK,GAAG,SAAS;AAAA,EAClB,OAAO;AACN,SAAK,OAAO,SAAS;AACrB,SAAK,OAAO,SAAS;AAAA,EACtB;AACA,SAAO;AACR;AAEO,SAAS,UAAU,GAAG,MAAM,MAAM,MAAM;AAC9C,MAAI,QAAQ,MAAM,KAAK,CAAC,KAAK,IAAK;AAClC,QAAM,MAAM,KAAK,MAAM,GAAI;AAC3B,QAAM,IAAI,CAAC;AACX,QAAM,SAAS,OAAO,KAAK,GAAG,SAAS,KAAK,OAAO;AACnD,QAAM,WAAW,OAAO,KAAK,GAAG,WAAW,KAAK,OAAO;AAEvD,WAAS,IAAI,GAAG,IAAI,OAAO,QAAQ,KAAK;AACvC,MAAE,OAAO,CAAC,CAAC,IAAI,IAAI,CAAC;AAAA,EACrB;AACA,MAAI,CAAC,EAAE,MAAM;AACZ,aAAS,KAAK,CAAC,GAAG,gBAAgB,GAAG,CAAC;AACtC;AAAA,EACD;AACA,MAAI,EAAE,KAAK,YAAY,EAAE,QAAQ,KAAK,KAAK,GAAG;AAC7C,MAAE,OAAO,QAAQ,EAAE;AAAA,EACpB;AACA,MAAI,CAAC,EAAE,MAAM;AACZ,aAAS,KAAK,CAAC,GAAG,gBAAgB,GAAG,CAAC;AACtC;AAAA,EACD;AACA,MAAI,EAAE,KAAK,YAAY,EAAE,QAAQ,KAAK,KAAK,GAAG;AAC7C,MAAE,OAAO,QAAQ,EAAE;AAAA,EACpB;AACA,MAAI,IAAI,EAAE;AACV,MAAI,CAAC,GAAG;AACP,aAAS,KAAK,CAAC,GAAG,qBAAqB,GAAG,CAAC;AAC3C;AAAA,EACD;AACA,MAAI,KAAK,OAAO,SAAS,CAAC;AAC1B,MAAI,OAAO,MAAM,EAAE,KAAK,MAAM,GAAG;AAChC,aAAS,KAAK,CAAC,GAAG,+BAA+B,GAAG,CAAC;AACrD;AAAA,EACD;AACA,IAAE,YAAY;AACd,MAAI,EAAE;AACN,MAAI,CAAC,GAAG;AACP,aAAS,KAAK,CAAC,GAAG,qBAAqB,GAAG,CAAC;AAC3C;AAAA,EACD;AACA,OAAK,OAAO,SAAS,CAAC;AACtB,MAAI,OAAO,MAAM,EAAE,KAAK,MAAM,GAAG;AAChC,aAAS,KAAK,CAAC,GAAG,+BAA+B,GAAG,CAAC;AACrD;AAAA,EACD;AACA,IAAE,YAAY;AACd,MAAI,KAAK,YAAY,GAAG,MAAM,GAAG,KAAK,QAAQ,GAAG;AAChD;AAAA,EACD;AACA,MAAI,EAAE,YAAY,EAAE,SAAS,QAAQ,GAAG,KAAK,IAAI;AAChD,UAAM,OAAO,EAAE,SAAS,MAAM,GAAG;AACjC,MAAE,WAAW;AACb,eAAW,KAAK,MAAM;AACrB,UAAI,KAAK,GAAI,GAAE,WAAW;AAAA,IAC3B;AAAA,EACD;AACA,MAAI,EAAE,YAAY,EAAE,SAAS,QAAQ,GAAG,KAAK,IAAI;AAChD,UAAM,OAAO,EAAE,SAAS,MAAM,GAAG;AACjC,MAAE,WAAW;AACb,eAAW,KAAK,MAAM;AACrB,UAAI,KAAK,GAAI,GAAE,WAAW;AAAA,IAC3B;AAAA,EACD;AACA,MAAI,CAAC,EAAE,OAAO;AACb,MAAE,WAAW;AAAA,EACd;AACA,MAAI,CAAC,EAAE,OAAO;AACb,MAAE,WAAW;AAAA,EACd;AACA,MAAI,EAAE,OAAO;AAEZ,SAAK;AACL,UAAM,KAAK;AAAA,MACV,IAAI,OAAO,OAAO,OAAO,OAAO;AAAA,MAChC,OAAO,OAAO,OAAO,WAAW,OAAO;AAAA,MACvC,SAAS,EAAE;AAAA,MACX,OAAO,EAAE,SAAS,EAAE;AAAA,MACpB,QAAQ,EAAE;AAAA,MACV,SAAS,EAAE;AAAA,MACX,YAAY,EAAE;AAAA,MACd,QAAQ,EAAE;AAAA,MACV,SAAS,EAAE;AAAA,MACX,SAAS;AAAA,QACR;AAAA,UACC,GAAG;AAAA,YACF,MAAM,EAAE;AAAA,YACR,SAAS,EAAE;AAAA,YACX,QAAQ,EAAE;AAAA,YACV,KAAK,EAAE;AAAA,YACP,UAAU,EAAE;AAAA,UACb;AAAA,UACA,GAAG;AAAA,YACF,MAAM,EAAE;AAAA,YACR,SAAS,EAAE;AAAA,YACX,QAAQ,EAAE;AAAA,YACV,KAAK,EAAE;AAAA,YACP,UAAU,EAAE;AAAA,UACb;AAAA,QACD;AAAA,MACD;AAAA,IACD;AACA,UAAM,IAAI,KAAK,cAAc,EAAE,MAAM,YAAY,IAAI,EAAE;AACvD,QAAI,CAAC,KAAK,KAAK,CAAC,GAAG;AAClB,WAAK,KAAK,CAAC,IAAI,CAAC;AAAA,IACjB;AACA,SAAK,KAAK,CAAC,EAAE,KAAK,EAAE;AAAA,EACrB;AACA,MAAI,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO;AAElC,SAAK;AACL,UAAM,KAAK;AAAA,MACV,IAAI,OAAO,OAAO,OAAO,OAAO;AAAA,MAChC,OAAO,OAAO,OAAO,WAAW,OAAO;AAAA,MACvC,SAAS,EAAE;AAAA,MACX,OAAO,EAAE,SAAS,EAAE;AAAA,MACpB,QAAQ,EAAE;AAAA,MACV,SAAS,EAAE;AAAA,MACX,YAAY,EAAE;AAAA,MACd,QAAQ,EAAE;AAAA,MACV,SAAS,EAAE;AAAA,MACX,SAAS;AAAA,QACR;AAAA,UACC,GAAG;AAAA,YACF,MAAM,EAAE;AAAA,YACR,SAAS,EAAE;AAAA,YACX,QAAQ,EAAE;AAAA,YACV,KAAK,EAAE;AAAA,YACP,UAAU,EAAE;AAAA,UACb;AAAA,UACA,GAAG;AAAA,YACF,MAAM,EAAE;AAAA,YACR,SAAS,EAAE;AAAA,YACX,QAAQ,EAAE;AAAA,YACV,KAAK,EAAE;AAAA,YACP,UAAU,EAAE;AAAA,UACb;AAAA,QACD;AAAA,MACD;AAAA,IACD;AACA,UAAM,IAAI,KAAK,cAAc,EAAE,MAAM,YAAY,IAAI,EAAE;AACvD,QAAI,CAAC,KAAK,KAAK,CAAC,GAAG;AAClB,WAAK,KAAK,CAAC,IAAI,CAAC;AAAA,IACjB;AACA,SAAK,KAAK,CAAC,EAAE,KAAK,EAAE;AAAA,EACrB;AACD;AAEO,SAAS,UAAU,GAAG;AAC5B,QAAM,IAAI,CAAC;AACX,aAAW,KAAK,GAAG;AAClB,QAAI,KAAK,UAAW;AACpB,UAAM,IAAI,EAAE,CAAC;AACb,UAAM,OAAO,OAAO;AACpB,QAAI,QAAQ,UAAU;AACrB;AAAA,IACD;AACA,MAAE,CAAC,IAAI;AAAA,EACR;AACA,MAAI,EAAE,SAAS;AACd,MAAE,UAAU,CAAC;AACb,eAAW,QAAQ,EAAE,SAAS;AAC7B,YAAM,IAAI,CAAC;AACX,iBAAW,KAAK,MAAM;AACrB,YAAI,KAAK,OAAO,KAAK,OAAO,KAAK,gBAAgB;AAChD;AAAA,QACD;AACA,UAAE,CAAC,IAAI,KAAK,CAAC;AAAA,MACd;AACA,UAAI,KAAK,GAAG;AACX,UAAE,IAAI,CAAC;AACP,mBAAW,KAAK,KAAK,GAAG;AACvB,gBAAM,IAAI,KAAK,EAAE,CAAC;AAClB,cAAI,OAAO,KAAK,UAAU;AACzB;AAAA,UACD;AACA,YAAE,EAAE,CAAC,IAAI;AAAA,QACV;AAAA,MACD;AACA,UAAI,KAAK,GAAG;AACX,UAAE,IAAI,CAAC;AACP,mBAAW,KAAK,KAAK,GAAG;AACvB,gBAAM,IAAI,KAAK,EAAE,CAAC;AAClB,cAAI,OAAO,KAAK,UAAU;AACzB;AAAA,UACD;AACA,YAAE,EAAE,CAAC,IAAI;AAAA,QACV;AAAA,MACD;AACA,UAAI,KAAK,cAAc;AACtB,UAAE,eAAe,CAAC;AAClB,mBAAW,KAAK,KAAK,cAAc;AAClC,gBAAM,IAAI,KAAK,aAAa,CAAC;AAC7B,cAAI,OAAO,KAAK,UAAU;AACzB;AAAA,UACD;AACA,YAAE,aAAa,CAAC,IAAI;AAAA,QACrB;AAAA,MACD;AACA,QAAE,QAAQ,KAAK,CAAC;AAAA,IACjB;AAAA,EACD;AACA,SAAO;AACR;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
import * as common from "./common.js";
|
|
2
|
+
import * as bulk from "./bulk.js";
|
|
3
|
+
function parseheader(line, flag) {
|
|
4
|
+
const header = line.toLowerCase().split(" ");
|
|
5
|
+
if (header.length <= 1) return "invalid file header for svjson";
|
|
6
|
+
const htry = (...lst) => {
|
|
7
|
+
for (const a of lst) {
|
|
8
|
+
const j = header.indexOf(a);
|
|
9
|
+
if (j != -1) return j;
|
|
10
|
+
}
|
|
11
|
+
return -1;
|
|
12
|
+
};
|
|
13
|
+
let i = htry("sample");
|
|
14
|
+
if (i != -1) header[i] = "sample";
|
|
15
|
+
i = htry("sampletype");
|
|
16
|
+
if (i != -1) header[i] = "sampletype";
|
|
17
|
+
i = htry("patient");
|
|
18
|
+
if (i != -1) header[i] = "patient";
|
|
19
|
+
i = htry("json", "jsontext");
|
|
20
|
+
if (i == -1) return ["json missing from header"];
|
|
21
|
+
header[i] = "jsontext";
|
|
22
|
+
return [null, header];
|
|
23
|
+
}
|
|
24
|
+
function parseline(i, line, flag, header) {
|
|
25
|
+
if (line == "" || line[0] == "#") return;
|
|
26
|
+
const lst = line.split(" ");
|
|
27
|
+
const m = {};
|
|
28
|
+
const badlines = flag.svjson.badlines;
|
|
29
|
+
for (let j = 0; j < header.length; j++) {
|
|
30
|
+
m[header[j]] = lst[j];
|
|
31
|
+
}
|
|
32
|
+
if (!m.jsontext) {
|
|
33
|
+
badlines.push([i, "missing jsontext", lst]);
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
if (bulk.parsesample(m, flag, i, lst, badlines)) {
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
let json;
|
|
40
|
+
try {
|
|
41
|
+
json = JSON.parse(m.jsontext);
|
|
42
|
+
} catch (e) {
|
|
43
|
+
badlines.push([i, "invalid JSON text", lst]);
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
if (Array.isArray(json)) {
|
|
47
|
+
for (const pair of json) {
|
|
48
|
+
if (pair.a && pair.a.name && pair.a.isoform) {
|
|
49
|
+
flag.good++;
|
|
50
|
+
const m2 = {
|
|
51
|
+
dt: common.dtfusionrna,
|
|
52
|
+
class: common.mclassfusionrna,
|
|
53
|
+
isoform: pair.a.isoform,
|
|
54
|
+
mname: pair.b.name
|
|
55
|
+
};
|
|
56
|
+
for (const k in m) {
|
|
57
|
+
if (k != "jsontext") m2[k] = m[k];
|
|
58
|
+
}
|
|
59
|
+
m2.pairlst = duplicate(json);
|
|
60
|
+
const n = pair.a.name.toUpperCase();
|
|
61
|
+
if (!flag.data[n]) {
|
|
62
|
+
flag.data[n] = [];
|
|
63
|
+
}
|
|
64
|
+
flag.data[n].push(m2);
|
|
65
|
+
}
|
|
66
|
+
if (pair.b && pair.b.name && pair.b.isoform) {
|
|
67
|
+
flag.good++;
|
|
68
|
+
const m2 = {
|
|
69
|
+
dt: common.dtfusionrna,
|
|
70
|
+
class: common.mclassfusionrna,
|
|
71
|
+
isoform: pair.b.isoform,
|
|
72
|
+
mname: pair.a.name
|
|
73
|
+
};
|
|
74
|
+
for (const k in m) {
|
|
75
|
+
if (k != "jsontext") m2[k] = m[k];
|
|
76
|
+
}
|
|
77
|
+
m2.pairlst = duplicate(json);
|
|
78
|
+
const n = pair.b.name.toUpperCase();
|
|
79
|
+
if (!flag.data[n]) {
|
|
80
|
+
flag.data[n] = [];
|
|
81
|
+
}
|
|
82
|
+
flag.data[n].push(m2);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
} else {
|
|
86
|
+
json.dt = json.typecode;
|
|
87
|
+
delete json.typecode;
|
|
88
|
+
switch (json.dt) {
|
|
89
|
+
case common.dtitd:
|
|
90
|
+
json.class = common.mclassitd;
|
|
91
|
+
json.mname = "ITD";
|
|
92
|
+
break;
|
|
93
|
+
case common.dtnloss:
|
|
94
|
+
json.class = common.mclassnloss;
|
|
95
|
+
json.mname = "N-loss";
|
|
96
|
+
break;
|
|
97
|
+
case common.dtcloss:
|
|
98
|
+
json.class = common.mclasscloss;
|
|
99
|
+
json.mname = "C-loss";
|
|
100
|
+
break;
|
|
101
|
+
case common.dtdel:
|
|
102
|
+
json.class = common.mclassdel;
|
|
103
|
+
json.mname = "Del";
|
|
104
|
+
break;
|
|
105
|
+
case common.dtsv:
|
|
106
|
+
json.class = common.mclasssv;
|
|
107
|
+
json.mname = "SV";
|
|
108
|
+
break;
|
|
109
|
+
default:
|
|
110
|
+
badlines.push([i, "unknown datatype", lst]);
|
|
111
|
+
return;
|
|
112
|
+
}
|
|
113
|
+
if (!json.gene) {
|
|
114
|
+
badlines.push([i, "json.gene missing", lst]);
|
|
115
|
+
return;
|
|
116
|
+
}
|
|
117
|
+
flag.good++;
|
|
118
|
+
for (const k in m) {
|
|
119
|
+
if (k != "jsontext") {
|
|
120
|
+
json[k] = m[k];
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
const n = flag.geneToUpper ? json.gene.toUpperCase() : json.gene.toUpperCase();
|
|
124
|
+
if (!flag.data[n]) {
|
|
125
|
+
flag.data[n] = [];
|
|
126
|
+
}
|
|
127
|
+
flag.data[n].push(json);
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
function duplicate(lst) {
|
|
131
|
+
const d = [];
|
|
132
|
+
for (const pair of lst) {
|
|
133
|
+
const p = { a: {}, b: {} };
|
|
134
|
+
for (const k in pair) {
|
|
135
|
+
if (k != "a" && k != "b") p[k] = pair[k];
|
|
136
|
+
}
|
|
137
|
+
for (const k in pair.a) {
|
|
138
|
+
p.a[k] = pair.a[k];
|
|
139
|
+
}
|
|
140
|
+
for (const k in pair.b) {
|
|
141
|
+
p.b[k] = pair.b[k];
|
|
142
|
+
}
|
|
143
|
+
d.push(p);
|
|
144
|
+
}
|
|
145
|
+
return d;
|
|
146
|
+
}
|
|
147
|
+
export {
|
|
148
|
+
parseheader,
|
|
149
|
+
parseline
|
|
150
|
+
};
|
|
151
|
+
//# sourceMappingURL=bulk.svjson.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/bulk.svjson.js"],
|
|
4
|
+
"sourcesContent": ["/////////////////////////////////\n//\n// client/server shared\n//\n/////////////////////////////////\n\nimport * as common from './common.js'\nimport * as bulk from './bulk.js'\n\n// work for both sv/fusion\n// must tell if the data is fusion or sv\n\nexport function parseheader(line, flag) {\n\tconst header = line.toLowerCase().split('\\t')\n\tif (header.length <= 1) return 'invalid file header for svjson'\n\tconst htry = (...lst) => {\n\t\tfor (const a of lst) {\n\t\t\tconst j = header.indexOf(a)\n\t\t\tif (j != -1) return j\n\t\t}\n\t\treturn -1\n\t}\n\tlet i = htry('sample')\n\tif (i != -1) header[i] = 'sample'\n\ti = htry('sampletype')\n\tif (i != -1) header[i] = 'sampletype'\n\ti = htry('patient')\n\tif (i != -1) header[i] = 'patient'\n\ti = htry('json', 'jsontext')\n\tif (i == -1) return ['json missing from header']\n\theader[i] = 'jsontext'\n\treturn [null, header]\n}\n\nexport function parseline(i, line, flag, header) {\n\tif (line == '' || line[0] == '#') return\n\tconst lst = line.split('\\t')\n\tconst m = {}\n\tconst badlines = flag.svjson.badlines\n\n\tfor (let j = 0; j < header.length; j++) {\n\t\tm[header[j]] = lst[j]\n\t}\n\tif (!m.jsontext) {\n\t\tbadlines.push([i, 'missing jsontext', lst])\n\t\treturn\n\t}\n\tif (bulk.parsesample(m, flag, i, lst, badlines)) {\n\t\treturn\n\t}\n\tlet json\n\ttry {\n\t\tjson = JSON.parse(m.jsontext)\n\t} catch (e) {\n\t\tbadlines.push([i, 'invalid JSON text', lst])\n\t\treturn\n\t}\n\t// duplicating logic in pediatric.js\n\tif (Array.isArray(json)) {\n\t\t// json is pairlst\n\t\tfor (const pair of json) {\n\t\t\tif (pair.a && pair.a.name && pair.a.isoform) {\n\t\t\t\tflag.good++\n\t\t\t\tconst m2 = {\n\t\t\t\t\tdt: common.dtfusionrna,\n\t\t\t\t\tclass: common.mclassfusionrna,\n\t\t\t\t\tisoform: pair.a.isoform,\n\t\t\t\t\tmname: pair.b.name\n\t\t\t\t}\n\t\t\t\tfor (const k in m) {\n\t\t\t\t\tif (k != 'jsontext') m2[k] = m[k]\n\t\t\t\t}\n\t\t\t\tm2.pairlst = duplicate(json)\n\t\t\t\tconst n = pair.a.name.toUpperCase()\n\t\t\t\tif (!flag.data[n]) {\n\t\t\t\t\tflag.data[n] = []\n\t\t\t\t}\n\t\t\t\tflag.data[n].push(m2)\n\t\t\t}\n\t\t\tif (pair.b && pair.b.name && pair.b.isoform) {\n\t\t\t\tflag.good++\n\t\t\t\tconst m2 = {\n\t\t\t\t\tdt: common.dtfusionrna,\n\t\t\t\t\tclass: common.mclassfusionrna,\n\t\t\t\t\tisoform: pair.b.isoform,\n\t\t\t\t\tmname: pair.a.name\n\t\t\t\t}\n\t\t\t\tfor (const k in m) {\n\t\t\t\t\tif (k != 'jsontext') m2[k] = m[k]\n\t\t\t\t}\n\t\t\t\tm2.pairlst = duplicate(json)\n\t\t\t\tconst n = pair.b.name.toUpperCase()\n\t\t\t\tif (!flag.data[n]) {\n\t\t\t\t\tflag.data[n] = []\n\t\t\t\t}\n\t\t\t\tflag.data[n].push(m2)\n\t\t\t}\n\t\t}\n\t} else {\n\t\tjson.dt = json.typecode\n\t\tdelete json.typecode\n\t\tswitch (json.dt) {\n\t\t\tcase common.dtitd:\n\t\t\t\tjson.class = common.mclassitd\n\t\t\t\tjson.mname = 'ITD'\n\t\t\t\tbreak\n\t\t\tcase common.dtnloss:\n\t\t\t\tjson.class = common.mclassnloss\n\t\t\t\tjson.mname = 'N-loss'\n\t\t\t\tbreak\n\t\t\tcase common.dtcloss:\n\t\t\t\tjson.class = common.mclasscloss\n\t\t\t\tjson.mname = 'C-loss'\n\t\t\t\tbreak\n\t\t\tcase common.dtdel:\n\t\t\t\tjson.class = common.mclassdel\n\t\t\t\tjson.mname = 'Del'\n\t\t\t\tbreak\n\t\t\tcase common.dtsv:\n\t\t\t\tjson.class = common.mclasssv\n\t\t\t\tjson.mname = 'SV'\n\t\t\t\tbreak\n\t\t\tdefault:\n\t\t\t\tbadlines.push([i, 'unknown datatype', lst])\n\t\t\t\treturn\n\t\t}\n\t\t// record only about a single gene\n\t\tif (!json.gene) {\n\t\t\tbadlines.push([i, 'json.gene missing', lst])\n\t\t\treturn\n\t\t}\n\t\tflag.good++\n\t\tfor (const k in m) {\n\t\t\tif (k != 'jsontext') {\n\t\t\t\tjson[k] = m[k]\n\t\t\t}\n\t\t}\n\t\tconst n = flag.geneToUpper ? json.gene.toUpperCase() : json.gene.toUpperCase()\n\t\tif (!flag.data[n]) {\n\t\t\tflag.data[n] = []\n\t\t}\n\t\tflag.data[n].push(json)\n\t}\n}\n\nfunction duplicate(lst) {\n\tconst d = []\n\tfor (const pair of lst) {\n\t\tconst p = { a: {}, b: {} }\n\t\tfor (const k in pair) {\n\t\t\tif (k != 'a' && k != 'b') p[k] = pair[k]\n\t\t}\n\t\tfor (const k in pair.a) {\n\t\t\tp.a[k] = pair.a[k]\n\t\t}\n\t\tfor (const k in pair.b) {\n\t\t\tp.b[k] = pair.b[k]\n\t\t}\n\t\td.push(p)\n\t}\n\treturn d\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import * as common from "./common.js";
|
|
2
|
+
import * as bulk from "./bulk.js";
|
|
3
|
+
function parseheader(line, flag) {
|
|
4
|
+
const header = line.toLowerCase().split(" ");
|
|
5
|
+
if (header.length <= 1) return "invalid header line for truncation";
|
|
6
|
+
const htry = (...lst) => {
|
|
7
|
+
for (const e of lst) {
|
|
8
|
+
const j = header.indexOf(e);
|
|
9
|
+
if (j != -1) return j;
|
|
10
|
+
}
|
|
11
|
+
return -1;
|
|
12
|
+
};
|
|
13
|
+
let i = htry("gene");
|
|
14
|
+
if (i == -1) return "gene missing from header";
|
|
15
|
+
header[i] = "gene";
|
|
16
|
+
i = htry(
|
|
17
|
+
"annovar_isoform",
|
|
18
|
+
"mrna_accession",
|
|
19
|
+
"mrna accession",
|
|
20
|
+
"refseq_mrna_id",
|
|
21
|
+
"annovar_sj_filter_isoform",
|
|
22
|
+
"refseq",
|
|
23
|
+
"isoform"
|
|
24
|
+
);
|
|
25
|
+
if (i == -1) return "isoform missing from header";
|
|
26
|
+
header[i] = "isoform";
|
|
27
|
+
let hasrnapos = false;
|
|
28
|
+
i = htry("rnaposition");
|
|
29
|
+
if (i != -1) {
|
|
30
|
+
header[i] = "rnaposition";
|
|
31
|
+
hasrnapos = true;
|
|
32
|
+
}
|
|
33
|
+
i = htry("losstype");
|
|
34
|
+
if (i == -1) return "lossType missing from header";
|
|
35
|
+
header[i] = "losstype";
|
|
36
|
+
let hasgenomic = false;
|
|
37
|
+
i = htry("chromosome", "chr");
|
|
38
|
+
if (i != -1) {
|
|
39
|
+
header[i] = "chr";
|
|
40
|
+
i = htry("start", "start_position", "wu_hg19_pos", "chr_position", "position");
|
|
41
|
+
if (i == -1) {
|
|
42
|
+
return "genomic position missing from header";
|
|
43
|
+
}
|
|
44
|
+
header[i] = "pos";
|
|
45
|
+
hasgenomic = true;
|
|
46
|
+
}
|
|
47
|
+
if (!hasrnapos && !hasgenomic) {
|
|
48
|
+
return "neither rnaposition nor genomic position is given";
|
|
49
|
+
}
|
|
50
|
+
i = htry("sample", "sample_name", "tumor_sample_barcode");
|
|
51
|
+
if (i != -1) header[i] = "sample";
|
|
52
|
+
i = htry("patient", "donor", "target_case_id");
|
|
53
|
+
if (i != -1) header[i] = "patient";
|
|
54
|
+
i = htry("disease");
|
|
55
|
+
if (i != -1) header[i] = "disease";
|
|
56
|
+
i = htry("origin");
|
|
57
|
+
if (i != -1) header[i] = "origin";
|
|
58
|
+
i = htry("sampletype", "sample type", "sample_type");
|
|
59
|
+
if (i != -1) header[i] = "sampletype";
|
|
60
|
+
flag.truncation.header = header;
|
|
61
|
+
flag.truncation.loaded = true;
|
|
62
|
+
return false;
|
|
63
|
+
}
|
|
64
|
+
function parseline(i, line, flag) {
|
|
65
|
+
if (line == "" || line[0] == "#") return;
|
|
66
|
+
const lst = line.split(" ");
|
|
67
|
+
const m = {};
|
|
68
|
+
for (let j = 0; j < flag.truncation.header.length; j++) {
|
|
69
|
+
m[flag.truncation.header[j]] = lst[j];
|
|
70
|
+
}
|
|
71
|
+
if (!m.gene) {
|
|
72
|
+
flag.truncation.badlines.push([i, "missing gene", lst]);
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
if (m.rnaposition) {
|
|
76
|
+
const v = Number.parseInt(m.rnaposition);
|
|
77
|
+
if (Number.isNaN(v) || v < 0) {
|
|
78
|
+
flag.truncation.badlines.push([i, "invalid rnaPosition value", lst]);
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
m.rnaposition = v;
|
|
82
|
+
}
|
|
83
|
+
if (m.pos) {
|
|
84
|
+
const v = Number.parseInt(m.pos);
|
|
85
|
+
if (Number.isNaN(v) || v < 0) {
|
|
86
|
+
flag.truncation.badlines.push([i, "invalid genomic position", lst]);
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
89
|
+
m.pos = v;
|
|
90
|
+
}
|
|
91
|
+
if (!m.losstype) {
|
|
92
|
+
flag.truncation.badlines.push([i, "missing lossType value", lst]);
|
|
93
|
+
return;
|
|
94
|
+
}
|
|
95
|
+
if (m.losstype != "n" && m.losstype != "c") {
|
|
96
|
+
flag.truncation.badlines.push([i, 'lossType value not "n" or "c"', lst]);
|
|
97
|
+
return;
|
|
98
|
+
}
|
|
99
|
+
if (bulk.parsesample(m, flag, i, lst, flag.truncation.badlines)) {
|
|
100
|
+
return;
|
|
101
|
+
}
|
|
102
|
+
if (m.losstype == "n") {
|
|
103
|
+
m.dt = common.dtnloss;
|
|
104
|
+
m.class = common.mclassnloss;
|
|
105
|
+
m.mname = "N-loss";
|
|
106
|
+
} else {
|
|
107
|
+
m.dt = common.dtcloss;
|
|
108
|
+
m.class = common.mclasscloss;
|
|
109
|
+
m.mname = "C-loss";
|
|
110
|
+
}
|
|
111
|
+
flag.good++;
|
|
112
|
+
const n = flag.geneToUpper ? m.gene.toUpperCase() : m.gene;
|
|
113
|
+
if (!(n in flag.data)) {
|
|
114
|
+
flag.data[n] = [];
|
|
115
|
+
}
|
|
116
|
+
flag.data[n].push(m);
|
|
117
|
+
}
|
|
118
|
+
export {
|
|
119
|
+
parseheader,
|
|
120
|
+
parseline
|
|
121
|
+
};
|
|
122
|
+
//# sourceMappingURL=bulk.trunc.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/bulk.trunc.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 truncation'\n\tconst htry = (...lst) => {\n\t\tfor (const e of lst) {\n\t\t\tconst j = header.indexOf(e)\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\tlet hasrnapos = false\n\ti = htry('rnaposition')\n\tif (i != -1) {\n\t\theader[i] = 'rnaposition'\n\t\thasrnapos = true\n\t}\n\ti = htry('losstype')\n\tif (i == -1) return 'lossType missing from header'\n\theader[i] = 'losstype'\n\tlet hasgenomic = false\n\ti = htry('chromosome', 'chr')\n\tif (i != -1) {\n\t\theader[i] = 'chr'\n\t\ti = htry('start', 'start_position', 'wu_hg19_pos', 'chr_position', 'position')\n\t\tif (i == -1) {\n\t\t\treturn 'genomic position missing from header'\n\t\t}\n\t\theader[i] = 'pos'\n\t\thasgenomic = true\n\t}\n\tif (!hasrnapos && !hasgenomic) {\n\t\treturn 'neither rnaposition nor genomic position is given'\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.truncation.header = header\n\tflag.truncation.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.truncation.header.length; j++) {\n\t\tm[flag.truncation.header[j]] = lst[j]\n\t}\n\tif (!m.gene) {\n\t\tflag.truncation.badlines.push([i, 'missing gene', lst])\n\t\treturn\n\t}\n\tif (m.rnaposition) {\n\t\tconst v = Number.parseInt(m.rnaposition)\n\t\tif (Number.isNaN(v) || v < 0) {\n\t\t\tflag.truncation.badlines.push([i, 'invalid rnaPosition value', lst])\n\t\t\treturn\n\t\t}\n\t\tm.rnaposition = v\n\t}\n\tif (m.pos) {\n\t\tconst v = Number.parseInt(m.pos)\n\t\tif (Number.isNaN(v) || v < 0) {\n\t\t\tflag.truncation.badlines.push([i, 'invalid genomic position', lst])\n\t\t\treturn\n\t\t}\n\t\tm.pos = v\n\t}\n\tif (!m.losstype) {\n\t\tflag.truncation.badlines.push([i, 'missing lossType value', lst])\n\t\treturn\n\t}\n\tif (m.losstype != 'n' && m.losstype != 'c') {\n\t\tflag.truncation.badlines.push([i, 'lossType value not \"n\" or \"c\"', lst])\n\t\treturn\n\t}\n\tif (bulk.parsesample(m, flag, i, lst, flag.truncation.badlines)) {\n\t\treturn\n\t}\n\tif (m.losstype == 'n') {\n\t\tm.dt = common.dtnloss\n\t\tm.class = common.mclassnloss\n\t\tm.mname = 'N-loss'\n\t} else {\n\t\tm.dt = common.dtcloss\n\t\tm.class = common.mclasscloss\n\t\tm.mname = 'C-loss'\n\t}\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
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
const clusterMethodLst = [
|
|
2
|
+
{
|
|
3
|
+
label: "Average",
|
|
4
|
+
value: "average",
|
|
5
|
+
title: `Cluster by average value`
|
|
6
|
+
},
|
|
7
|
+
{
|
|
8
|
+
label: `Complete`,
|
|
9
|
+
value: "complete",
|
|
10
|
+
title: `Use the complete clustering method`
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
label: `Single`,
|
|
14
|
+
value: "single",
|
|
15
|
+
title: `Use the single clustering method`
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
label: `Ward.D`,
|
|
19
|
+
value: "ward.D",
|
|
20
|
+
title: `Use the ward.D clustering method`
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
label: `Ward.D2`,
|
|
24
|
+
value: "ward.D2",
|
|
25
|
+
title: `Use the ward.D2 clustering method`
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
label: `Mcquitty`,
|
|
29
|
+
value: "mcquitty",
|
|
30
|
+
title: `Use the Mcquity clustering method`
|
|
31
|
+
}
|
|
32
|
+
/* These methods are currently disabled because the dendrogram lines tend to cross one another.
|
|
33
|
+
{
|
|
34
|
+
label: `Centroid`,
|
|
35
|
+
value: 'centroid',
|
|
36
|
+
title: `Use the centroid clustering method`
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
label: `Median`,
|
|
40
|
+
value: 'median',
|
|
41
|
+
title: `Use the median clustering method`
|
|
42
|
+
}
|
|
43
|
+
*/
|
|
44
|
+
];
|
|
45
|
+
const distanceMethodLst = [
|
|
46
|
+
{
|
|
47
|
+
label: "Euclidean",
|
|
48
|
+
value: "euclidean",
|
|
49
|
+
title: `Calculate distance using euclidean method`
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
label: "Maximum",
|
|
53
|
+
value: "maximum",
|
|
54
|
+
title: `Maximum distance between two components of x and y`
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
label: "Manhattan",
|
|
58
|
+
value: "manhattan",
|
|
59
|
+
title: `Calculate distance using the absolute distance between the two vectors`
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
label: "Canberra",
|
|
63
|
+
value: "canberra",
|
|
64
|
+
title: `Calculate distance using Canberra method`
|
|
65
|
+
}
|
|
66
|
+
];
|
|
67
|
+
export {
|
|
68
|
+
clusterMethodLst,
|
|
69
|
+
distanceMethodLst
|
|
70
|
+
};
|
|
71
|
+
//# sourceMappingURL=clustering.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/clustering.js"],
|
|
4
|
+
"sourcesContent": ["export const clusterMethodLst = [\n\t{\n\t\tlabel: 'Average',\n\t\tvalue: 'average',\n\t\ttitle: `Cluster by average value`\n\t},\n\t{\n\t\tlabel: `Complete`,\n\t\tvalue: 'complete',\n\t\ttitle: `Use the complete clustering method`\n\t},\n\t{\n\t\tlabel: `Single`,\n\t\tvalue: 'single',\n\t\ttitle: `Use the single clustering method`\n\t},\n\t{\n\t\tlabel: `Ward.D`,\n\t\tvalue: 'ward.D',\n\t\ttitle: `Use the ward.D clustering method`\n\t},\n\t{\n\t\tlabel: `Ward.D2`,\n\t\tvalue: 'ward.D2',\n\t\ttitle: `Use the ward.D2 clustering method`\n\t},\n\t{\n\t\tlabel: `Mcquitty`,\n\t\tvalue: 'mcquitty',\n\t\ttitle: `Use the Mcquity clustering method`\n\t}\n\t/* These methods are currently disabled because the dendrogram lines tend to cross one another.\n\t{\n\t\tlabel: `Centroid`,\n\t\tvalue: 'centroid',\n\t\ttitle: `Use the centroid clustering method`\n\t},\n \t{\n\t\tlabel: `Median`,\n\t\tvalue: 'median',\n\t\ttitle: `Use the median clustering method`\n\t}\n */\n]\nexport const distanceMethodLst = [\n\t{\n\t\tlabel: 'Euclidean',\n\t\tvalue: 'euclidean',\n\t\ttitle: `Calculate distance using euclidean method`\n\t},\n\t{\n\t\tlabel: 'Maximum',\n\t\tvalue: 'maximum',\n\t\ttitle: `Maximum distance between two components of x and y`\n\t},\n\t{\n\t\tlabel: 'Manhattan',\n\t\tvalue: 'manhattan',\n\t\ttitle: `Calculate distance using the absolute distance between the two vectors`\n\t},\n\t{\n\t\tlabel: 'Canberra',\n\t\tvalue: 'canberra',\n\t\ttitle: `Calculate distance using Canberra method`\n\t}\n]\n"],
|
|
5
|
+
"mappings": "AAAO,MAAM,mBAAmB;AAAA,EAC/B;AAAA,IACC,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,EACR;AAAA,EACA;AAAA,IACC,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,EACR;AAAA,EACA;AAAA,IACC,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,EACR;AAAA,EACA;AAAA,IACC,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,EACR;AAAA,EACA;AAAA,IACC,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,EACR;AAAA,EACA;AAAA,IACC,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,EACR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAaD;AACO,MAAM,oBAAoB;AAAA,EAChC;AAAA,IACC,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,EACR;AAAA,EACA;AAAA,IACC,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,EACR;AAAA,EACA;AAAA,IACC,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,EACR;AAAA,EACA;AAAA,IACC,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,EACR;AACD;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|