@platforma-open/milaboratories.mixcr-clonotyping-2.workflow 3.2.0 → 3.3.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.
- package/.turbo/turbo-build.log +1 -1
- package/CHANGELOG.md +12 -0
- package/dist/tengo/lib/calculate-export-specs.lib.tengo +21 -0
- package/dist/tengo/lib/qc-report-columns.lib.tengo +69 -66
- package/dist/tengo/tpl/aggregate-by-clonotype-key.plj.gz +0 -0
- package/dist/tengo/tpl/calculate-preset-info.plj.gz +0 -0
- package/dist/tengo/tpl/export-report.plj.gz +0 -0
- package/dist/tengo/tpl/list-presets.plj.gz +0 -0
- package/dist/tengo/tpl/main.plj.gz +0 -0
- package/dist/tengo/tpl/mixcr-analyze.plj.gz +0 -0
- package/dist/tengo/tpl/mixcr-export.plj.gz +0 -0
- package/dist/tengo/tpl/prerun.plj.gz +0 -0
- package/dist/tengo/tpl/process-single-cell.plj.gz +0 -0
- package/dist/tengo/tpl/process.plj.gz +0 -0
- package/dist/tengo/tpl/test.columns-calculate.plj.gz +0 -0
- package/dist/tengo/tpl/test.columns.test.plj.gz +0 -0
- package/package.json +1 -1
- package/src/aggregate-by-clonotype-key.tpl.tengo +1 -1
- package/src/calculate-export-specs.lib.tengo +21 -0
- package/src/export-report.tpl.tengo +6 -3
- package/src/mixcr-export.tpl.tengo +17 -1
- package/src/process-single-cell.tpl.tengo +1 -1
- package/src/process.tpl.tengo +6 -5
- package/src/qc-report-columns.lib.tengo +69 -66
package/.turbo/turbo-build.log
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
WARN Issue while reading "/home/runner/work/mixcr-clonotyping/mixcr-clonotyping/.npmrc". Failed to replace env in config: ${NPMJS_TOKEN}
|
|
2
2
|
|
|
3
|
-
> @platforma-open/milaboratories.mixcr-clonotyping-2.workflow@3.
|
|
3
|
+
> @platforma-open/milaboratories.mixcr-clonotyping-2.workflow@3.3.0 build /home/runner/work/mixcr-clonotyping/mixcr-clonotyping/workflow
|
|
4
4
|
> rm -rf dist && pl-tengo check && pl-tengo build
|
|
5
5
|
|
|
6
6
|
info: Skipping unknown file type: test/columns.test.ts
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
# @platforma-open/milaboratories.mixcr-clonotyping.workflow
|
|
2
2
|
|
|
3
|
+
## 3.3.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- 8cee126: min quality columns added
|
|
8
|
+
|
|
9
|
+
## 3.2.1
|
|
10
|
+
|
|
11
|
+
### Patch Changes
|
|
12
|
+
|
|
13
|
+
- ebad6c6: Fixes export error on SC presets without UMI
|
|
14
|
+
|
|
3
15
|
## 3.2.0
|
|
4
16
|
|
|
5
17
|
### Minor Changes
|
|
@@ -467,6 +467,27 @@ calculateExportSpecs := func(presetSpecForBack, sampleIdAxisSpec, blockId) {
|
|
|
467
467
|
}
|
|
468
468
|
} ]
|
|
469
469
|
exportArgs += [ [ "-" + alphabetShortMixcr + "Feature" + imputedU, featureInFrameU ] ]
|
|
470
|
+
if !isImputed && !isAminoAcid {
|
|
471
|
+
columnsSpecPerClonotypeNoAggregates += [ {
|
|
472
|
+
column: "minQual" + featureU,
|
|
473
|
+
id: "min-qual-" + featureL,
|
|
474
|
+
naRegex: "region_not_covered",
|
|
475
|
+
spec: {
|
|
476
|
+
name: "pl7.app/vdj/sequenceQuality",
|
|
477
|
+
valueType: "Int",
|
|
478
|
+
domain: {
|
|
479
|
+
"pl7.app/vdj/quality": "minQuality",
|
|
480
|
+
"pl7.app/vdj/feature": featureU
|
|
481
|
+
},
|
|
482
|
+
annotations: a(orderP - 10, false, {
|
|
483
|
+
"pl7.app/min": "0",
|
|
484
|
+
"pl7.app/max": "60",
|
|
485
|
+
"pl7.app/label": "Min quality " + featureU
|
|
486
|
+
})
|
|
487
|
+
}
|
|
488
|
+
} ]
|
|
489
|
+
exportArgs += [ [ "-minFeatureQuality", featureU ] ]
|
|
490
|
+
}
|
|
470
491
|
orderP -= 100
|
|
471
492
|
|
|
472
493
|
|
|
@@ -5,7 +5,7 @@ ll := import("@platforma-sdk/workflow-tengo:ll")
|
|
|
5
5
|
pConstants := import("@platforma-sdk/workflow-tengo:pframes.constants")
|
|
6
6
|
|
|
7
7
|
|
|
8
|
-
getQcReportColumns := func(hasUmi, isSingleCell, sampleIdAxisSpec, chains) {
|
|
8
|
+
getQcReportColumns := func(hasUmi, isSingleCell, sampleIdAxisSpec, chains, cellTags) {
|
|
9
9
|
|
|
10
10
|
baseColumns := [
|
|
11
11
|
{
|
|
@@ -489,7 +489,7 @@ getQcReportColumns := func(hasUmi, isSingleCell, sampleIdAxisSpec, chains) {
|
|
|
489
489
|
column: "assemble.preCloneAssembler.unassignedAlignments",
|
|
490
490
|
id: "assemble-pre-clone-assembler-unassigned-alignments",
|
|
491
491
|
allowNA: true,
|
|
492
|
-
naRegex: "",
|
|
492
|
+
naRegex: "^[a-zA-Z_]*$",
|
|
493
493
|
spec: {
|
|
494
494
|
name: "mixcr.com/reports/assemble/preCloneAssembler/unassignedAlignments",
|
|
495
495
|
valueType: "Long",
|
|
@@ -505,7 +505,7 @@ getQcReportColumns := func(hasUmi, isSingleCell, sampleIdAxisSpec, chains) {
|
|
|
505
505
|
column: "assemble.preCloneAssembler.unassignedAlignmentsPercents",
|
|
506
506
|
id: "assemble-pre-clone-assembler-unassigned-alignments-percents",
|
|
507
507
|
allowNA: true,
|
|
508
|
-
naRegex: "",
|
|
508
|
+
naRegex: "^[a-zA-Z_]*$",
|
|
509
509
|
spec: {
|
|
510
510
|
name: "mixcr.com/reports/assemble/preCloneAssembler/unassignedAlignmentsPercents",
|
|
511
511
|
valueType: "Double",
|
|
@@ -1180,73 +1180,76 @@ getQcReportColumns := func(hasUmi, isSingleCell, sampleIdAxisSpec, chains) {
|
|
|
1180
1180
|
"pl7.app/label": "Unassigned Clonotypes (%)"
|
|
1181
1181
|
}
|
|
1182
1182
|
}
|
|
1183
|
-
}
|
|
1184
|
-
|
|
1185
|
-
|
|
1186
|
-
|
|
1187
|
-
|
|
1188
|
-
|
|
1189
|
-
|
|
1190
|
-
|
|
1191
|
-
|
|
1192
|
-
|
|
1193
|
-
|
|
1194
|
-
|
|
1195
|
-
|
|
1196
|
-
|
|
1183
|
+
}]
|
|
1184
|
+
|
|
1185
|
+
for cellTag in cellTags {
|
|
1186
|
+
singleCellColumns += [{
|
|
1187
|
+
column: "refineTags." + cellTag + ".outputCount",
|
|
1188
|
+
id: "refine-tags-" + cellTag + "-output-count",
|
|
1189
|
+
allowNA: true,
|
|
1190
|
+
naRegex: "NaN",
|
|
1191
|
+
spec: {
|
|
1192
|
+
name: "mixcr.com/reports/refineTags/CELL/outputCount",
|
|
1193
|
+
valueType: "Long",
|
|
1194
|
+
annotations: {
|
|
1195
|
+
"pl7.app/min": "0",
|
|
1196
|
+
"pl7.app/table/orderPriority": "85800",
|
|
1197
|
+
"pl7.app/table/visibility": "optional",
|
|
1198
|
+
"pl7.app/label": "Refine Tags " + cellTag + " - Output Count"
|
|
1199
|
+
}
|
|
1197
1200
|
}
|
|
1198
|
-
}
|
|
1199
|
-
|
|
1200
|
-
|
|
1201
|
-
|
|
1202
|
-
|
|
1203
|
-
|
|
1204
|
-
|
|
1205
|
-
|
|
1206
|
-
|
|
1207
|
-
|
|
1208
|
-
|
|
1209
|
-
|
|
1210
|
-
|
|
1211
|
-
|
|
1212
|
-
|
|
1213
|
-
|
|
1201
|
+
},
|
|
1202
|
+
{
|
|
1203
|
+
column: "refineTags." + cellTag + ".outputCountPercents",
|
|
1204
|
+
id: "refine-tags-" + cellTag + "-output-count-percents",
|
|
1205
|
+
allowNA: true,
|
|
1206
|
+
naRegex: "NaN",
|
|
1207
|
+
spec: {
|
|
1208
|
+
name: "mixcr.com/reports/refineTags/CELL/outputCountPercents",
|
|
1209
|
+
valueType: "Double",
|
|
1210
|
+
annotations: {
|
|
1211
|
+
"pl7.app/min": "0",
|
|
1212
|
+
"pl7.app/max": "100",
|
|
1213
|
+
"pl7.app/table/orderPriority": "85900",
|
|
1214
|
+
"pl7.app/table/visibility": "default",
|
|
1215
|
+
"pl7.app/label": "Refine Tags " + cellTag + " - Output Count (%)"
|
|
1216
|
+
}
|
|
1214
1217
|
}
|
|
1215
|
-
}
|
|
1216
|
-
|
|
1217
|
-
|
|
1218
|
-
|
|
1219
|
-
|
|
1220
|
-
|
|
1221
|
-
|
|
1222
|
-
|
|
1223
|
-
|
|
1224
|
-
|
|
1225
|
-
|
|
1226
|
-
|
|
1227
|
-
|
|
1228
|
-
|
|
1229
|
-
|
|
1218
|
+
},
|
|
1219
|
+
{
|
|
1220
|
+
column: "refineTags." + cellTag + ".outputDiversity",
|
|
1221
|
+
id: "refine-tags-" + cellTag + "-output-diversity",
|
|
1222
|
+
allowNA: true,
|
|
1223
|
+
naRegex: "NaN",
|
|
1224
|
+
spec: {
|
|
1225
|
+
name: "mixcr.com/reports/refineTags/CELL/outputDiversity",
|
|
1226
|
+
valueType: "Long",
|
|
1227
|
+
annotations: {
|
|
1228
|
+
"pl7.app/min": "0",
|
|
1229
|
+
"pl7.app/table/orderPriority": "86000",
|
|
1230
|
+
"pl7.app/table/visibility": "optional",
|
|
1231
|
+
"pl7.app/label": "Refine Tags " + cellTag + " - Output Diversity"
|
|
1232
|
+
}
|
|
1230
1233
|
}
|
|
1231
|
-
}
|
|
1232
|
-
|
|
1233
|
-
|
|
1234
|
-
|
|
1235
|
-
|
|
1236
|
-
|
|
1237
|
-
|
|
1238
|
-
|
|
1239
|
-
|
|
1240
|
-
|
|
1241
|
-
|
|
1242
|
-
|
|
1243
|
-
|
|
1244
|
-
|
|
1245
|
-
|
|
1246
|
-
|
|
1234
|
+
},
|
|
1235
|
+
{
|
|
1236
|
+
column: "refineTags." + cellTag + ".outputDiversityPercents",
|
|
1237
|
+
id: "refine-tags-" + cellTag + "-output-diversity-percents",
|
|
1238
|
+
allowNA: true,
|
|
1239
|
+
naRegex: "NaN",
|
|
1240
|
+
spec: {
|
|
1241
|
+
name: "mixcr.com/reports/refineTags/CELL/outputDiversityPercents",
|
|
1242
|
+
valueType: "Double",
|
|
1243
|
+
annotations: {
|
|
1244
|
+
"pl7.app/min": "0",
|
|
1245
|
+
"pl7.app/max": "100",
|
|
1246
|
+
"pl7.app/table/orderPriority": "86100",
|
|
1247
|
+
"pl7.app/table/visibility": "default",
|
|
1248
|
+
"pl7.app/label": "Refine Tags " + cellTag + " - Output Diversity (%)"
|
|
1249
|
+
}
|
|
1247
1250
|
}
|
|
1248
|
-
}
|
|
1249
|
-
}
|
|
1251
|
+
}]
|
|
1252
|
+
}
|
|
1250
1253
|
|
|
1251
1254
|
|
|
1252
1255
|
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/package.json
CHANGED
|
@@ -41,7 +41,7 @@ self.body(func(inputs) {
|
|
|
41
41
|
|
|
42
42
|
baseSchemaForRead := schemaPerSample + [ { column: "clonotypeKey", type: "String" } ]
|
|
43
43
|
|
|
44
|
-
ll.print("__THE_LOG__ AGGREGATE BY CLONOTYPE KEY: " + json.encode(maps.getKeys(inputMap)))
|
|
44
|
+
// ll.print("__THE_LOG__ AGGREGATE BY CLONOTYPE KEY: " + json.encode(maps.getKeys(inputMap)))
|
|
45
45
|
|
|
46
46
|
for sKey in maps.getKeys(inputMap) {
|
|
47
47
|
inputFile := inputMap[sKey]
|
|
@@ -467,6 +467,27 @@ calculateExportSpecs := func(presetSpecForBack, sampleIdAxisSpec, blockId) {
|
|
|
467
467
|
}
|
|
468
468
|
} ]
|
|
469
469
|
exportArgs += [ [ "-" + alphabetShortMixcr + "Feature" + imputedU, featureInFrameU ] ]
|
|
470
|
+
if !isImputed && !isAminoAcid {
|
|
471
|
+
columnsSpecPerClonotypeNoAggregates += [ {
|
|
472
|
+
column: "minQual" + featureU,
|
|
473
|
+
id: "min-qual-" + featureL,
|
|
474
|
+
naRegex: "region_not_covered",
|
|
475
|
+
spec: {
|
|
476
|
+
name: "pl7.app/vdj/sequenceQuality",
|
|
477
|
+
valueType: "Int",
|
|
478
|
+
domain: {
|
|
479
|
+
"pl7.app/vdj/quality": "minQuality",
|
|
480
|
+
"pl7.app/vdj/feature": featureU
|
|
481
|
+
},
|
|
482
|
+
annotations: a(orderP - 10, false, {
|
|
483
|
+
"pl7.app/min": "0",
|
|
484
|
+
"pl7.app/max": "60",
|
|
485
|
+
"pl7.app/label": "Min quality " + featureU
|
|
486
|
+
})
|
|
487
|
+
}
|
|
488
|
+
} ]
|
|
489
|
+
exportArgs += [ [ "-minFeatureQuality", featureU ] ]
|
|
490
|
+
}
|
|
470
491
|
orderP -= 100
|
|
471
492
|
|
|
472
493
|
// Adding sequence annotation columns for assembling feature
|
|
@@ -24,11 +24,14 @@ ptablerSw := assets.importSoftware("@platforma-open/milaboratories.software-ptab
|
|
|
24
24
|
|
|
25
25
|
self.body(func(inputs) {
|
|
26
26
|
clnsData := inputs.clnsData
|
|
27
|
-
|
|
28
|
-
hasUmi := inputs.hasUmi
|
|
27
|
+
presetSpecForBack := inputs.presetSpecForBack
|
|
29
28
|
sampleIdAxisSpec := inputs.sampleIdAxisSpec
|
|
30
29
|
chains := inputs.chains
|
|
31
30
|
|
|
31
|
+
isSingleCell := len(presetSpecForBack.cellTags) > 0
|
|
32
|
+
hasUmi := !is_undefined(presetSpecForBack.umiTags) && len(presetSpecForBack.umiTags) > 0
|
|
33
|
+
cellTags := presetSpecForBack.cellTags
|
|
34
|
+
|
|
32
35
|
chainInfos := {
|
|
33
36
|
"IGHeavy": { mixcrFilter: "IGH", name: "IG Heavy", shortName: "Heavy" },
|
|
34
37
|
"IGLight": { mixcrFilter: "IGK,IGL", name: "IG Light", shortName: "Light" },
|
|
@@ -98,7 +101,7 @@ self.body(func(inputs) {
|
|
|
98
101
|
|
|
99
102
|
tsvFile := wfResult.getFile("qc-report-processed.tsv")
|
|
100
103
|
|
|
101
|
-
qcReportColumns := qcReportColumns(hasUmi, isSingleCell, sampleIdAxisSpec, chainsForMixcr)
|
|
104
|
+
qcReportColumns := qcReportColumns(hasUmi, isSingleCell, sampleIdAxisSpec, chainsForMixcr, cellTags)
|
|
102
105
|
reportColumnsSpec := qcReportColumns.reportColumnsSpec
|
|
103
106
|
|
|
104
107
|
qcReportTable := xsv.importFile(
|
|
@@ -35,6 +35,7 @@ self.body(func(inputs) {
|
|
|
35
35
|
}
|
|
36
36
|
|
|
37
37
|
mainAbundanceColumnUnnormalizedArgs := params.mainAbundanceColumnUnnormalizedArgs
|
|
38
|
+
mainAbundanceColumnIsReadCount := params.mainAbundanceColumnIsReadCount == true
|
|
38
39
|
mainIsProductiveArgs := params.mainIsProductiveArgs
|
|
39
40
|
|
|
40
41
|
hashKeyDerivationExpressionPt := func(sourceColumns) {
|
|
@@ -145,7 +146,22 @@ self.body(func(inputs) {
|
|
|
145
146
|
mem("4GiB").
|
|
146
147
|
cpu(2)
|
|
147
148
|
|
|
148
|
-
|
|
149
|
+
frameLoadOps := {
|
|
150
|
+
xsvType: "tsv",
|
|
151
|
+
inferSchema: false
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
if mainAbundanceColumnIsReadCount {
|
|
155
|
+
frameLoadOps.schema = [ { column: "readCount", type: "Double" } ]
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
dfSingleCell := wfSingleCell.frame(unprocessedTsvForSingleCell, frameLoadOps)
|
|
159
|
+
|
|
160
|
+
if mainAbundanceColumnIsReadCount {
|
|
161
|
+
dfSingleCell.addColumns(
|
|
162
|
+
pt.col("readCount").round().cast("Long").alias("readCount")
|
|
163
|
+
)
|
|
164
|
+
}
|
|
149
165
|
|
|
150
166
|
dfSingleCell.addColumns(
|
|
151
167
|
hashKeyDerivationExpressionPt(clonotypeKeyColumns).alias("clonotypeKey"),
|
|
@@ -22,7 +22,7 @@ self.defineOutputs("abundanceTsv", "clonotypeTsv",
|
|
|
22
22
|
ptablerSw := assets.importSoftware("@platforma-open/milaboratories.software-ptabler:main")
|
|
23
23
|
|
|
24
24
|
self.body(func(inputs) {
|
|
25
|
-
ll.print("__THE_LOG__ PROCESS SINGLE CELL")
|
|
25
|
+
// ll.print("__THE_LOG__ PROCESS SINGLE CELL")
|
|
26
26
|
|
|
27
27
|
byCellTagA := inputs[pConstants.VALUE_FIELD_NAME]
|
|
28
28
|
inputDataMeta := byCellTagA.getDataAsJson()
|
package/src/process.tpl.tengo
CHANGED
|
@@ -391,7 +391,7 @@ self.body(func(inputs) {
|
|
|
391
391
|
stepCache: 30 * times.minute,
|
|
392
392
|
|
|
393
393
|
extra: {
|
|
394
|
-
params: {
|
|
394
|
+
params: maps.clone({
|
|
395
395
|
chains: chainInfo.mixcrFilter,
|
|
396
396
|
clonotypeKeyColumns: clonotypeKeyColumns,
|
|
397
397
|
clonotypeKeyArgs: clonotypeKeyArgs,
|
|
@@ -406,9 +406,11 @@ self.body(func(inputs) {
|
|
|
406
406
|
cellTagColumns: cellTagColumns,
|
|
407
407
|
hashCellKey: hashCellKey,
|
|
408
408
|
|
|
409
|
+
mainAbundanceColumnIsReadCount: (!is_undefined(cellTagColumns) && len(cellTagColumns) > 0 && mainAbundanceColumnUnnormalized == "readCount") ? true : undefined,
|
|
410
|
+
|
|
409
411
|
exportArgs: exportArgs,
|
|
410
412
|
isLibraryFileGzipped: isLibraryFileGzipped
|
|
411
|
-
},
|
|
413
|
+
}, { removeUndefs: true }),
|
|
412
414
|
library: library
|
|
413
415
|
}
|
|
414
416
|
}
|
|
@@ -683,14 +685,13 @@ self.body(func(inputs) {
|
|
|
683
685
|
anonymize.deanonymizePKeys(anonymizedData, 0, [0], anonymizationResult.mapping)
|
|
684
686
|
)
|
|
685
687
|
resultsToCache["clonotypeProperties/" + receptor + "/cellsLinkerTable/" + columnName] = anonymizedData
|
|
686
|
-
}
|
|
688
|
+
}
|
|
687
689
|
}
|
|
688
690
|
}
|
|
689
691
|
|
|
690
692
|
qcReportTable := render.create(exportReportTpl, {
|
|
691
693
|
clnsData: mixcrResults.outputData("clns"),
|
|
692
|
-
|
|
693
|
-
hasUmi: hasUmi,
|
|
694
|
+
presetSpecForBack: presetSpecForBack,
|
|
694
695
|
sampleIdAxisSpec: sampleIdAxisSpec,
|
|
695
696
|
chains: chains
|
|
696
697
|
})
|
|
@@ -5,7 +5,7 @@ ll := import("@platforma-sdk/workflow-tengo:ll")
|
|
|
5
5
|
pConstants := import("@platforma-sdk/workflow-tengo:pframes.constants")
|
|
6
6
|
|
|
7
7
|
// QC Report column specifications function
|
|
8
|
-
getQcReportColumns := func(hasUmi, isSingleCell, sampleIdAxisSpec, chains) {
|
|
8
|
+
getQcReportColumns := func(hasUmi, isSingleCell, sampleIdAxisSpec, chains, cellTags) {
|
|
9
9
|
// Bulk sequencing columns
|
|
10
10
|
baseColumns := [
|
|
11
11
|
{
|
|
@@ -489,7 +489,7 @@ getQcReportColumns := func(hasUmi, isSingleCell, sampleIdAxisSpec, chains) {
|
|
|
489
489
|
column: "assemble.preCloneAssembler.unassignedAlignments",
|
|
490
490
|
id: "assemble-pre-clone-assembler-unassigned-alignments",
|
|
491
491
|
allowNA: true,
|
|
492
|
-
naRegex: "",
|
|
492
|
+
naRegex: "^[a-zA-Z_]*$",
|
|
493
493
|
spec: {
|
|
494
494
|
name: "mixcr.com/reports/assemble/preCloneAssembler/unassignedAlignments",
|
|
495
495
|
valueType: "Long",
|
|
@@ -505,7 +505,7 @@ getQcReportColumns := func(hasUmi, isSingleCell, sampleIdAxisSpec, chains) {
|
|
|
505
505
|
column: "assemble.preCloneAssembler.unassignedAlignmentsPercents",
|
|
506
506
|
id: "assemble-pre-clone-assembler-unassigned-alignments-percents",
|
|
507
507
|
allowNA: true,
|
|
508
|
-
naRegex: "",
|
|
508
|
+
naRegex: "^[a-zA-Z_]*$",
|
|
509
509
|
spec: {
|
|
510
510
|
name: "mixcr.com/reports/assemble/preCloneAssembler/unassignedAlignmentsPercents",
|
|
511
511
|
valueType: "Double",
|
|
@@ -1180,73 +1180,76 @@ getQcReportColumns := func(hasUmi, isSingleCell, sampleIdAxisSpec, chains) {
|
|
|
1180
1180
|
"pl7.app/label": "Unassigned Clonotypes (%)"
|
|
1181
1181
|
}
|
|
1182
1182
|
}
|
|
1183
|
-
}
|
|
1184
|
-
|
|
1185
|
-
|
|
1186
|
-
|
|
1187
|
-
|
|
1188
|
-
|
|
1189
|
-
|
|
1190
|
-
|
|
1191
|
-
|
|
1192
|
-
|
|
1193
|
-
|
|
1194
|
-
|
|
1195
|
-
|
|
1196
|
-
|
|
1183
|
+
}]
|
|
1184
|
+
|
|
1185
|
+
for cellTag in cellTags {
|
|
1186
|
+
singleCellColumns += [{
|
|
1187
|
+
column: "refineTags." + cellTag + ".outputCount",
|
|
1188
|
+
id: "refine-tags-" + cellTag + "-output-count",
|
|
1189
|
+
allowNA: true,
|
|
1190
|
+
naRegex: "NaN",
|
|
1191
|
+
spec: {
|
|
1192
|
+
name: "mixcr.com/reports/refineTags/CELL/outputCount",
|
|
1193
|
+
valueType: "Long",
|
|
1194
|
+
annotations: {
|
|
1195
|
+
"pl7.app/min": "0",
|
|
1196
|
+
"pl7.app/table/orderPriority": "85800",
|
|
1197
|
+
"pl7.app/table/visibility": "optional",
|
|
1198
|
+
"pl7.app/label": "Refine Tags " + cellTag + " - Output Count"
|
|
1199
|
+
}
|
|
1197
1200
|
}
|
|
1198
|
-
}
|
|
1199
|
-
|
|
1200
|
-
|
|
1201
|
-
|
|
1202
|
-
|
|
1203
|
-
|
|
1204
|
-
|
|
1205
|
-
|
|
1206
|
-
|
|
1207
|
-
|
|
1208
|
-
|
|
1209
|
-
|
|
1210
|
-
|
|
1211
|
-
|
|
1212
|
-
|
|
1213
|
-
|
|
1201
|
+
},
|
|
1202
|
+
{
|
|
1203
|
+
column: "refineTags." + cellTag + ".outputCountPercents",
|
|
1204
|
+
id: "refine-tags-" + cellTag + "-output-count-percents",
|
|
1205
|
+
allowNA: true,
|
|
1206
|
+
naRegex: "NaN",
|
|
1207
|
+
spec: {
|
|
1208
|
+
name: "mixcr.com/reports/refineTags/CELL/outputCountPercents",
|
|
1209
|
+
valueType: "Double",
|
|
1210
|
+
annotations: {
|
|
1211
|
+
"pl7.app/min": "0",
|
|
1212
|
+
"pl7.app/max": "100",
|
|
1213
|
+
"pl7.app/table/orderPriority": "85900",
|
|
1214
|
+
"pl7.app/table/visibility": "default",
|
|
1215
|
+
"pl7.app/label": "Refine Tags " + cellTag + " - Output Count (%)"
|
|
1216
|
+
}
|
|
1214
1217
|
}
|
|
1215
|
-
}
|
|
1216
|
-
|
|
1217
|
-
|
|
1218
|
-
|
|
1219
|
-
|
|
1220
|
-
|
|
1221
|
-
|
|
1222
|
-
|
|
1223
|
-
|
|
1224
|
-
|
|
1225
|
-
|
|
1226
|
-
|
|
1227
|
-
|
|
1228
|
-
|
|
1229
|
-
|
|
1218
|
+
},
|
|
1219
|
+
{
|
|
1220
|
+
column: "refineTags." + cellTag + ".outputDiversity",
|
|
1221
|
+
id: "refine-tags-" + cellTag + "-output-diversity",
|
|
1222
|
+
allowNA: true,
|
|
1223
|
+
naRegex: "NaN",
|
|
1224
|
+
spec: {
|
|
1225
|
+
name: "mixcr.com/reports/refineTags/CELL/outputDiversity",
|
|
1226
|
+
valueType: "Long",
|
|
1227
|
+
annotations: {
|
|
1228
|
+
"pl7.app/min": "0",
|
|
1229
|
+
"pl7.app/table/orderPriority": "86000",
|
|
1230
|
+
"pl7.app/table/visibility": "optional",
|
|
1231
|
+
"pl7.app/label": "Refine Tags " + cellTag + " - Output Diversity"
|
|
1232
|
+
}
|
|
1230
1233
|
}
|
|
1231
|
-
}
|
|
1232
|
-
|
|
1233
|
-
|
|
1234
|
-
|
|
1235
|
-
|
|
1236
|
-
|
|
1237
|
-
|
|
1238
|
-
|
|
1239
|
-
|
|
1240
|
-
|
|
1241
|
-
|
|
1242
|
-
|
|
1243
|
-
|
|
1244
|
-
|
|
1245
|
-
|
|
1246
|
-
|
|
1234
|
+
},
|
|
1235
|
+
{
|
|
1236
|
+
column: "refineTags." + cellTag + ".outputDiversityPercents",
|
|
1237
|
+
id: "refine-tags-" + cellTag + "-output-diversity-percents",
|
|
1238
|
+
allowNA: true,
|
|
1239
|
+
naRegex: "NaN",
|
|
1240
|
+
spec: {
|
|
1241
|
+
name: "mixcr.com/reports/refineTags/CELL/outputDiversityPercents",
|
|
1242
|
+
valueType: "Double",
|
|
1243
|
+
annotations: {
|
|
1244
|
+
"pl7.app/min": "0",
|
|
1245
|
+
"pl7.app/max": "100",
|
|
1246
|
+
"pl7.app/table/orderPriority": "86100",
|
|
1247
|
+
"pl7.app/table/visibility": "default",
|
|
1248
|
+
"pl7.app/label": "Refine Tags " + cellTag + " - Output Diversity (%)"
|
|
1249
|
+
}
|
|
1247
1250
|
}
|
|
1248
|
-
}
|
|
1249
|
-
}
|
|
1251
|
+
}]
|
|
1252
|
+
}
|
|
1250
1253
|
|
|
1251
1254
|
// for chain in chains {
|
|
1252
1255
|
// singleCellColumns += [{
|