@platforma-open/milaboratories.mixcr-clonotyping-2.workflow 3.1.1 → 3.2.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.
@@ -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",
@@ -736,204 +736,204 @@ getQcReportColumns := func(hasUmi, isSingleCell, sampleIdAxisSpec, chains) {
736
736
 
737
737
  // Single Cell columns
738
738
  singleCellColumns := [
739
- {
740
- column: "align.readsWithChain.IGH",
741
- id: "align-reads-with-chain-igh",
742
- allowNA: true,
743
- naRegex: "",
744
- spec: {
745
- name: "mixcr.com/reports/align/readsWithChain/IGH",
746
- valueType: "Long",
747
- annotations: {
748
- "pl7.app/min": "0",
749
- "pl7.app/table/orderPriority": "96000",
750
- "pl7.app/table/visibility": "optional",
751
- "pl7.app/label": "Reads with Chain IGH"
752
- }
753
- }
754
- },
755
- {
756
- column: "align.readsWithChain.IGHPercents",
757
- id: "align-reads-with-chain-igh-percents",
758
- allowNA: true,
759
- naRegex: "",
760
- spec: {
761
- name: "mixcr.com/reports/align/readsWithChain/IGHPercents",
762
- valueType: "Double",
763
- annotations: {
764
- "pl7.app/min": "0",
765
- "pl7.app/max": "100",
766
- "pl7.app/table/orderPriority": "96100",
767
- "pl7.app/table/visibility": "default",
768
- "pl7.app/label": "Reads with Chain IGH (%)"
769
- }
770
- }
771
- },
772
- {
773
- column: "align.readsWithChain.IGK",
774
- id: "align-reads-with-chain-igk",
775
- allowNA: true,
776
- naRegex: "",
777
- spec: {
778
- name: "mixcr.com/reports/align/readsWithChain/IGK",
779
- valueType: "Long",
780
- annotations: {
781
- "pl7.app/min": "0",
782
- "pl7.app/table/orderPriority": "96200",
783
- "pl7.app/table/visibility": "optional",
784
- "pl7.app/label": "Reads with Chain IGK"
785
- }
786
- }
787
- },
788
- {
789
- column: "align.readsWithChain.IGKPercents",
790
- id: "align-reads-with-chain-igk-percents",
791
- allowNA: true,
792
- naRegex: "",
793
- spec: {
794
- name: "mixcr.com/reports/align/readsWithChain/IGKPercents",
795
- valueType: "Double",
796
- annotations: {
797
- "pl7.app/min": "0",
798
- "pl7.app/max": "100",
799
- "pl7.app/table/orderPriority": "96300",
800
- "pl7.app/table/visibility": "default",
801
- "pl7.app/label": "Reads with Chain IGK (%)"
802
- }
803
- }
804
- },
805
- {
806
- column: "align.readsWithChain.IGL",
807
- id: "align-reads-with-chain-igl",
808
- allowNA: true,
809
- naRegex: "",
810
- spec: {
811
- name: "mixcr.com/reports/align/readsWithChain/IGL",
812
- valueType: "Long",
813
- annotations: {
814
- "pl7.app/min": "0",
815
- "pl7.app/table/orderPriority": "96400",
816
- "pl7.app/table/visibility": "optional",
817
- "pl7.app/label": "Reads with Chain IGL"
818
- }
819
- }
820
- },
821
- {
822
- column: "align.readsWithChain.IGLPercents",
823
- id: "align-reads-with-chain-igl-percents",
824
- allowNA: true,
825
- naRegex: "",
826
- spec: {
827
- name: "mixcr.com/reports/align/readsWithChain/IGLPercents",
828
- valueType: "Double",
829
- annotations: {
830
- "pl7.app/min": "0",
831
- "pl7.app/max": "100",
832
- "pl7.app/table/orderPriority": "96500",
833
- "pl7.app/table/visibility": "default",
834
- "pl7.app/label": "Reads with Chain IGL (%)"
835
- }
836
- }
837
- },
838
- {
839
- column: "align.readsWithChain.TRAD",
840
- id: "align-reads-with-chain-trad",
841
- allowNA: true,
842
- naRegex: "",
843
- spec: {
844
- name: "mixcr.com/reports/align/readsWithChain/TRAD",
845
- valueType: "Long",
846
- annotations: {
847
- "pl7.app/min": "0",
848
- "pl7.app/table/orderPriority": "96700",
849
- "pl7.app/table/visibility": "optional",
850
- "pl7.app/label": "Reads with Chain TRAD"
851
- }
852
- }
853
- },
854
- {
855
- column: "align.readsWithChain.TRADPercents",
856
- id: "align-reads-with-chain-trad-percents",
857
- allowNA: true,
858
- naRegex: "",
859
- spec: {
860
- name: "mixcr.com/reports/align/readsWithChain/TRADPercents",
861
- valueType: "Double",
862
- annotations: {
863
- "pl7.app/min": "0",
864
- "pl7.app/max": "100",
865
- "pl7.app/table/orderPriority": "96800",
866
- "pl7.app/table/visibility": "default",
867
- "pl7.app/label": "Reads with Chain TRAD (%)"
868
- }
869
- }
870
- },
871
- {
872
- column: "align.readsWithChain.TRB",
873
- id: "align-reads-with-chain-trb",
874
- allowNA: true,
875
- naRegex: "",
876
- spec: {
877
- name: "mixcr.com/reports/align/readsWithChain/TRB",
878
- valueType: "Long",
879
- annotations: {
880
- "pl7.app/min": "0",
881
- "pl7.app/table/orderPriority": "97000",
882
- "pl7.app/table/visibility": "optional",
883
- "pl7.app/label": "Reads with Chain TRB"
884
- }
885
- }
886
- },
887
- {
888
- column: "align.readsWithChain.TRBPercents",
889
- id: "align-reads-with-chain-trb-percents",
890
- allowNA: true,
891
- naRegex: "",
892
- spec: {
893
- name: "mixcr.com/reports/align/readsWithChain/TRBPercents",
894
- valueType: "Double",
895
- annotations: {
896
- "pl7.app/min": "0",
897
- "pl7.app/max": "100",
898
- "pl7.app/table/orderPriority": "97100",
899
- "pl7.app/table/visibility": "default",
900
- "pl7.app/label": "Reads with Chain TRB (%)"
901
- }
902
- }
903
- },
904
- {
905
- column: "align.readsWithChain.TRG",
906
- id: "align-reads-with-chain-trg",
907
- allowNA: true,
908
- naRegex: "",
909
- spec: {
910
- name: "mixcr.com/reports/align/readsWithChain/TRG",
911
- valueType: "Long",
912
- annotations: {
913
- "pl7.app/min": "0",
914
- "pl7.app/table/orderPriority": "97200",
915
- "pl7.app/table/visibility": "optional",
916
- "pl7.app/label": "Reads with Chain TRG"
917
- }
918
- }
919
- },
920
- {
921
- column: "align.readsWithChain.TRGPercents",
922
- id: "align-reads-with-chain-trg-percents",
923
- allowNA: true,
924
- naRegex: "",
925
- spec: {
926
- name: "mixcr.com/reports/align/readsWithChain/TRGPercents",
927
- valueType: "Double",
928
- annotations: {
929
- "pl7.app/min": "0",
930
- "pl7.app/max": "100",
931
- "pl7.app/table/orderPriority": "97300",
932
- "pl7.app/table/visibility": "default",
933
- "pl7.app/label": "Reads with Chain TRG (%)"
934
- }
935
- }
936
- },
739
+ // {
740
+ // column: "align.readsWithChain.IGH",
741
+ // id: "align-reads-with-chain-igh",
742
+ // allowNA: true,
743
+ // naRegex: "",
744
+ // spec: {
745
+ // name: "mixcr.com/reports/align/readsWithChain/IGH",
746
+ // valueType: "Long",
747
+ // annotations: {
748
+ // "pl7.app/min": "0",
749
+ // "pl7.app/table/orderPriority": "96000",
750
+ // "pl7.app/table/visibility": "optional",
751
+ // "pl7.app/label": "Reads with Chain IGH"
752
+ // }
753
+ // }
754
+ // },
755
+ // {
756
+ // column: "align.readsWithChain.IGHPercents",
757
+ // id: "align-reads-with-chain-igh-percents",
758
+ // allowNA: true,
759
+ // naRegex: "",
760
+ // spec: {
761
+ // name: "mixcr.com/reports/align/readsWithChain/IGHPercents",
762
+ // valueType: "Double",
763
+ // annotations: {
764
+ // "pl7.app/min": "0",
765
+ // "pl7.app/max": "100",
766
+ // "pl7.app/table/orderPriority": "96100",
767
+ // "pl7.app/table/visibility": "default",
768
+ // "pl7.app/label": "Reads with Chain IGH (%)"
769
+ // }
770
+ // }
771
+ // },
772
+ // {
773
+ // column: "align.readsWithChain.IGK",
774
+ // id: "align-reads-with-chain-igk",
775
+ // allowNA: true,
776
+ // naRegex: "",
777
+ // spec: {
778
+ // name: "mixcr.com/reports/align/readsWithChain/IGK",
779
+ // valueType: "Long",
780
+ // annotations: {
781
+ // "pl7.app/min": "0",
782
+ // "pl7.app/table/orderPriority": "96200",
783
+ // "pl7.app/table/visibility": "optional",
784
+ // "pl7.app/label": "Reads with Chain IGK"
785
+ // }
786
+ // }
787
+ // },
788
+ // {
789
+ // column: "align.readsWithChain.IGKPercents",
790
+ // id: "align-reads-with-chain-igk-percents",
791
+ // allowNA: true,
792
+ // naRegex: "",
793
+ // spec: {
794
+ // name: "mixcr.com/reports/align/readsWithChain/IGKPercents",
795
+ // valueType: "Double",
796
+ // annotations: {
797
+ // "pl7.app/min": "0",
798
+ // "pl7.app/max": "100",
799
+ // "pl7.app/table/orderPriority": "96300",
800
+ // "pl7.app/table/visibility": "default",
801
+ // "pl7.app/label": "Reads with Chain IGK (%)"
802
+ // }
803
+ // }
804
+ // },
805
+ // {
806
+ // column: "align.readsWithChain.IGL",
807
+ // id: "align-reads-with-chain-igl",
808
+ // allowNA: true,
809
+ // naRegex: "",
810
+ // spec: {
811
+ // name: "mixcr.com/reports/align/readsWithChain/IGL",
812
+ // valueType: "Long",
813
+ // annotations: {
814
+ // "pl7.app/min": "0",
815
+ // "pl7.app/table/orderPriority": "96400",
816
+ // "pl7.app/table/visibility": "optional",
817
+ // "pl7.app/label": "Reads with Chain IGL"
818
+ // }
819
+ // }
820
+ // },
821
+ // {
822
+ // column: "align.readsWithChain.IGLPercents",
823
+ // id: "align-reads-with-chain-igl-percents",
824
+ // allowNA: true,
825
+ // naRegex: "",
826
+ // spec: {
827
+ // name: "mixcr.com/reports/align/readsWithChain/IGLPercents",
828
+ // valueType: "Double",
829
+ // annotations: {
830
+ // "pl7.app/min": "0",
831
+ // "pl7.app/max": "100",
832
+ // "pl7.app/table/orderPriority": "96500",
833
+ // "pl7.app/table/visibility": "default",
834
+ // "pl7.app/label": "Reads with Chain IGL (%)"
835
+ // }
836
+ // }
837
+ // },
838
+ // {
839
+ // column: "align.readsWithChain.TRAD",
840
+ // id: "align-reads-with-chain-trad",
841
+ // allowNA: true,
842
+ // naRegex: "",
843
+ // spec: {
844
+ // name: "mixcr.com/reports/align/readsWithChain/TRAD",
845
+ // valueType: "Long",
846
+ // annotations: {
847
+ // "pl7.app/min": "0",
848
+ // "pl7.app/table/orderPriority": "96700",
849
+ // "pl7.app/table/visibility": "optional",
850
+ // "pl7.app/label": "Reads with Chain TRAD"
851
+ // }
852
+ // }
853
+ // },
854
+ // {
855
+ // column: "align.readsWithChain.TRADPercents",
856
+ // id: "align-reads-with-chain-trad-percents",
857
+ // allowNA: true,
858
+ // naRegex: "",
859
+ // spec: {
860
+ // name: "mixcr.com/reports/align/readsWithChain/TRADPercents",
861
+ // valueType: "Double",
862
+ // annotations: {
863
+ // "pl7.app/min": "0",
864
+ // "pl7.app/max": "100",
865
+ // "pl7.app/table/orderPriority": "96800",
866
+ // "pl7.app/table/visibility": "default",
867
+ // "pl7.app/label": "Reads with Chain TRAD (%)"
868
+ // }
869
+ // }
870
+ // },
871
+ // {
872
+ // column: "align.readsWithChain.TRB",
873
+ // id: "align-reads-with-chain-trb",
874
+ // allowNA: true,
875
+ // naRegex: "",
876
+ // spec: {
877
+ // name: "mixcr.com/reports/align/readsWithChain/TRB",
878
+ // valueType: "Long",
879
+ // annotations: {
880
+ // "pl7.app/min": "0",
881
+ // "pl7.app/table/orderPriority": "97000",
882
+ // "pl7.app/table/visibility": "optional",
883
+ // "pl7.app/label": "Reads with Chain TRB"
884
+ // }
885
+ // }
886
+ // },
887
+ // {
888
+ // column: "align.readsWithChain.TRBPercents",
889
+ // id: "align-reads-with-chain-trb-percents",
890
+ // allowNA: true,
891
+ // naRegex: "",
892
+ // spec: {
893
+ // name: "mixcr.com/reports/align/readsWithChain/TRBPercents",
894
+ // valueType: "Double",
895
+ // annotations: {
896
+ // "pl7.app/min": "0",
897
+ // "pl7.app/max": "100",
898
+ // "pl7.app/table/orderPriority": "97100",
899
+ // "pl7.app/table/visibility": "default",
900
+ // "pl7.app/label": "Reads with Chain TRB (%)"
901
+ // }
902
+ // }
903
+ // },
904
+ // {
905
+ // column: "align.readsWithChain.TRG",
906
+ // id: "align-reads-with-chain-trg",
907
+ // allowNA: true,
908
+ // naRegex: "",
909
+ // spec: {
910
+ // name: "mixcr.com/reports/align/readsWithChain/TRG",
911
+ // valueType: "Long",
912
+ // annotations: {
913
+ // "pl7.app/min": "0",
914
+ // "pl7.app/table/orderPriority": "97200",
915
+ // "pl7.app/table/visibility": "optional",
916
+ // "pl7.app/label": "Reads with Chain TRG"
917
+ // }
918
+ // }
919
+ // },
920
+ // {
921
+ // column: "align.readsWithChain.TRGPercents",
922
+ // id: "align-reads-with-chain-trg-percents",
923
+ // allowNA: true,
924
+ // naRegex: "",
925
+ // spec: {
926
+ // name: "mixcr.com/reports/align/readsWithChain/TRGPercents",
927
+ // valueType: "Double",
928
+ // annotations: {
929
+ // "pl7.app/min": "0",
930
+ // "pl7.app/max": "100",
931
+ // "pl7.app/table/orderPriority": "97300",
932
+ // "pl7.app/table/visibility": "default",
933
+ // "pl7.app/label": "Reads with Chain TRG (%)"
934
+ // }
935
+ // }
936
+ // },
937
937
  {
938
938
  column: "assembleCells.cellBarcodesWithFoundGroups",
939
939
  id: "assemble-cells-cell-barcodes-with-found-groups",
@@ -1180,93 +1180,96 @@ getQcReportColumns := func(hasUmi, isSingleCell, sampleIdAxisSpec, chains) {
1180
1180
  "pl7.app/label": "Unassigned Clonotypes (%)"
1181
1181
  }
1182
1182
  }
1183
- },
1184
- {
1185
- column: "refineTags.CELL.outputCount",
1186
- id: "refine-tags-cell-output-count",
1187
- allowNA: true,
1188
- naRegex: "NaN",
1189
- spec: {
1190
- name: "mixcr.com/reports/refineTags/CELL/outputCount",
1191
- valueType: "Long",
1192
- annotations: {
1193
- "pl7.app/min": "0",
1194
- "pl7.app/table/orderPriority": "85800",
1195
- "pl7.app/table/visibility": "optional",
1196
- "pl7.app/label": "Refine Tags CELL - Output Count"
1197
- }
1198
- }
1199
- },
1200
- {
1201
- column: "refineTags.CELL.outputCountPercents",
1202
- id: "refine-tags-cell-output-count-percents",
1203
- allowNA: true,
1204
- naRegex: "NaN",
1205
- spec: {
1206
- name: "mixcr.com/reports/refineTags/CELL/outputCountPercents",
1207
- valueType: "Double",
1208
- annotations: {
1209
- "pl7.app/min": "0",
1210
- "pl7.app/max": "100",
1211
- "pl7.app/table/orderPriority": "85900",
1212
- "pl7.app/table/visibility": "default",
1213
- "pl7.app/label": "Refine Tags CELL - Output Count (%)"
1214
- }
1215
- }
1216
- },
1217
- {
1218
- column: "refineTags.CELL.outputDiversity",
1219
- id: "refine-tags-cell-output-diversity",
1220
- allowNA: true,
1221
- naRegex: "NaN",
1222
- spec: {
1223
- name: "mixcr.com/reports/refineTags/CELL/outputDiversity",
1224
- valueType: "Long",
1225
- annotations: {
1226
- "pl7.app/min": "0",
1227
- "pl7.app/table/orderPriority": "86000",
1228
- "pl7.app/table/visibility": "optional",
1229
- "pl7.app/label": "Refine Tags CELL - Output Diversity"
1230
- }
1231
- }
1232
- },
1233
- {
1234
- column: "refineTags.CELL.outputDiversityPercents",
1235
- id: "refine-tags-cell-output-diversity-percents",
1236
- allowNA: true,
1237
- naRegex: "NaN",
1238
- spec: {
1239
- name: "mixcr.com/reports/refineTags/CELL/outputDiversityPercents",
1240
- valueType: "Double",
1241
- annotations: {
1242
- "pl7.app/min": "0",
1243
- "pl7.app/max": "100",
1244
- "pl7.app/table/orderPriority": "86100",
1245
- "pl7.app/table/visibility": "default",
1246
- "pl7.app/label": "Refine Tags CELL - Output Diversity (%)"
1247
- }
1248
- }
1249
1183
  }]
1250
1184
 
1251
- for chain in chains {
1185
+ for cellTag in cellTags {
1252
1186
  singleCellColumns += [{
1253
- column: "clonesWithChain." + chain,
1254
- id: "clones-with-chain-" + chain,
1187
+ column: "refineTags." + cellTag + ".outputCount",
1188
+ id: "refine-tags-" + cellTag + "-output-count",
1255
1189
  allowNA: true,
1256
- naRegex: "",
1190
+ naRegex: "NaN",
1257
1191
  spec: {
1258
- name: "mixcr.com/reports/clonesWithChain/" + chain,
1192
+ name: "mixcr.com/reports/refineTags/CELL/outputCount",
1259
1193
  valueType: "Long",
1260
1194
  annotations: {
1261
1195
  "pl7.app/min": "0",
1262
- "pl7.app/table/orderPriority": "97400",
1196
+ "pl7.app/table/orderPriority": "85800",
1263
1197
  "pl7.app/table/visibility": "optional",
1264
- "pl7.app/label": "Clones with Chain " + chain
1198
+ "pl7.app/label": "Refine Tags " + cellTag + " - Output Count"
1199
+ }
1200
+ }
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
+ }
1217
+ }
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
+ }
1233
+ }
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 (%)"
1265
1249
  }
1266
1250
  }
1267
1251
  }]
1268
1252
  }
1269
1253
 
1254
+ // for chain in chains {
1255
+ // singleCellColumns += [{
1256
+ // column: "clonesWithChain." + chain,
1257
+ // id: "clones-with-chain-" + chain,
1258
+ // allowNA: true,
1259
+ // naRegex: "",
1260
+ // spec: {
1261
+ // name: "mixcr.com/reports/clonesWithChain/" + chain,
1262
+ // valueType: "Long",
1263
+ // annotations: {
1264
+ // "pl7.app/min": "0",
1265
+ // "pl7.app/table/orderPriority": "97400",
1266
+ // "pl7.app/table/visibility": "optional",
1267
+ // "pl7.app/label": "Clones with Chain " + chain
1268
+ // }
1269
+ // }
1270
+ // }]
1271
+ // }
1272
+
1270
1273
  columns := baseColumns
1271
1274
  if hasUmi {
1272
1275
  columns = columns + dataWithUmiColumns