@sjcrh/proteinpaint-shared 2.180.0 → 2.180.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/package.json +2 -2
- package/src/bulk.cnv.js +30 -30
- package/src/bulk.del.js +48 -48
- package/src/bulk.itd.js +48 -48
- package/src/bulk.js +31 -31
- package/src/bulk.snv.js +109 -72
- package/src/bulk.sv.js +78 -78
- package/src/bulk.svjson.js +33 -31
- package/src/bulk.trunc.js +53 -47
- package/src/clustering.js +27 -27
- package/src/common.js +665 -558
- package/src/compute.percentile.js +3 -1
- package/src/fetch-helpers.js +67 -42
- package/src/fileSize.js +4 -4
- package/src/filter.js +207 -179
- package/src/hash.js +8 -5
- package/src/helpers.js +17 -9
- package/src/index.js +24 -24
- package/src/mds3tk.js +14 -12
- package/src/roundValue.js +5 -4
- package/src/termdb.bins.js +151 -84
- package/src/termdb.initbinconfig.js +46 -18
- package/src/termdb.usecase.js +125 -116
- package/src/terms.js +281 -266
- package/src/tree.js +4 -4
- package/src/vcf.ann.js +9 -9
- package/src/vcf.csq.js +8 -8
- package/src/vcf.info.js +3 -3
- package/src/vcf.js +99 -74
- package/src/vcf.type.js +8 -2
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sjcrh/proteinpaint-shared",
|
|
3
|
-
"version": "2.180.
|
|
3
|
+
"version": "2.180.1",
|
|
4
4
|
"description": "ProteinPaint code that is shared between server and client-side workspaces",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "src/index.js",
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
"./*": "./src/*"
|
|
15
15
|
},
|
|
16
16
|
"scripts": {
|
|
17
|
-
"build": "esbuild src/*.ts --platform=node --outdir=src/ --format=esm && prettier --no-semi --use-tabs --write src
|
|
17
|
+
"build": "esbuild src/*.ts --platform=node --outdir=src/ --format=esm && prettier --no-semi --use-tabs --write src/*.js",
|
|
18
18
|
"prepack": "npm run build",
|
|
19
19
|
"pretest": "mkdir -p test && node emitImports > test/internals-test.ts",
|
|
20
20
|
"spec:coverage": "node test/relevant.js",
|
package/src/bulk.cnv.js
CHANGED
|
@@ -4,12 +4,12 @@
|
|
|
4
4
|
//
|
|
5
5
|
////////////////////////////////////
|
|
6
6
|
|
|
7
|
-
import * as common from
|
|
8
|
-
import * as bulk from
|
|
7
|
+
import * as common from "./common.js"
|
|
8
|
+
import * as bulk from "./bulk.js"
|
|
9
9
|
|
|
10
10
|
export function parseheader(line, flag) {
|
|
11
|
-
const header = line.toLowerCase().split(
|
|
12
|
-
if (header.length <= 1) return
|
|
11
|
+
const header = line.toLowerCase().split("\t")
|
|
12
|
+
if (header.length <= 1) return "invalid file header for CNV"
|
|
13
13
|
const htry = (...lst) => {
|
|
14
14
|
for (const i of lst) {
|
|
15
15
|
const j = header.indexOf(i)
|
|
@@ -17,57 +17,57 @@ export function parseheader(line, flag) {
|
|
|
17
17
|
}
|
|
18
18
|
return -1
|
|
19
19
|
}
|
|
20
|
-
let i = htry(
|
|
21
|
-
if (i == -1) return
|
|
22
|
-
header[i] =
|
|
23
|
-
i = htry(
|
|
24
|
-
if (i == -1) return
|
|
25
|
-
header[i] =
|
|
26
|
-
i = htry(
|
|
27
|
-
if (i != -1) header[i] =
|
|
28
|
-
i = htry(
|
|
29
|
-
if (i != -1) header[i] =
|
|
30
|
-
i = htry(
|
|
31
|
-
if (i != -1) header[i] =
|
|
32
|
-
i = htry(
|
|
33
|
-
if (i != -1) header[i] =
|
|
34
|
-
i = htry(
|
|
35
|
-
if (i != -1) header[i] =
|
|
20
|
+
let i = htry("gene")
|
|
21
|
+
if (i == -1) return "gene missing from header"
|
|
22
|
+
header[i] = "gene"
|
|
23
|
+
i = htry("cnv")
|
|
24
|
+
if (i == -1) return "CNV missing from header"
|
|
25
|
+
header[i] = "cnv"
|
|
26
|
+
i = htry("sample", "sample_name", "tumor_sample_barcode")
|
|
27
|
+
if (i != -1) header[i] = "sample"
|
|
28
|
+
i = htry("patient", "donor", "target_case_id")
|
|
29
|
+
if (i != -1) header[i] = "patient"
|
|
30
|
+
i = htry("disease")
|
|
31
|
+
if (i != -1) header[i] = "disease"
|
|
32
|
+
i = htry("origin")
|
|
33
|
+
if (i != -1) header[i] = "origin"
|
|
34
|
+
i = htry("sampletype", "sample type", "sample_type")
|
|
35
|
+
if (i != -1) header[i] = "sampletype"
|
|
36
36
|
flag.cnv.header = header
|
|
37
37
|
flag.cnv.loaded = true
|
|
38
38
|
return false
|
|
39
39
|
}
|
|
40
40
|
|
|
41
41
|
export function parseline(i, line, flag) {
|
|
42
|
-
if (line ==
|
|
43
|
-
const lst = line.split(
|
|
42
|
+
if (line == "" || line[0] == "#") return
|
|
43
|
+
const lst = line.split("\t")
|
|
44
44
|
const m = {}
|
|
45
45
|
for (let j = 0; j < flag.cnv.header.length; j++) {
|
|
46
46
|
m[flag.cnv.header[j]] = lst[j]
|
|
47
47
|
}
|
|
48
48
|
if (!m.gene) {
|
|
49
|
-
flag.cnv.badlines.push([i,
|
|
49
|
+
flag.cnv.badlines.push([i, "missing gene", lst])
|
|
50
50
|
return
|
|
51
51
|
}
|
|
52
52
|
if (!m.cnv) {
|
|
53
|
-
flag.cnv.badlines.push([i,
|
|
53
|
+
flag.cnv.badlines.push([i, "missing cnv value", lst])
|
|
54
54
|
return
|
|
55
55
|
}
|
|
56
56
|
const value = m.cnv.toLowerCase()
|
|
57
57
|
switch (value) {
|
|
58
|
-
case
|
|
59
|
-
case
|
|
58
|
+
case "amplification":
|
|
59
|
+
case "gain":
|
|
60
60
|
m.class = common.mclasscnvgain
|
|
61
61
|
break
|
|
62
|
-
case
|
|
63
|
-
case
|
|
62
|
+
case "deletion":
|
|
63
|
+
case "loss":
|
|
64
64
|
m.class = common.mclasscnvloss
|
|
65
65
|
break
|
|
66
|
-
case
|
|
66
|
+
case "loh":
|
|
67
67
|
m.class = common.mclasscnvloh
|
|
68
68
|
break
|
|
69
69
|
default:
|
|
70
|
-
flag.cnv.badlines.push([i,
|
|
70
|
+
flag.cnv.badlines.push([i, "invalid cnv value: " + m.cnv, lst])
|
|
71
71
|
m.class = null
|
|
72
72
|
}
|
|
73
73
|
if (!m.class) {
|
package/src/bulk.del.js
CHANGED
|
@@ -4,12 +4,12 @@
|
|
|
4
4
|
//
|
|
5
5
|
////////////////////////////////////
|
|
6
6
|
|
|
7
|
-
import * as common from
|
|
8
|
-
import * as bulk from
|
|
7
|
+
import * as common from "./common.js"
|
|
8
|
+
import * as bulk from "./bulk.js"
|
|
9
9
|
|
|
10
10
|
export function parseheader(line, flag) {
|
|
11
|
-
const header = line.toLowerCase().split(
|
|
12
|
-
if (header.length <= 1) return
|
|
11
|
+
const header = line.toLowerCase().split("\t")
|
|
12
|
+
if (header.length <= 1) return "invalid header line for intragenic deletion"
|
|
13
13
|
const htry = (...lst) => {
|
|
14
14
|
for (const i of lst) {
|
|
15
15
|
const j = header.indexOf(i)
|
|
@@ -17,79 +17,79 @@ export function parseheader(line, flag) {
|
|
|
17
17
|
}
|
|
18
18
|
return -1
|
|
19
19
|
}
|
|
20
|
-
let i = htry(
|
|
21
|
-
if (i == -1) return
|
|
22
|
-
header[i] =
|
|
20
|
+
let i = htry("gene")
|
|
21
|
+
if (i == -1) return "gene missing from header"
|
|
22
|
+
header[i] = "gene"
|
|
23
23
|
i = htry(
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
24
|
+
"annovar_isoform",
|
|
25
|
+
"mrna_accession",
|
|
26
|
+
"mrna accession",
|
|
27
|
+
"refseq_mrna_id",
|
|
28
|
+
"annovar_sj_filter_isoform",
|
|
29
|
+
"refseq",
|
|
30
|
+
"isoform"
|
|
31
31
|
)
|
|
32
|
-
if (i == -1) return
|
|
33
|
-
header[i] =
|
|
34
|
-
i = htry(
|
|
32
|
+
if (i == -1) return "isoform missing from header"
|
|
33
|
+
header[i] = "isoform"
|
|
34
|
+
i = htry("rnaposition")
|
|
35
35
|
if (i != -1) {
|
|
36
|
-
header[i] =
|
|
37
|
-
i = htry(
|
|
38
|
-
if (i == -1) return
|
|
39
|
-
header[i] =
|
|
36
|
+
header[i] = "rnaposition"
|
|
37
|
+
i = htry("rnadellength")
|
|
38
|
+
if (i == -1) return "rnadellength is required when rnaPosition is used"
|
|
39
|
+
header[i] = "rnadellength"
|
|
40
40
|
}
|
|
41
|
-
i = htry(
|
|
41
|
+
i = htry("chromosome", "chr")
|
|
42
42
|
if (i != -1) {
|
|
43
|
-
header[i] =
|
|
44
|
-
i = htry(
|
|
45
|
-
if (i == -1) return
|
|
46
|
-
header[i] =
|
|
47
|
-
i = htry(
|
|
48
|
-
if (i == -1) return
|
|
49
|
-
header[i] =
|
|
43
|
+
header[i] = "chr"
|
|
44
|
+
i = htry("chr_start")
|
|
45
|
+
if (i == -1) return "chr_start is required when chr is used"
|
|
46
|
+
header[i] = "chrpos1"
|
|
47
|
+
i = htry("chr_stop")
|
|
48
|
+
if (i == -1) return "chr_stop is required when chr is used"
|
|
49
|
+
header[i] = "chrpos2"
|
|
50
50
|
}
|
|
51
51
|
|
|
52
|
-
i = htry(
|
|
53
|
-
if (i != -1) header[i] =
|
|
54
|
-
i = htry(
|
|
55
|
-
if (i != -1) header[i] =
|
|
56
|
-
i = htry(
|
|
57
|
-
if (i != -1) header[i] =
|
|
58
|
-
i = htry(
|
|
59
|
-
if (i != -1) header[i] =
|
|
60
|
-
i = htry(
|
|
61
|
-
if (i != -1) header[i] =
|
|
52
|
+
i = htry("sample", "sample_name", "tumor_sample_barcode")
|
|
53
|
+
if (i != -1) header[i] = "sample"
|
|
54
|
+
i = htry("patient", "donor", "target_case_id")
|
|
55
|
+
if (i != -1) header[i] = "patient"
|
|
56
|
+
i = htry("disease")
|
|
57
|
+
if (i != -1) header[i] = "disease"
|
|
58
|
+
i = htry("origin")
|
|
59
|
+
if (i != -1) header[i] = "origin"
|
|
60
|
+
i = htry("sampletype", "sample type", "sample_type")
|
|
61
|
+
if (i != -1) header[i] = "sampletype"
|
|
62
62
|
flag.del.header = header
|
|
63
63
|
flag.del.loaded = true
|
|
64
64
|
return false
|
|
65
65
|
}
|
|
66
66
|
|
|
67
67
|
export function parseline(i, line, flag) {
|
|
68
|
-
if (line ==
|
|
69
|
-
const lst = line.split(
|
|
68
|
+
if (line == "" || line[0] == "#") return
|
|
69
|
+
const lst = line.split("\t")
|
|
70
70
|
const m = {}
|
|
71
71
|
for (let j = 0; j < flag.del.header.length; j++) {
|
|
72
72
|
if (lst[j] == undefined) break
|
|
73
73
|
m[flag.del.header[j]] = lst[j]
|
|
74
74
|
}
|
|
75
75
|
if (!m.gene) {
|
|
76
|
-
flag.del.badlines.push([i,
|
|
76
|
+
flag.del.badlines.push([i, "missing gene", lst])
|
|
77
77
|
return
|
|
78
78
|
}
|
|
79
79
|
if (m.rnaposition) {
|
|
80
80
|
let v = Number.parseInt(m.rnaposition)
|
|
81
81
|
if (Number.isNaN(v) || v < 0) {
|
|
82
|
-
flag.del.badlines.push([i,
|
|
82
|
+
flag.del.badlines.push([i, "invalid rnaPosition value", lst])
|
|
83
83
|
return
|
|
84
84
|
}
|
|
85
85
|
m.rnaposition = v
|
|
86
86
|
if (!m.rnadellength) {
|
|
87
|
-
flag.del.badlines.push([i,
|
|
87
|
+
flag.del.badlines.push([i, "missing rnaDellength value", lst])
|
|
88
88
|
return
|
|
89
89
|
}
|
|
90
90
|
v = Number.parseInt(m.rnadellength)
|
|
91
91
|
if (Number.isNaN(v) || v < 0) {
|
|
92
|
-
flag.del.badlines.push([i,
|
|
92
|
+
flag.del.badlines.push([i, "invalid rnaDellength value", lst])
|
|
93
93
|
return
|
|
94
94
|
}
|
|
95
95
|
m.rnadellength = v
|
|
@@ -97,13 +97,13 @@ export function parseline(i, line, flag) {
|
|
|
97
97
|
if (m.chr) {
|
|
98
98
|
let v = Number.parseInt(m.chrpos1)
|
|
99
99
|
if (Number.isNaN(v) || v < 0) {
|
|
100
|
-
flag.del.badlines.push([i,
|
|
100
|
+
flag.del.badlines.push([i, "invalid chr_start value", lst])
|
|
101
101
|
return
|
|
102
102
|
}
|
|
103
103
|
m.chrpos1 = v
|
|
104
104
|
v = Number.parseInt(m.chrpos2)
|
|
105
105
|
if (Number.isNaN(v) || v < 0) {
|
|
106
|
-
flag.del.badlines.push([i,
|
|
106
|
+
flag.del.badlines.push([i, "invalid chr_stop value", lst])
|
|
107
107
|
return
|
|
108
108
|
}
|
|
109
109
|
m.chrpos2 = v
|
|
@@ -114,7 +114,7 @@ export function parseline(i, line, flag) {
|
|
|
114
114
|
}
|
|
115
115
|
m.dt = common.dtdel
|
|
116
116
|
m.class = common.mclassdel
|
|
117
|
-
m.mname =
|
|
117
|
+
m.mname = "DEL"
|
|
118
118
|
flag.good++
|
|
119
119
|
var n = flag.geneToUpper ? m.gene.toUpperCase() : m.gene
|
|
120
120
|
if (!(n in flag.data)) {
|
package/src/bulk.itd.js
CHANGED
|
@@ -4,12 +4,12 @@
|
|
|
4
4
|
//
|
|
5
5
|
////////////////////////////////////
|
|
6
6
|
|
|
7
|
-
import * as common from
|
|
8
|
-
import * as bulk from
|
|
7
|
+
import * as common from "./common.js"
|
|
8
|
+
import * as bulk from "./bulk.js"
|
|
9
9
|
|
|
10
10
|
export function parseheader(line, flag) {
|
|
11
|
-
const header = line.toLowerCase().split(
|
|
12
|
-
if (header.length <= 1) return
|
|
11
|
+
const header = line.toLowerCase().split("\t")
|
|
12
|
+
if (header.length <= 1) return "invalid header line for ITD"
|
|
13
13
|
const htry = (...lst) => {
|
|
14
14
|
for (const i of lst) {
|
|
15
15
|
const j = header.indexOf(i)
|
|
@@ -17,79 +17,79 @@ export function parseheader(line, flag) {
|
|
|
17
17
|
}
|
|
18
18
|
return -1
|
|
19
19
|
}
|
|
20
|
-
let i = htry(
|
|
21
|
-
if (i == -1) return
|
|
22
|
-
header[i] =
|
|
20
|
+
let i = htry("gene")
|
|
21
|
+
if (i == -1) return "gene missing from header"
|
|
22
|
+
header[i] = "gene"
|
|
23
23
|
i = htry(
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
24
|
+
"annovar_isoform",
|
|
25
|
+
"mrna_accession",
|
|
26
|
+
"mrna accession",
|
|
27
|
+
"refseq_mrna_id",
|
|
28
|
+
"annovar_sj_filter_isoform",
|
|
29
|
+
"refseq",
|
|
30
|
+
"isoform"
|
|
31
31
|
)
|
|
32
|
-
if (i == -1) return
|
|
33
|
-
header[i] =
|
|
34
|
-
i = htry(
|
|
32
|
+
if (i == -1) return "isoform missing from header"
|
|
33
|
+
header[i] = "isoform"
|
|
34
|
+
i = htry("rnaposition")
|
|
35
35
|
if (i != -1) {
|
|
36
|
-
header[i] =
|
|
37
|
-
i = htry(
|
|
38
|
-
if (i == -1) return
|
|
39
|
-
header[i] =
|
|
36
|
+
header[i] = "rnaposition"
|
|
37
|
+
i = htry("rnaduplength")
|
|
38
|
+
if (i == -1) return "rnaduplength is required when rnaposition is present"
|
|
39
|
+
header[i] = "rnaduplength"
|
|
40
40
|
}
|
|
41
|
-
i = htry(
|
|
41
|
+
i = htry("chromosome", "chr")
|
|
42
42
|
if (i != -1) {
|
|
43
|
-
header[i] =
|
|
44
|
-
i = htry(
|
|
45
|
-
if (i == -1) return
|
|
46
|
-
header[i] =
|
|
47
|
-
i = htry(
|
|
48
|
-
if (i == -1) return
|
|
49
|
-
header[i] =
|
|
43
|
+
header[i] = "chr"
|
|
44
|
+
i = htry("chr_start")
|
|
45
|
+
if (i == -1) return "chr_start is required when chr is present"
|
|
46
|
+
header[i] = "chrpos1"
|
|
47
|
+
i = htry("chr_stop")
|
|
48
|
+
if (i == -1) return "chr_stop is required when chr is present"
|
|
49
|
+
header[i] = "chrpos2"
|
|
50
50
|
}
|
|
51
51
|
|
|
52
|
-
i = htry(
|
|
53
|
-
if (i != -1) header[i] =
|
|
54
|
-
i = htry(
|
|
55
|
-
if (i != -1) header[i] =
|
|
56
|
-
i = htry(
|
|
57
|
-
if (i != -1) header[i] =
|
|
58
|
-
i = htry(
|
|
59
|
-
if (i != -1) header[i] =
|
|
60
|
-
i = htry(
|
|
61
|
-
if (i != -1) header[i] =
|
|
52
|
+
i = htry("sample", "sample_name", "tumor_sample_barcode")
|
|
53
|
+
if (i != -1) header[i] = "sample"
|
|
54
|
+
i = htry("patient", "donor", "target_case_id")
|
|
55
|
+
if (i != -1) header[i] = "patient"
|
|
56
|
+
i = htry("disease")
|
|
57
|
+
if (i != -1) header[i] = "disease"
|
|
58
|
+
i = htry("origin")
|
|
59
|
+
if (i != -1) header[i] = "origin"
|
|
60
|
+
i = htry("sampletype", "sample type", "sample_type")
|
|
61
|
+
if (i != -1) header[i] = "sampletype"
|
|
62
62
|
flag.itd.header = header
|
|
63
63
|
flag.itd.loaded = true
|
|
64
64
|
return false
|
|
65
65
|
}
|
|
66
66
|
|
|
67
67
|
export function parseline(i, line, flag) {
|
|
68
|
-
if (line ==
|
|
69
|
-
const lst = line.split(
|
|
68
|
+
if (line == "" || line[0] == "#") return
|
|
69
|
+
const lst = line.split("\t")
|
|
70
70
|
const m = {}
|
|
71
71
|
for (let j = 0; j < flag.itd.header.length; j++) {
|
|
72
72
|
if (lst[j] == undefined) break
|
|
73
73
|
m[flag.itd.header[j]] = lst[j]
|
|
74
74
|
}
|
|
75
75
|
if (!m.gene) {
|
|
76
|
-
flag.itd.badlines.push([i,
|
|
76
|
+
flag.itd.badlines.push([i, "missing gene", lst])
|
|
77
77
|
return
|
|
78
78
|
}
|
|
79
79
|
if (m.rnaposition) {
|
|
80
80
|
let v = Number.parseInt(m.rnaposition)
|
|
81
81
|
if (Number.isNaN(v) || v < 0) {
|
|
82
|
-
flag.itd.badlines.push([i,
|
|
82
|
+
flag.itd.badlines.push([i, "invalid rnaPosition value", lst])
|
|
83
83
|
return
|
|
84
84
|
}
|
|
85
85
|
m.rnaposition = v
|
|
86
86
|
if (!m.rnaduplength) {
|
|
87
|
-
flag.itd.badlines.push([i,
|
|
87
|
+
flag.itd.badlines.push([i, "missing rnaDuplength value", lst])
|
|
88
88
|
return
|
|
89
89
|
}
|
|
90
90
|
v = Number.parseInt(m.rnaduplength)
|
|
91
91
|
if (Number.isNaN(v) || v < 0) {
|
|
92
|
-
flag.itd.badlines.push([i,
|
|
92
|
+
flag.itd.badlines.push([i, "invalid rnaDuplength value", lst])
|
|
93
93
|
return
|
|
94
94
|
}
|
|
95
95
|
m.rnaduplength = v
|
|
@@ -97,13 +97,13 @@ export function parseline(i, line, flag) {
|
|
|
97
97
|
if (m.chr) {
|
|
98
98
|
let v = Number.parseInt(m.chrpos1)
|
|
99
99
|
if (Number.isNaN(v) || v < 0) {
|
|
100
|
-
flag.itd.badlines.push([i,
|
|
100
|
+
flag.itd.badlines.push([i, "invalid chr_start value", lst])
|
|
101
101
|
return
|
|
102
102
|
}
|
|
103
103
|
m.chrpos1 = v
|
|
104
104
|
v = Number.parseInt(m.chrpos2)
|
|
105
105
|
if (Number.isNaN(v) || v < 0) {
|
|
106
|
-
flag.itd.badlines.push([i,
|
|
106
|
+
flag.itd.badlines.push([i, "invalid chr_stop value", lst])
|
|
107
107
|
return
|
|
108
108
|
}
|
|
109
109
|
m.chrpos2 = v
|
|
@@ -113,7 +113,7 @@ export function parseline(i, line, flag) {
|
|
|
113
113
|
}
|
|
114
114
|
m.dt = common.dtitd
|
|
115
115
|
m.class = common.mclassitd
|
|
116
|
-
m.mname =
|
|
116
|
+
m.mname = "ITD"
|
|
117
117
|
flag.good++
|
|
118
118
|
var n = flag.geneToUpper ? m.gene.toUpperCase() : m.gene
|
|
119
119
|
if (!(n in flag.data)) {
|
package/src/bulk.js
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
//
|
|
5
5
|
////////////////////////////////////
|
|
6
6
|
|
|
7
|
-
import * as common from
|
|
7
|
+
import * as common from "./common.js"
|
|
8
8
|
|
|
9
9
|
export default {}
|
|
10
10
|
|
|
@@ -34,45 +34,45 @@ export function init_bulk_flag(genome) {
|
|
|
34
34
|
// jinghui: based on missense/silent ratio of entire dataset to decide whether to include silent when importing...
|
|
35
35
|
// hard-coded class codes
|
|
36
36
|
missense: 0,
|
|
37
|
-
silent: 0
|
|
37
|
+
silent: 0,
|
|
38
38
|
},
|
|
39
39
|
svjson: {
|
|
40
40
|
loaded: false,
|
|
41
41
|
header: null,
|
|
42
|
-
badlines: []
|
|
42
|
+
badlines: [],
|
|
43
43
|
},
|
|
44
44
|
fusion: {
|
|
45
45
|
loaded: false,
|
|
46
46
|
header: null,
|
|
47
47
|
badlines: [],
|
|
48
|
-
original: []
|
|
48
|
+
original: [],
|
|
49
49
|
},
|
|
50
50
|
sv: {
|
|
51
51
|
loaded: false,
|
|
52
52
|
header: null,
|
|
53
53
|
badlines: [],
|
|
54
|
-
original: []
|
|
54
|
+
original: [],
|
|
55
55
|
},
|
|
56
56
|
cnv: {
|
|
57
57
|
loaded: false,
|
|
58
58
|
header: null,
|
|
59
|
-
badlines: []
|
|
59
|
+
badlines: [],
|
|
60
60
|
},
|
|
61
61
|
itd: {
|
|
62
62
|
loaded: false,
|
|
63
63
|
header: null,
|
|
64
|
-
badlines: []
|
|
64
|
+
badlines: [],
|
|
65
65
|
},
|
|
66
66
|
del: {
|
|
67
67
|
loaded: false,
|
|
68
68
|
header: null,
|
|
69
|
-
badlines: []
|
|
69
|
+
badlines: [],
|
|
70
70
|
},
|
|
71
71
|
truncation: {
|
|
72
72
|
loaded: false,
|
|
73
73
|
header: null,
|
|
74
|
-
badlines: []
|
|
75
|
-
}
|
|
74
|
+
badlines: [],
|
|
75
|
+
},
|
|
76
76
|
}
|
|
77
77
|
}
|
|
78
78
|
|
|
@@ -81,25 +81,25 @@ export function parsesample(m, flag, i, lst, badline) {
|
|
|
81
81
|
if (m.sampletype) {
|
|
82
82
|
const s = m.sampletype.toLowerCase()
|
|
83
83
|
switch (s) {
|
|
84
|
-
case
|
|
84
|
+
case "relapse":
|
|
85
85
|
variantorigin = common.moriginrelapse
|
|
86
86
|
break
|
|
87
|
-
case
|
|
87
|
+
case "germline":
|
|
88
88
|
variantorigin = common.morigingermline
|
|
89
89
|
break
|
|
90
|
-
case
|
|
91
|
-
case
|
|
90
|
+
case "somatic":
|
|
91
|
+
case "diagnosis":
|
|
92
92
|
break
|
|
93
93
|
}
|
|
94
94
|
if (m.sample) {
|
|
95
95
|
if (m.patient) {
|
|
96
96
|
// good
|
|
97
97
|
} else {
|
|
98
|
-
m.patient = m.sample +
|
|
98
|
+
m.patient = m.sample + " " + m.sampletype
|
|
99
99
|
}
|
|
100
100
|
} else {
|
|
101
101
|
if (m.patient) {
|
|
102
|
-
m.sample = m.patient +
|
|
102
|
+
m.sample = m.patient + " " + m.sampletype
|
|
103
103
|
} else {
|
|
104
104
|
// neither sample or patient, will quit later
|
|
105
105
|
}
|
|
@@ -123,30 +123,30 @@ export function parsesample(m, flag, i, lst, badline) {
|
|
|
123
123
|
// override existing variantorigin
|
|
124
124
|
const s = m.origin.toLowerCase()
|
|
125
125
|
switch (s) {
|
|
126
|
-
case
|
|
127
|
-
case
|
|
126
|
+
case "r":
|
|
127
|
+
case "relapse":
|
|
128
128
|
variantorigin = common.moriginrelapse
|
|
129
129
|
m.isrim2 = true
|
|
130
130
|
break
|
|
131
|
-
case
|
|
132
|
-
case
|
|
131
|
+
case "g":
|
|
132
|
+
case "germline":
|
|
133
133
|
variantorigin = common.morigingermline
|
|
134
134
|
m.isrim1 = true
|
|
135
135
|
break
|
|
136
|
-
case
|
|
137
|
-
case
|
|
136
|
+
case "gp":
|
|
137
|
+
case "germline pathogenic":
|
|
138
138
|
variantorigin = common.morigingermlinepathogenic
|
|
139
139
|
m.isrim1 = true
|
|
140
140
|
break
|
|
141
|
-
case
|
|
142
|
-
case
|
|
143
|
-
case
|
|
141
|
+
case "gnp":
|
|
142
|
+
case "germline nonpathogenic":
|
|
143
|
+
case "germline non-pathogenic":
|
|
144
144
|
variantorigin = common.morigingermlinenonpathogenic
|
|
145
145
|
m.isrim1 = true
|
|
146
146
|
break
|
|
147
|
-
case
|
|
148
|
-
case
|
|
149
|
-
case
|
|
147
|
+
case "s":
|
|
148
|
+
case "somatic":
|
|
149
|
+
case "diagnosis":
|
|
150
150
|
variantorigin = common.moriginsomatic
|
|
151
151
|
break
|
|
152
152
|
}
|
|
@@ -158,7 +158,7 @@ export function parsesample(m, flag, i, lst, badline) {
|
|
|
158
158
|
return
|
|
159
159
|
}
|
|
160
160
|
|
|
161
|
-
const nopatientname =
|
|
161
|
+
const nopatientname = "no patient/individual name"
|
|
162
162
|
let p
|
|
163
163
|
if (m.patient) {
|
|
164
164
|
if (!flag.patient2st[m.patient]) {
|
|
@@ -182,9 +182,9 @@ export function parsesample(m, flag, i, lst, badline) {
|
|
|
182
182
|
m.sample +
|
|
183
183
|
'": ' +
|
|
184
184
|
m.disease +
|
|
185
|
-
|
|
185
|
+
", " +
|
|
186
186
|
flag.sample2disease[m.sample],
|
|
187
|
-
lst
|
|
187
|
+
lst,
|
|
188
188
|
])
|
|
189
189
|
return true
|
|
190
190
|
}
|