@platforma-open/milaboratories.mixcr-clonotyping-2.workflow 3.1.0 → 3.2.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.
@@ -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.1.0 build /home/runner/work/mixcr-clonotyping/mixcr-clonotyping/workflow
3
+ > @platforma-open/milaboratories.mixcr-clonotyping-2.workflow@3.2.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.2.0
4
+
5
+ ### Minor Changes
6
+
7
+ - 73af94c: nLengthTotalAdded column NA regex fix
8
+
9
+ ## 3.1.1
10
+
11
+ ### Patch Changes
12
+
13
+ - 12d4102: Update sdk version
14
+
3
15
  ## 3.1.0
4
16
 
5
17
  ### Minor Changes
@@ -545,12 +545,11 @@ calculateExportSpecs := func(presetSpecForBack, sampleIdAxisSpec, blockId) {
545
545
  junctionTypes := [ "VJ", "VD", "DJ" ]
546
546
  for junctionType in junctionTypes {
547
547
  feature := junctionType + "Junction"
548
- naRegex := junctionType == "VJ" ? "region_not_covered" : "no_d_gene"
549
548
 
550
549
  columnsSpecPerClonotypeNoAggregates += [ {
551
550
  column: "nLength" + feature,
552
551
  id: "n-length-" + text.to_lower(junctionType) + "-junction",
553
- naRegex: naRegex,
552
+ naRegex: "^[a-z_]*$",
554
553
  allowNA: true,
555
554
  spec: {
556
555
  name: "pl7.app/vdj/sequenceLength",
@@ -572,7 +571,7 @@ calculateExportSpecs := func(presetSpecForBack, sampleIdAxisSpec, blockId) {
572
571
  columnsSpecPerClonotypeNoAggregates += [ {
573
572
  column: "nLengthTotalAdded",
574
573
  id: "n-length-total-added",
575
- naRegex: "region_not_covered|no_d_gene",
574
+ naRegex: "^[a-z_]*$",
576
575
  allowNA: true,
577
576
  spec: {
578
577
  name: "pl7.app/vdj/sequenceLength",
@@ -736,204 +736,204 @@ getQcReportColumns := func(hasUmi, isSingleCell, sampleIdAxisSpec, chains) {
736
736
 
737
737
 
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
+
741
+
742
+
743
+
744
+
745
+
746
+
747
+
748
+
749
+
750
+
751
+
752
+
753
+
754
+
755
+
756
+
757
+
758
+
759
+
760
+
761
+
762
+
763
+
764
+
765
+
766
+
767
+
768
+
769
+
770
+
771
+
772
+
773
+
774
+
775
+
776
+
777
+
778
+
779
+
780
+
781
+
782
+
783
+
784
+
785
+
786
+
787
+
788
+
789
+
790
+
791
+
792
+
793
+
794
+
795
+
796
+
797
+
798
+
799
+
800
+
801
+
802
+
803
+
804
+
805
+
806
+
807
+
808
+
809
+
810
+
811
+
812
+
813
+
814
+
815
+
816
+
817
+
818
+
819
+
820
+
821
+
822
+
823
+
824
+
825
+
826
+
827
+
828
+
829
+
830
+
831
+
832
+
833
+
834
+
835
+
836
+
837
+
838
+
839
+
840
+
841
+
842
+
843
+
844
+
845
+
846
+
847
+
848
+
849
+
850
+
851
+
852
+
853
+
854
+
855
+
856
+
857
+
858
+
859
+
860
+
861
+
862
+
863
+
864
+
865
+
866
+
867
+
868
+
869
+
870
+
871
+
872
+
873
+
874
+
875
+
876
+
877
+
878
+
879
+
880
+
881
+
882
+
883
+
884
+
885
+
886
+
887
+
888
+
889
+
890
+
891
+
892
+
893
+
894
+
895
+
896
+
897
+
898
+
899
+
900
+
901
+
902
+
903
+
904
+
905
+
906
+
907
+
908
+
909
+
910
+
911
+
912
+
913
+
914
+
915
+
916
+
917
+
918
+
919
+
920
+
921
+
922
+
923
+
924
+
925
+
926
+
927
+
928
+
929
+
930
+
931
+
932
+
933
+
934
+
935
+
936
+
937
937
  {
938
938
  column: "assembleCells.cellBarcodesWithFoundGroups",
939
939
  id: "assemble-cells-cell-barcodes-with-found-groups",
@@ -1248,24 +1248,24 @@ getQcReportColumns := func(hasUmi, isSingleCell, sampleIdAxisSpec, chains) {
1248
1248
  }
1249
1249
  }]
1250
1250
 
1251
- for chain in chains {
1252
- singleCellColumns += [{
1253
- column: "clonesWithChain." + chain,
1254
- id: "clones-with-chain-" + chain,
1255
- allowNA: true,
1256
- naRegex: "",
1257
- spec: {
1258
- name: "mixcr.com/reports/clonesWithChain/" + chain,
1259
- valueType: "Long",
1260
- annotations: {
1261
- "pl7.app/min": "0",
1262
- "pl7.app/table/orderPriority": "97400",
1263
- "pl7.app/table/visibility": "optional",
1264
- "pl7.app/label": "Clones with Chain " + chain
1265
- }
1266
- }
1267
- }]
1268
- }
1251
+
1252
+
1253
+
1254
+
1255
+
1256
+
1257
+
1258
+
1259
+
1260
+
1261
+
1262
+
1263
+
1264
+
1265
+
1266
+
1267
+
1268
+
1269
1269
 
1270
1270
  columns := baseColumns
1271
1271
  if hasUmi {
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
package/package.json CHANGED
@@ -1,13 +1,13 @@
1
1
  {
2
2
  "name": "@platforma-open/milaboratories.mixcr-clonotyping-2.workflow",
3
- "version": "3.1.0",
3
+ "version": "3.2.0",
4
4
  "description": "Tengo-based template",
5
5
  "dependencies": {
6
6
  "@platforma-sdk/workflow-tengo": "^5.0.3",
7
7
  "@platforma-open/milaboratories.software-mixcr": "4.7.0-223-develop"
8
8
  },
9
9
  "devDependencies": {
10
- "@platforma-sdk/tengo-builder": "^2.1.15",
10
+ "@platforma-sdk/tengo-builder": "^2.1.16",
11
11
  "@platforma-sdk/test": "^1.42.20",
12
12
  "vitest": "~2.1.9",
13
13
  "typescript": "~5.6.3"
@@ -545,12 +545,11 @@ calculateExportSpecs := func(presetSpecForBack, sampleIdAxisSpec, blockId) {
545
545
  junctionTypes := [ "VJ", "VD", "DJ" ]
546
546
  for junctionType in junctionTypes {
547
547
  feature := junctionType + "Junction"
548
- naRegex := junctionType == "VJ" ? "region_not_covered" : "no_d_gene"
549
548
 
550
549
  columnsSpecPerClonotypeNoAggregates += [ {
551
550
  column: "nLength" + feature,
552
551
  id: "n-length-" + text.to_lower(junctionType) + "-junction",
553
- naRegex: naRegex,
552
+ naRegex: "^[a-z_]*$",
554
553
  allowNA: true,
555
554
  spec: {
556
555
  name: "pl7.app/vdj/sequenceLength",
@@ -572,7 +571,7 @@ calculateExportSpecs := func(presetSpecForBack, sampleIdAxisSpec, blockId) {
572
571
  columnsSpecPerClonotypeNoAggregates += [ {
573
572
  column: "nLengthTotalAdded",
574
573
  id: "n-length-total-added",
575
- naRegex: "region_not_covered|no_d_gene",
574
+ naRegex: "^[a-z_]*$",
576
575
  allowNA: true,
577
576
  spec: {
578
577
  name: "pl7.app/vdj/sequenceLength",
@@ -675,7 +675,15 @@ self.body(func(inputs) {
675
675
  singleCellResult.addXsvOutputToBuilder(clonotypes, "propertiesBPrimary", "clonotypeProperties/" + receptor + "/bPrimary/")
676
676
  singleCellResult.addXsvOutputToBuilder(clonotypes, "propertiesBSecondary", "clonotypeProperties/" + receptor + "/bSecondary/")
677
677
 
678
- singleCellResult.addXsvOutputToBuilder(clonotypes, "cellsLinkerTable", "clonotypeProperties/" + receptor + "/cellsLinkerTable/")
678
+ for columnName in singleCellResult.listXsvColumns("cellsLinkerTable") {
679
+ anonymizedData := singleCellResult.outputData("cellsLinkerTable", columnName)
680
+ clonotypes.add(
681
+ "clonotypeProperties/" + receptor + "/cellsLinkerTable/" + columnName,
682
+ singleCellResult.outputSpec("cellsLinkerTable", columnName),
683
+ anonymize.deanonymizePKeys(anonymizedData, 0, [0], anonymizationResult.mapping)
684
+ )
685
+ resultsToCache["clonotypeProperties/" + receptor + "/cellsLinkerTable/" + columnName] = anonymizedData
686
+ }
679
687
  }
680
688
  }
681
689
 
@@ -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",
@@ -1248,24 +1248,24 @@ getQcReportColumns := func(hasUmi, isSingleCell, sampleIdAxisSpec, chains) {
1248
1248
  }
1249
1249
  }]
1250
1250
 
1251
- for chain in chains {
1252
- singleCellColumns += [{
1253
- column: "clonesWithChain." + chain,
1254
- id: "clones-with-chain-" + chain,
1255
- allowNA: true,
1256
- naRegex: "",
1257
- spec: {
1258
- name: "mixcr.com/reports/clonesWithChain/" + chain,
1259
- valueType: "Long",
1260
- annotations: {
1261
- "pl7.app/min": "0",
1262
- "pl7.app/table/orderPriority": "97400",
1263
- "pl7.app/table/visibility": "optional",
1264
- "pl7.app/label": "Clones with Chain " + chain
1265
- }
1266
- }
1267
- }]
1268
- }
1251
+ // for chain in chains {
1252
+ // singleCellColumns += [{
1253
+ // column: "clonesWithChain." + chain,
1254
+ // id: "clones-with-chain-" + chain,
1255
+ // allowNA: true,
1256
+ // naRegex: "",
1257
+ // spec: {
1258
+ // name: "mixcr.com/reports/clonesWithChain/" + chain,
1259
+ // valueType: "Long",
1260
+ // annotations: {
1261
+ // "pl7.app/min": "0",
1262
+ // "pl7.app/table/orderPriority": "97400",
1263
+ // "pl7.app/table/visibility": "optional",
1264
+ // "pl7.app/label": "Clones with Chain " + chain
1265
+ // }
1266
+ // }
1267
+ // }]
1268
+ // }
1269
1269
 
1270
1270
  columns := baseColumns
1271
1271
  if hasUmi {