diff --git a/.release-version b/.release-version index 08a0898f8..4f7d6a223 100644 --- a/.release-version +++ b/.release-version @@ -1 +1 @@ -3.37.1 +3.38.0 diff --git a/app/models/labware_creators/pooled_wells_by_sample_in_groups.rb b/app/models/labware_creators/pooled_wells_by_sample_in_groups.rb index a817c4397..048ccbd8a 100644 --- a/app/models/labware_creators/pooled_wells_by_sample_in_groups.rb +++ b/app/models/labware_creators/pooled_wells_by_sample_in_groups.rb @@ -12,12 +12,9 @@ module LabwareCreators class PooledWellsBySampleInGroups < Base include SupportParent::PlateOnly - # By default, source wells with the sample are pooled in pairs. - DEFAULT_NUMBER_OF_SOURCE_WELLS = 2 - # Number of source wells with the same sample to be pooled. def number_of_source_wells - purpose_config[:number_of_source_wells] || DEFAULT_NUMBER_OF_SOURCE_WELLS + @number_of_source_wells ||= purpose_config.dig(:creator_class, :args, :number_of_source_wells) end # Well filter with this object as the creator diff --git a/config/mbrave.yml b/config/mbrave.yml index b83089ea2..24ff069ee 100644 --- a/config/mbrave.yml +++ b/config/mbrave.yml @@ -1,5 +1,322 @@ --- development: &1 + Bioscan_forward_96_v3: + name: Bioscan_forward_96_v3 + version: v3 + num_plate: 1 + tags: + - PB1F_bc1001 + - PB1F_bc1002 + - PB1F_bc1003 + - PB1F_bc1004 + - PB1F_bc1005 + - PB1F_bc1006 + - PB1F_bc1007 + - PB1F_bc1008 + - PB1F_bc1009 + - PB1F_bc1010 + - PB1F_bc1011 + - PB1F_bc1012 + - PB1F_bc1013 + - PB1F_bc1014 + - PB1F_bc1015 + - PB1F_bc1016 + - PB1F_bc1017 + - PB1F_bc1018 + - PB1F_bc1019 + - PB1F_bc1020 + - PB1F_bc1021 + - PB1F_bc1022 + - PB1F_bc1023 + - PB1F_bc1024 + - PB1F_bc1025 + - PB1F_bc1026 + - PB1F_bc1027 + - PB1F_bc1028 + - PB1F_bc1029 + - PB1F_bc1030 + - PB1F_bc1031 + - PB1F_bc1032 + - PB1F_bc1033 + - PB1F_bc1034 + - PB1F_bc1035 + - PB1F_bc1036 + - PB1F_bc1037 + - PB1F_bc1038 + - PB1F_bc1039 + - PB1F_bc1040 + - PB1F_bc1041 + - PB1F_bc1042 + - PB1F_bc1043 + - PB1F_bc1044 + - PB1F_bc1045 + - PB1F_bc1046 + - PB1F_bc1047 + - PB1F_bc1048 + - PB1F_bc1049 + - PB1F_bc1050 + - PB1F_bc1051 + - PB1F_bc1052 + - PB1F_bc1053 + - PB1F_bc1054 + - PB1F_bc1055 + - PB1F_bc1056 + - PB1F_bc1057 + - PB1F_bc1058 + - PB1F_bc1059 + - PB1F_bc1060 + - PB1F_bc1061 + - PB1F_bc1062 + - PB1F_bc1063 + - PB1F_bc1064 + - PB1F_bc1065 + - PB1F_bc1066 + - PB1F_bc1067 + - PB1F_bc1068 + - PB1F_bc1069 + - PB1F_bc1195 + - PB1F_bc1071 + - PB1F_bc1072 + - PB1F_bc1073 + - PB1F_bc1074 + - PB1F_bc1075 + - PB1F_bc1076 + - PB1F_bc1077 + - PB1F_bc1078 + - PB1F_bc1079 + - PB1F_bc1080 + - PB1F_bc1081 + - PB1F_bc1082 + - PB1F_bc1083 + - PB1F_bc1084 + - PB1F_bc1085 + - PB1F_bc1086 + - PB1F_bc1087 + - PB1F_bc1088 + - PB1F_bc1089 + - PB1F_bc1090 + - PB1F_bc1091 + - PB1F_bc1092 + - PB1F_bc1093 + - PB1F_bc1094 + - PB1F_bc1095 + - PB1F_bc1096 + Bioscan_reverse_4_1_v3: + name: Bioscan_reverse_4_1_v3 + version: v3 + num_plate: 1 + tags: + - PB1R_bc1097_rc + - PB1R_bc1098_rc + - PB1R_bc1099_rc + - PB1R_bc1100_rc + Bioscan_reverse_4_2_v3: + name: Bioscan_reverse_4_2_v3 + version: v3 + num_plate: 2 + tags: + - PB1R_bc1101_rc + - PB1R_bc1102_rc + - PB1R_bc1103_rc + - PB1R_bc1104_rc + Bioscan_reverse_4_3_v3: + name: Bioscan_reverse_4_3_v3 + version: v3 + num_plate: 3 + tags: + - PB1R_bc1105_rc + - PB1R_bc1106_rc + - PB1R_bc1107_rc + - PB1R_bc1108_rc + Bioscan_reverse_4_4_v3: + name: Bioscan_reverse_4_4_v3 + version: v3 + num_plate: 4 + tags: + - PB1R_bc1109_rc + - PB1R_bc1110_rc + - PB1R_bc1111_rc + - PB1R_bc1112_rc + Bioscan_reverse_4_5_v3: + name: Bioscan_reverse_4_5_v3 + version: v3 + num_plate: 5 + tags: + - PB1R_bc1113_rc + - PB1R_bc1114_rc + - PB1R_bc1115_rc + - PB1R_bc1116_rc + Bioscan_reverse_4_6_v3: + name: Bioscan_reverse_4_6_v3 + version: v3 + num_plate: 6 + tags: + - PB1R_bc1117_rc + - PB1R_bc1118_rc + - PB1R_bc1119_rc + - PB1R_bc1120_rc + Bioscan_reverse_4_7_v3: + name: Bioscan_reverse_4_7_v3 + version: v3 + num_plate: 7 + tags: + - PB1R_bc1121_rc + - PB1R_bc1122_rc + - PB1R_bc1123_rc + - PB1R_bc1124_rc + Bioscan_reverse_4_8_v3: + name: Bioscan_reverse_4_8_v3 + version: v3 + num_plate: 8 + tags: + - PB1R_bc1125_rc + - PB1R_bc1126_rc + - PB1R_bc1127_rc + - PB1R_bc1128_rc + Bioscan_reverse_4_9_v3: + name: Bioscan_reverse_4_9_v3 + version: v3 + num_plate: 9 + tags: + - PB1R_bc1129_rc + - PB1R_bc1130_rc + - PB1R_bc1131_rc + - PB1R_bc1132_rc + Bioscan_reverse_4_10_v3: + name: Bioscan_reverse_4_10_v3 + version: v3 + num_plate: 10 + tags: + - PB1R_bc1133_rc + - PB1R_bc1134_rc + - PB1R_bc1135_rc + - PB1R_bc1136_rc + Bioscan_reverse_4_11_v3: + name: Bioscan_reverse_4_11_v3 + version: v3 + num_plate: 11 + tags: + - PB1R_bc1137_rc + - PB1R_bc1138_rc + - PB1R_bc1139_rc + - PB1R_bc1196_rc + Bioscan_reverse_4_12_v3: + name: Bioscan_reverse_4_12_v3 + version: v3 + num_plate: 12 + tags: + - PB1R_bc1141_rc + - PB1R_bc1142_rc + - PB1R_bc1143_rc + - PB1R_bc1144_rc + Bioscan_reverse_4_13_v3: + name: Bioscan_reverse_4_13_v3 + version: v3 + num_plate: 13 + tags: + - PB1R_bc1145_rc + - PB1R_bc1146_rc + - PB1R_bc1147_rc + - PB1R_bc1148_rc + Bioscan_reverse_4_14_v3: + name: Bioscan_reverse_4_14_v3 + version: v3 + num_plate: 14 + tags: + - PB1R_bc1149_rc + - PB1R_bc1150_rc + - PB1R_bc1151_rc + - PB1R_bc1152_rc + Bioscan_reverse_4_15_v3: + name: Bioscan_reverse_4_15_v3 + version: v3 + num_plate: 15 + tags: + - PB1R_bc1153_rc + - PB1R_bc1154_rc + - PB1R_bc1155_rc + - PB1R_bc1156_rc + Bioscan_reverse_4_16_v3: + name: Bioscan_reverse_4_16_v3 + version: v3 + num_plate: 16 + tags: + - PB1R_bc1157_rc + - PB1R_bc1158_rc + - PB1R_bc1159_rc + - PB1R_bc1160_rc + Bioscan_reverse_4_17_v3: + name: Bioscan_reverse_4_17_v3 + version: v3 + num_plate: 17 + tags: + - PB1R_bc1161_rc + - PB1R_bc1162_rc + - PB1R_bc1163_rc + - PB1R_bc1164_rc + Bioscan_reverse_4_18_v3: + name: Bioscan_reverse_4_18_v3 + version: v3 + num_plate: 18 + tags: + - PB1R_bc1165_rc + - PB1R_bc1166_rc + - PB1R_bc1167_rc + - PB1R_bc1168_rc + Bioscan_reverse_4_19_v3: + name: Bioscan_reverse_4_19_v3 + version: v3 + num_plate: 19 + tags: + - PB1R_bc1169_rc + - PB1R_bc1170_rc + - PB1R_bc1171_rc + - PB1R_bc1172_rc + Bioscan_reverse_4_20_v3: + name: Bioscan_reverse_4_20_v3 + version: v3 + num_plate: 20 + tags: + - PB1R_bc1173_rc + - PB1R_bc1174_rc + - PB1R_bc1175_rc + - PB1R_bc1176_rc + Bioscan_reverse_4_21_v3: + name: Bioscan_reverse_4_21_v3 + version: v3 + num_plate: 21 + tags: + - PB1R_bc1177_rc + - PB1R_bc1178_rc + - PB1R_bc1179_rc + - PB1R_bc1180_rc + Bioscan_reverse_4_22_v3: + name: Bioscan_reverse_4_22_v3 + version: v3 + num_plate: 22 + tags: + - PB1R_bc1181_rc + - PB1R_bc1182_rc + - PB1R_bc1183_rc + - PB1R_bc1184_rc + Bioscan_reverse_4_23_v3: + name: Bioscan_reverse_4_23_v3 + version: v3 + num_plate: 23 + tags: + - PB1R_bc1185_rc + - PB1R_bc1186_rc + - PB1R_bc1187_rc + - PB1R_bc1188_rc + Bioscan_reverse_4_24_v3: + name: Bioscan_reverse_4_24_v3 + version: v3 + num_plate: 24 + tags: + - PB1R_bc1189_rc + - PB1R_bc1190_rc + - PB1R_bc1191_rc + - PB1R_bc1192_rc Bioscan_forward_96_v2: name: Bioscan_forward_96_v2 version: v2 diff --git a/config/purposes/bioscan.yml b/config/purposes/bioscan.yml index 45fff7b16..af6757df2 100644 --- a/config/purposes/bioscan.yml +++ b/config/purposes/bioscan.yml @@ -62,6 +62,30 @@ LBSN-384 PCR 2: # NB. will need to update this list to include new versions of the templates # as we generate new sets after changes from the scripts in Sequencescape :tag_layout_templates: + - Bioscan_384_template_1_v3 + - Bioscan_384_template_2_v3 + - Bioscan_384_template_3_v3 + - Bioscan_384_template_4_v3 + - Bioscan_384_template_5_v3 + - Bioscan_384_template_6_v3 + - Bioscan_384_template_7_v3 + - Bioscan_384_template_8_v3 + - Bioscan_384_template_9_v3 + - Bioscan_384_template_10_v3 + - Bioscan_384_template_11_v3 + - Bioscan_384_template_12_v3 + - Bioscan_384_template_13_v3 + - Bioscan_384_template_14_v3 + - Bioscan_384_template_15_v3 + - Bioscan_384_template_16_v3 + - Bioscan_384_template_17_v3 + - Bioscan_384_template_18_v3 + - Bioscan_384_template_19_v3 + - Bioscan_384_template_20_v3 + - Bioscan_384_template_21_v3 + - Bioscan_384_template_22_v3 + - Bioscan_384_template_23_v3 + - Bioscan_384_template_24_v3 - Bioscan_384_template_1_v2 - Bioscan_384_template_2_v2 - Bioscan_384_template_3_v2 diff --git a/config/purposes/scrna_core_cell_extraction.wip.yml b/config/purposes/scrna_core_cell_extraction.wip.yml index 122891ab9..4ea00ec74 100644 --- a/config/purposes/scrna_core_cell_extraction.wip.yml +++ b/config/purposes/scrna_core_cell_extraction.wip.yml @@ -53,11 +53,13 @@ LRC Blood Bank: LRC PBMC Bank: :asset_type: plate # Labware creator for pooling isolations by sample before cell counting - :creator_class: LabwareCreators::PooledWellsBySampleInGroups + :creator_class: + name: LabwareCreators::PooledWellsBySampleInGroups + args: + # number of source wells to pool into a single destination well by sample from LRC Bank to LRC PBMC Bank + # e.g. 6 copies of sample in 6 wells, '2' in the config, pool to make 3 child wells + number_of_source_wells: 2 :label_template: plate_cellaca_qc # creates QC1 up to QC4 barcodes - # number of source wells to pool into a single destination well by sample from LRC Bank to LRC PBMC Bank - # e.g. 6 copies of sample in 6 wells, '2' in the config, pool to make 3 child wells - :number_of_source_wells: 2 :file_links: - name: 'Download Cellaca Input QC1' id: cellaca_input_file diff --git a/docs/creators.md b/docs/creators.md index 0f559ca5d..0c5012bf5 100644 --- a/docs/creators.md +++ b/docs/creators.md @@ -96,7 +96,7 @@ Labware creators are responsible for creating new labware from a parent labware. {include:LabwareCreators::MergedPlate} Used directly in 4 purposes: - LTHR-384 Lib PCR pool, LHR-384 cDNA, LTHR Lib PCR pool, and LHR XP + LHR XP, LHR-384 cDNA, LTHR Lib PCR pool, and LTHR-384 Lib PCR pool {LabwareCreators::MergedPlate View class documentation} @@ -106,7 +106,7 @@ Labware creators are responsible for creating new labware from a parent labware. {include:LabwareCreators::PcrCyclesBinnedPlate} Used directly in 2 purposes: - LTN AL Lib Dil and LDS AL Lib Dil + LDS AL Lib Dil and LTN AL Lib Dil {LabwareCreators::PcrCyclesBinnedPlate View class documentation} @@ -164,7 +164,7 @@ Labware creators are responsible for creating new labware from a parent labware. {include:LabwareCreators::CustomPooledTubes} Used directly in 7 purposes: - LB Custom Pool, CLCM DNA Pool, CLCM RNA Pool, LCMB Custom Pool, LTN Custom Pool, LDS Custom Pool, and LCA Custom Pool + CLCM DNA Pool, CLCM RNA Pool, LB Custom Pool, LCA Custom Pool, LCMB Custom Pool, LDS Custom Pool, and LTN Custom Pool {LabwareCreators::CustomPooledTubes View class documentation} @@ -184,7 +184,7 @@ Labware creators are responsible for creating new labware from a parent labware. {include:LabwareCreators::PooledTubesBySubmission} Used directly in 12 purposes: - LBC 5p GLibPS, pWGS-384 Lib Pool XP, LBC BCR LibPS, GnT Pico Lib Pool, LB Lib Pool, LHR-384 Pool XP, LBC TCR LibPS, LBB Lib Pool Stock, LBC 3pV3 GLibPS, scRNA Lib Pool, scRNA-384 Lib Pool XP, and LHR Lib Pool + GnT Pico Lib Pool, LB Lib Pool, LBB Lib Pool Stock, LBC 3pV3 GLibPS, LBC 5p GLibPS, LBC BCR LibPS, LBC TCR LibPS, LHR Lib Pool, LHR-384 Pool XP, pWGS-384 Lib Pool XP, scRNA Lib Pool, and scRNA-384 Lib Pool XP {LabwareCreators::PooledTubesBySubmission View class documentation} @@ -194,7 +194,7 @@ Labware creators are responsible for creating new labware from a parent labware. {include:LabwareCreators::PooledTubesBySubmissionWithPhiX} Used directly in 2 purposes: - LTHR-384 Pool XP and LTHR Pool XP + LTHR Pool XP and LTHR-384 Pool XP {LabwareCreators::PooledTubesBySubmissionWithPhiX View class documentation} @@ -204,7 +204,7 @@ Labware creators are responsible for creating new labware from a parent labware. {include:LabwareCreators::CustomTaggedPlate} Used directly in 8 purposes: - LBC 5p GEX LigXP, LBC BCR Post Lig 1XSPRI, LCA Connect PCRXP, LBC TCR Post Lig 1XSPRI, LBB Lib PCR-XP, LBB Ligation Tagged, LBB Chromium Tagged, and LBC 3pV3 GEX LigXP + LBB Chromium Tagged, LBB Lib PCR-XP, LBB Ligation Tagged, LBC 3pV3 GEX LigXP, LBC 5p GEX LigXP, LBC BCR Post Lig 1XSPRI, LBC TCR Post Lig 1XSPRI, and LCA Connect PCRXP {LabwareCreators::CustomTaggedPlate View class documentation} @@ -252,7 +252,8 @@ Labware creators are responsible for creating new labware from a parent labware. {include:LabwareCreators::MultiStampLibrarySplitter} - **This labware creator is unused** + Used directly in 2 purposes: + CLCM Lysate DNA and CLCM Lysate RNA {LabwareCreators::MultiStampLibrarySplitter View class documentation} @@ -271,7 +272,7 @@ Labware creators are responsible for creating new labware from a parent labware. {include:LabwareCreators::QuadrantStamp} Used directly in 4 purposes: - pWGS-384 Post Shear XP, PF-384 Post Shear XP, LTHR-384 RT-Q, and LBSN-384 PCR 1 + LBSN-384 PCR 1, LTHR-384 RT-Q, PF-384 Post Shear XP, and pWGS-384 Post Shear XP {LabwareCreators::QuadrantStamp View class documentation} @@ -300,8 +301,8 @@ Labware creators are responsible for creating new labware from a parent labware. {include:LabwareCreators::MultiStampTubes} - Used directly in 1 purposes: - LCA Blood Array + Used directly in 3 purposes: + LCA Blood Array, LCA Blood Bank, and LRC Blood Bank {LabwareCreators::MultiStampTubes View class documentation} @@ -310,7 +311,8 @@ Labware creators are responsible for creating new labware from a parent labware. {include:LabwareCreators::PlateSplitToTubeRacks} - **This labware creator is unused** + Used directly in 2 purposes: + LRC Bank Seq and LRC Bank Spare {LabwareCreators::PlateSplitToTubeRacks View class documentation} @@ -330,7 +332,7 @@ Labware creators are responsible for creating new labware from a parent labware. {include:LabwareCreators::PooledTubesFromWholePlates} Used directly in 2 purposes: - LBSN-384 PCR 2 Pool and GBS PCR2 Pool Stock + GBS PCR2 Pool Stock and LBSN-384 PCR 2 Pool {LabwareCreators::PooledTubesFromWholePlates View class documentation} @@ -340,7 +342,7 @@ Labware creators are responsible for creating new labware from a parent labware. {include:LabwareCreators::PooledTubesFromWholeTubes} Used directly in 2 purposes: - LBSN-9216 Lib PCR Pool and GBS MiSeq Pool + GBS MiSeq Pool and LBSN-9216 Lib PCR Pool {LabwareCreators::PooledTubesFromWholeTubes View class documentation} @@ -350,7 +352,7 @@ Labware creators are responsible for creating new labware from a parent labware. {include:LabwareCreators::TaggedPlate} Used directly in 20 purposes: - CLCM DNA Lib PCR, CLCM RNA Lib PCR, LCMB Lib PCR, pWGS-384 Lib PCR, PF Lib, PF-384 Lib, LTHR-384 Lib PCR 1, LTHR-384 Lib PCR 2, LBSN-384 PCR 2, LTN Lib PCR, GnT Pico Lib PCR, LB Lib PCR, LDS Lib PCR, LHR-384 Lib PCR, GBS PCR2, LTHR Lib PCR 1, LTHR Lib PCR 2, scRNA Lib PCR, scRNA-384 Lib PCR, and LHR Lib PCR + CLCM DNA Lib PCR, CLCM RNA Lib PCR, GBS PCR2, GnT Pico Lib PCR, LB Lib PCR, LBSN-384 PCR 2, LCMB Lib PCR, LDS Lib PCR, LHR Lib PCR, LHR-384 Lib PCR, LTHR Lib PCR 1, LTHR Lib PCR 2, LTHR-384 Lib PCR 1, LTHR-384 Lib PCR 2, LTN Lib PCR, PF Lib, PF-384 Lib, pWGS-384 Lib PCR, scRNA Lib PCR, and scRNA-384 Lib PCR {LabwareCreators::TaggedPlate View class documentation} @@ -360,7 +362,7 @@ Labware creators are responsible for creating new labware from a parent labware. {include:LabwareCreators::TubeFromTube} Used directly in 17 purposes: - LBC 5p Pool Norm, LB Custom Pool Norm, CLCM DNA Pool Norm, CLCM RNA Pool Norm, LCMB Custom Pool Norm, LRC Blood Aliquot, LBSN-9216 Lib PCR Pool XP, LTN Custom Pool Norm, LBC BCR Pool Norm, GnT Pico Lib Pool XP, LDS Custom Pool Norm, GBS PCR Pool, GBS PCR Pool Selected, LCA Custom Pool Norm, LBC TCR Pool Norm, scRNA Lib Pool XP, and LHR Lib Pool XP + CLCM DNA Pool Norm, CLCM RNA Pool Norm, GBS PCR Pool, GBS PCR Pool Selected, GnT Pico Lib Pool XP, LB Custom Pool Norm, LBC 5p Pool Norm, LBC BCR Pool Norm, LBC TCR Pool Norm, LBSN-9216 Lib PCR Pool XP, LCA Custom Pool Norm, LCMB Custom Pool Norm, LDS Custom Pool Norm, LHR Lib Pool XP, LRC Blood Aliquot, LTN Custom Pool Norm, and scRNA Lib Pool XP {LabwareCreators::TubeFromTube View class documentation} @@ -370,7 +372,7 @@ Labware creators are responsible for creating new labware from a parent labware. {include:LabwareCreators::Uncreatable} Used directly in 8 purposes: - CLCM Stock, LRC Blood Vac, LTHR-384 RT, LILYS-96 Stock, LTHR Cherrypick, LCA Blood Vac, LTHR RT, and LDW-96 Stock + CLCM Stock, LCA Blood Vac, LDW-96 Stock, LILYS-96 Stock, LRC Blood Vac, LTHR Cherrypick, LTHR RT, and LTHR-384 RT {LabwareCreators::Uncreatable View class documentation} diff --git a/docs/presenters.md b/docs/presenters.md index d498c3fb6..43c63d806 100644 --- a/docs/presenters.md +++ b/docs/presenters.md @@ -49,7 +49,7 @@ scRNA-384 cDNA-XP and scRNA-384 End Prep {include:Presenters::MinimalPcrPlatePresenter} Used directly in 11 purposes: -pWGS-384 Lib PCR, LTHR-384 Lib PCR 1, LTHR-384 Lib PCR 2, LBSN-384 PCR 1, LBSN-384 PCR 2, LHR-384 Lib PCR, GBS PCR1, GBS PCR2, LTHR Lib PCR 1, LTHR Lib PCR 2, and scRNA-384 Lib PCR +GBS PCR1, GBS PCR2, LBSN-384 PCR 1, LBSN-384 PCR 2, LHR-384 Lib PCR, LTHR Lib PCR 1, LTHR Lib PCR 2, LTHR-384 Lib PCR 1, LTHR-384 Lib PCR 2, pWGS-384 Lib PCR, and scRNA-384 Lib PCR {Presenters::MinimalPcrPlatePresenter View class documentation} @@ -79,7 +79,7 @@ LBC 5p GEX Dil {include:Presenters::PcrCyclesBinnedPlatePresenter} Used directly in 2 purposes: -LTN AL Lib Dil and LDS AL Lib Dil +LDS AL Lib Dil and LTN AL Lib Dil {Presenters::PcrCyclesBinnedPlatePresenter View class documentation} @@ -99,7 +99,7 @@ LBC 5p GEX Frag 2XP, LB Lib PrePool, LB Hyb, LB Cap Lib, LB Cap Lib PCR, LB Cap {include:Presenters::PcrPresenter} Used directly in 19 purposes: -LBC 5p GEX LigXP, LBC 5p GEX PCR 2XP, CLCM DNA Lib PCR, CLCM RNA Lib PCR, LCMB Lib PCR, LTN Lib PCR, LBC BCR Post Lig 1XSPRI, GnT Pico Lib PCR, LB Lib PCR, LDS Lib PCR, LCA Connect PCRXP, LBC TCR Post Lig 1XSPRI, LBB Lib PCR-XP, LBB Ligation Tagged, LBB Chromium Tagged, LBC 3pV3 GEX LigXP, LBC 3pV3 GEX PCR 2XP, scRNA Lib PCR, and LHR Lib PCR +CLCM DNA Lib PCR, CLCM RNA Lib PCR, GnT Pico Lib PCR, LB Lib PCR, LBB Chromium Tagged, LBB Lib PCR-XP, LBB Ligation Tagged, LBC 3pV3 GEX LigXP, LBC 3pV3 GEX PCR 2XP, LBC 5p GEX LigXP, LBC 5p GEX PCR 2XP, LBC BCR Post Lig 1XSPRI, LBC TCR Post Lig 1XSPRI, LCA Connect PCRXP, LCMB Lib PCR, LDS Lib PCR, LHR Lib PCR, LTN Lib PCR, and scRNA Lib PCR {Presenters::PcrPresenter View class documentation} @@ -109,7 +109,7 @@ LBC 5p GEX LigXP, LBC 5p GEX PCR 2XP, CLCM DNA Lib PCR, CLCM RNA Lib PCR, LCMB L {include:Presenters::PermissivePresenter} Used directly in 10 purposes: -PF Lib, PF-384 Lib, LBR mRNA Cap, LBR Ribo DNase, LBR Globin DNase, LBR RiboGlobin DNase, LBR Frag, LB cDNA, LB cDNA XP, and LHR-384 End Prep +LB cDNA, LB cDNA XP, LBR Frag, LBR Globin DNase, LBR mRNA Cap, LBR Ribo DNase, LBR RiboGlobin DNase, LHR-384 End Prep, PF Lib, and PF-384 Lib {Presenters::PermissivePresenter View class documentation} @@ -139,7 +139,7 @@ PF Lib Q-XP2 {include:Presenters::StockPlatePresenter} Used directly in 18 purposes: -LCMB Cherrypick, PF Cherrypicked, LTHR-384 RT, LILYS-96 Stock, LBSN-96 Lysate, LBR Cherrypick, LTN Stock, LTN Cherrypick, GnT Stock, LB Cherrypick, LDS Stock, LDS Cherrypick, LBC Stock, LHR-384 RT, LTHR RT, LBB Cherrypick, scRNA Stock, and LHR RT +GnT Stock, LB Cherrypick, LBB Cherrypick, LBC Stock, LBR Cherrypick, LBSN-96 Lysate, LCMB Cherrypick, LDS Cherrypick, LDS Stock, LHR RT, LHR-384 RT, LILYS-96 Stock, LTHR RT, LTHR-384 RT, LTN Cherrypick, LTN Stock, PF Cherrypicked, and scRNA Stock {Presenters::StockPlatePresenter View class documentation} @@ -149,7 +149,7 @@ LCMB Cherrypick, PF Cherrypicked, LTHR-384 RT, LILYS-96 Stock, LBSN-96 Lysate, L {include:Presenters::SubmissionPlatePresenter} Used directly in 2 purposes: -LTHR Cherrypick and LDW-96 Stock +LDW-96 Stock and LTHR Cherrypick {Presenters::SubmissionPlatePresenter View class documentation} diff --git a/docs/state_changers.md b/docs/state_changers.md index 4f2532b89..ae4905ea4 100644 --- a/docs/state_changers.md +++ b/docs/state_changers.md @@ -29,7 +29,7 @@ manual transfer. {include:StateChangers::AutomaticPlateStateChanger} Used directly in 3 purposes: - LBSN-96 Lysate, LBC Cherrypick, and LSW-96 Stock + LBC Cherrypick, LBSN-96 Lysate, and LSW-96 Stock {StateChangers::AutomaticPlateStateChanger View class documentation} @@ -39,7 +39,7 @@ manual transfer. {include:StateChangers::TubeStateChanger} Used directly in 49 purposes: - LBC 5p GLibPS, LBC 5p Pool Norm, Cap Lib Pool Norm, LB Custom Pool, LB Custom Pool Norm, CLCM DNA Pool, CLCM DNA Pool Norm, CLCM RNA Pool, CLCM RNA Pool Norm, LCMB Custom Pool, LCMB Custom Pool Norm, pWGS-384 Lib Pool XP, LRC Blood Vac, LRC Blood Aliquot, LRC Bank Seq, LRC Bank Spare, LTHR-384 Pool XP, LB Lib Pool Norm, LBSN-384 PCR 2 Pool, LBSN-9216 Lib PCR Pool, LBSN-9216 Lib PCR Pool XP, LTN Custom Pool, LTN Custom Pool Norm, LBC BCR LibPS, LBC BCR Pool Norm, GnT Pico Lib Pool, GnT Pico Lib Pool XP, LB Lib Pool, LDS Custom Pool, LDS Custom Pool Norm, LHR-384 Pool XP, GBS PCR2 Pool Stock, GBS PCR Pool, GBS PCR Pool Selected, GBS MiSeq Pool, LCA Blood Vac, LCA Custom Pool, LCA Custom Pool Norm, LCA Bank Stock, LBC TCR LibPS, LBC TCR Pool Norm, LTHR Pool XP, LBB Lib Pool Stock, LBC 3pV3 GLibPS, scRNA Lib Pool, scRNA-384 Lib Pool XP, scRNA Lib Pool XP, LHR Lib Pool, and LHR Lib Pool XP + Cap Lib Pool Norm, CLCM DNA Pool, CLCM DNA Pool Norm, CLCM RNA Pool, CLCM RNA Pool Norm, GBS MiSeq Pool, GBS PCR Pool, GBS PCR Pool Selected, GBS PCR2 Pool Stock, GnT Pico Lib Pool, GnT Pico Lib Pool XP, LB Custom Pool, LB Custom Pool Norm, LB Lib Pool, LB Lib Pool Norm, LBB Lib Pool Stock, LBC 3pV3 GLibPS, LBC 5p GLibPS, LBC 5p Pool Norm, LBC BCR LibPS, LBC BCR Pool Norm, LBC TCR LibPS, LBC TCR Pool Norm, LBSN-384 PCR 2 Pool, LBSN-9216 Lib PCR Pool, LBSN-9216 Lib PCR Pool XP, LCA Bank Stock, LCA Blood Vac, LCA Custom Pool, LCA Custom Pool Norm, LCMB Custom Pool, LCMB Custom Pool Norm, LDS Custom Pool, LDS Custom Pool Norm, LHR Lib Pool, LHR Lib Pool XP, LHR-384 Pool XP, LRC Bank Seq, LRC Bank Spare, LRC Blood Aliquot, LRC Blood Vac, LTHR Pool XP, LTHR-384 Pool XP, LTN Custom Pool, LTN Custom Pool Norm, pWGS-384 Lib Pool XP, scRNA Lib Pool, scRNA Lib Pool XP, and scRNA-384 Lib Pool XP {StateChangers::TubeStateChanger View class documentation} diff --git a/docs/templates/creators.md.erb b/docs/templates/creators.md.erb index 8725ea898..a5b49525f 100644 --- a/docs/templates/creators.md.erb +++ b/docs/templates/creators.md.erb @@ -20,7 +20,7 @@ Labware creators are responsible for creating new labware from a parent labware. <% if used_creator[creator_class.name].present? %> Used directly in <%= used_creator[creator_class.name].length %> purposes: - <%= used_creator[creator_class.name].to_sentence %> + <%= used_creator[creator_class.name].sort_by(&:downcase).to_sentence %> <% else %> **This labware creator is unused** <% end %> diff --git a/docs/templates/presenters.md.erb b/docs/templates/presenters.md.erb index 195fc9526..143989e3e 100644 --- a/docs/templates/presenters.md.erb +++ b/docs/templates/presenters.md.erb @@ -22,7 +22,7 @@ Presenters are responsible for showing information about a piece of labware. <% if used_presenter[presenter_class.name].present? %> Used directly in <%= used_presenter[presenter_class.name].length %> purposes: -<%= used_presenter[presenter_class.name].to_sentence %> +<%= used_presenter[presenter_class.name].sort_by(&:downcase).to_sentence %> <% else %> **This presenter is unused** <% end %> diff --git a/docs/templates/state_changers.md.erb b/docs/templates/state_changers.md.erb index 4d032b409..743e8df67 100644 --- a/docs/templates/state_changers.md.erb +++ b/docs/templates/state_changers.md.erb @@ -21,7 +21,7 @@ manual transfer. <% if used_state_changer[state_changer_class.name].present? %> Used directly in <%= used_state_changer[state_changer_class.name].length %> purposes: - <%= used_state_changer[state_changer_class.name].to_sentence %> + <%= used_state_changer[state_changer_class.name].sort_by(&:downcase).to_sentence %> <% else %> **This state changer is unused** <% end %> diff --git a/lib/tasks/docs_update.rake b/lib/tasks/docs_update.rake index 8f0e43aab..d5c2802ad 100644 --- a/lib/tasks/docs_update.rake +++ b/lib/tasks/docs_update.rake @@ -9,7 +9,12 @@ namespace :docs do Settings.purposes.each_value do |purpose| used_presenter[purpose['presenter_class']] << purpose['name'] - used_creator[purpose['creator_class']] << purpose['name'] + + # If creator_class is a hash, then we get the name from the hash instead. + cls = purpose['creator_class'] + key = cls.is_a?(Hash) ? cls['name'] : cls + used_creator[key] << purpose['name'] + used_state_changer[purpose['state_changer_class']] << purpose['name'] end diff --git a/spec/factories/purpose_config_factories.rb b/spec/factories/purpose_config_factories.rb index dda780df8..64d09028f 100644 --- a/spec/factories/purpose_config_factories.rb +++ b/spec/factories/purpose_config_factories.rb @@ -239,6 +239,19 @@ ancestor_stock_tube_purpose_name { 'Ancestor Tube Purpose' } end + # Configuration to set number_of_source_wells argument + factory :pooled_wells_by_sample_in_groups_purpose_config do + transient { number_of_source_wells { 2 } } + creator_class do + { + name: 'LabwareCreators::PooledWellsBySampleInGroups', + args: { + number_of_source_wells: number_of_source_wells + } + } + end + end + # Basic tube purpose configuration factory :tube_config do asset_type { 'tube' } diff --git a/spec/models/labware_creators/pooled_wells_by_sample_in_groups_spec.rb b/spec/models/labware_creators/pooled_wells_by_sample_in_groups_spec.rb index 0a028779f..1e01eb37b 100644 --- a/spec/models/labware_creators/pooled_wells_by_sample_in_groups_spec.rb +++ b/spec/models/labware_creators/pooled_wells_by_sample_in_groups_spec.rb @@ -29,25 +29,20 @@ let(:child_plate) { create(:v2_plate, uuid: child_plate_uuid) } subject { described_class.new(api, form_attributes) } before do + # Create a purpose config for the plate (number_of_source_wells is 2) + create(:pooled_wells_by_sample_in_groups_purpose_config, uuid: child_purpose_uuid) allow(subject).to receive(:parent).and_return(parent_plate) stub_v2_plate(parent_plate, stub_search: false) stub_v2_plate(child_plate, stub_search: false) end describe '#number_of_source_wells' do - context 'when purpose_config includes number_of_source_wells' do - before { create(:purpose_config, uuid: child_purpose_uuid, number_of_source_wells: 3) } - - it 'returns the number of source wells from the purpose_config' do - expect(subject.number_of_source_wells).to eq(3) - end + before do + # Use a different purpose config for this test (number_of_source_wells is 3) + create(:pooled_wells_by_sample_in_groups_purpose_config, uuid: child_purpose_uuid, number_of_source_wells: 3) end - - context 'when purpose_config does not include number_of_source_wells' do - before { create(:purpose_config, uuid: child_purpose_uuid) } - it 'returns the default number of source wells' do - expect(subject.number_of_source_wells).to eq(2) - end + it 'returns the number of source wells from the purpose_config' do + expect(subject.number_of_source_wells).to eq(3) end end