Available LabwareCreators
Note This file is generated automatically by
rake docs:update
and should be generated automatically if you runrake config:generate
in development. If you wish to modify the file, updatedocs/templates/creators.md.erb
instead. The description of each class is pulled directly from the class itself.
Labware creators are responsible for creating new labware from a parent labware.
LabwareCreators::Base
rubocop:todo Style/Documentation
This labware creator is unused
LabwareCreators::StampedPlate
Simply creates a new plate of the specified purpose and transfers material across in a direct stamp. (ie. The location of a sample on the source plate is the same as the location on the destination plate.)
Used directly in 109 purposes: CLCM DNA End Prep, CLCM DNA Lib PCR XP, CLCM RNA End Prep, CLCM RNA Lib PCR XP, CLCM RT PreAmp, GBS Stock, GBS-96 Stock, GnT MDA Norm, GnT Pico End Prep, GnT Pico-XP, GnT scDNA, GnT Stock, LB Cap Lib, LB Cap Lib PCR, LB Cap Lib PCR-XP, LB cDNA, LB cDNA XP, LB Cherrypick, LB End Prep, LB Lib PCR-XP, LB Post Shear, LB Shear, LBB Cherrypick, LBB Lib-XP, LBB Ligation, LBC 3pV3 GEX Frag 2XP, LBC 3pV3 GEX PCR 2XP, LBC 5p GEX Frag 2XP, LBC 5p GEX PCR 2XP, LBC BCR Enrich1 2XSPRI, LBC BCR Enrich2 2XSPRI, LBC BCR Post PCR, LBC Stock, LBC TCR Enrich1 2XSPRI, LBC TCR Enrich2 2XSPRI, LBC TCR Post PCR, LBR Cherrypick, LBR Frag, LBR Frag cDNA, LBR Globin, LBR Globin DNase, LBR mRNA Cap, LBR Ribo DNase, LBR RiboGlobin DNase, LCA 10X cDNA, LCA PBMC, LCA PBMC Bank, LCMB Cherrypick, LCMB End Prep, LCMB Lib PCR-XP, LDS AL Lib, LDS Cherrypick, LDS Lib PCR XP, LDS Stock, LDS Stock XP, LHR End Prep, LHR PCR 1, LHR PCR 2, LHR RT, LHR-384 AL Lib, LHR-384 End Prep, LHR-384 PCR 1, LHR-384 PCR 2, LHR-384 RT, LHR-384 XP, LRC HT 5p cDNA PCR, LRC HT 5p cDNA PCR XP, LRC HT 5p Chip, LRC HT 5p GEMs, LRC PBMC Defrost PBS, LSW-96 Stock, LTHR PCR 1, LTHR PCR 2, LTHR RT-S, LTHR-384 PCR 1, LTHR-384 PCR 2, LTN AL Lib, LTN Cherrypick, LTN Lib PCR XP, LTN Post Shear, LTN Shear, LTN Stock, LTN Stock XP, PF Cherrypicked, PF End Prep, PF Lib XP, PF Lib XP2, PF Post Shear, PF Post Shear XP, PF Shear, PF-384 End Prep, PF-384 Lib XP2, pWGS-384 AL Lib, pWGS-384 End Prep, RVI Cap Lib, RVI Cap Lib PCR, RVI Cap Lib PCR XP, RVI cDNA XP, RVI Cherrypick, RVI Lib PCR XP, RVI Lig Bind, RVI RT, scRNA cDNA-XP, scRNA End Prep, scRNA Stock, scRNA-384 cDNA-XP, scRNA-384 End Prep, scRNA-384 Stock, and Tag Plate - 384
LabwareCreators::CardinalPoolsPlate
This class is used for creating Cardinal pools into destination plate
Used directly in 1 purposes: LCA PBMC Pools
LabwareCreators::PooledTubesBase
Creates a new tube per pool, and transfers from wells into that pool Leaves the pooling logic - allocation of wells to pools - to subclasses to implement TODO: transfer_request_attributes currently assumes the pool identifier is the submission uuid - this should be changed
This labware creator is unused
LabwareCreators::CustomTaggedPlate
Duplicate of TaggedPlate Creator to allow configuration to be built independently of behaviour.
Used directly in 8 purposes: 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::DonorPoolingPlate
This labware creator receives barcodes for a configured number of source plates from the user. It pools samples from the passed wells into a destination plate. It’s used for scRNA Donor Pooling to create ‘LRC PBMC Pools’ plates from ‘LRC PBMC Defrost PBS’ plates.
The creator imposes restrictions:
-
It doesn’t allow combining samples from different studies or projects.
-
It doesn’t allow samples with the same donor_id in the same pool.
-
All wells must have cell count data unless they are failed.
-
The number of pools must not exceed the number configured for the samples.
The number of pools is determined by a lookup table based on sample count. Tag depth index is added to aliquot attributes to avoid tag clashes.
Used directly in 1 purposes: LRC PBMC Pools
LabwareCreators::FinalTube
The final tubes form handles the transfer to the Multiplexed Library Tube that gets generated upfront when the submission is made. It has two behaviours: 1) For single plate pools it generates the new tube immediately 2) For cross-plate pools (such as dual index) it prompts the user to scan
all tubes in the submission
This check is based on the contents of sibling_tubes in the json
Used directly in 1 purposes: LB Lib Pool Norm
LabwareCreators::FinalTubeFromPlate
The tubes are also passed automatically. This behaviour is a time-saving (for the users) measure based on limitations of the existing pipeline, and may be removed in future. Essentially, as used currently, the tubes are ACTUALLY part of the previous plate, so are already filled by this stage.
Used directly in 1 purposes: Cap Lib Pool Norm
LabwareCreators::MultiPlatePool
Multiple parent plates are transferred onto a single child plate During this process wells are pooled according to the pre-capture pools specified at submission.
Used directly in 2 purposes: LB Lib PrePool and RVI Lib PrePool
LabwareCreators::MultiStamp
rubocop:todo Style/Documentation
This labware creator is unused
LabwareCreators::MultiStampTubes
rubocop:todo Style/Documentation, Metrics/ClassLength
Used directly in 3 purposes: LCA Blood Array, LCA Blood Bank, and LRC Blood Bank
LabwareCreators::MultiStampTubesUsingTubeRackScan
Handles the creation of a plate from a number of tubes using an uploaded tube rack scan file.
The parents are standard tubes.
The user uploads a tube rack scan of the tube barcodes and their positions, and this creator will transfer the tubes into wells on the plate.
Inputs: 1) A parent tube - the user has clicked the add plate button on a specific tube 2) A tube rack scan CSV file - this is a scan of the rack of 2D tube barcodes (the rack is not being tracked)
Outputs: 1) A child plate - tubes are stamped into corresponding locations in the plate according to the scan file
Validations - Error message to users if any of these are not met: 1) The user must always upload a scan file. Validations of the file must pass and it should parse correctly and contain at least one tube barcode. 2) The tube barcodes must be unique within the file (exclude NO SCAN, NO READ types). 3) The scanned child tube barcode(s) must already exist in the system. List any that do already exist with tube barcode and scan file location. 4) The labware purpose type of each tube must match the one of the expected ones from a list in the plate purpose config. List any that do not match with tube barcode, scan file location and purpose type, and list the expected type(s). 5) The request on the tube must be active, and must match to one of the expected ones from a list in the plate purpose config. This is to check that the tubes are at the appropriate stage of their pipeline to transfer.
rubocop:disable Metrics/ClassLength
Used directly in 1 purposes: LRC PBMC Cryostor
LabwareCreators::PlateSplitToTubeRacks
Handles the creation of up to 2 child racks of tubes from a single parent 96-well plate. Intended for use in a PBMC cell extraction pipeline.
There will typically be one rack of tubes for ‘contingency’ and one for ‘sequencing’ (this rack is optional).
The parent plate contains multiple copies of material prepared from the same sample. One well instance of each sample will go into a tube in the ‘sequencing’ rack (if present), and any remaining copies will go into tubes in the ‘contingency’ rack.
If after the initial preparation the users feel they need more contingency tubes, then they will go back to prepare more material for that sample from an earlier step in the pipeline and create just ‘contingency’ tubes at this step.
Inputs: 1) The parent plate - This plate contains multiple groups of wells containing the same samples e.g.
there may be 3 wells with sample 1, 3 with sample 2, 3 with sample 3 etc. The number of copies of
each sample is not known in advance.
The first of these parent wells will be transferred into a tube in the 'sequencing' rack if it is
present, and any remaining parent wells for the same sample will be transferred into tubes in the
'contingency' rack.
2) Child tube rack scan CSV files - these are scans of racks of 2D tube barcodes from the ‘contingency’
and 'sequencing' tube racks, to allow us to know the position and barcode of each available tube.
On the upload screen displays counts of how many tubes are needed (e.g. To perform this transfer you
will either need 20 sequencing and 40 contingency tubes, or 60 contingency tubes.)
Validations - Error message to users if any of these are not met: 1) The user must always upload a scan file for the ‘contingency’ rack tube barcodes, whereas the
'sequencing' rack file is optional.
2) The scanned child tube barcodes must be unique and must not already exist in the system i.e. they are
new unused empty tubes. List any that do already exist with rack type and location.
3) The number of tubes available in the racks must be correct for the number of parent wells being
transferred. e.g. if there are 20 distinct samples in the parent and 40 additional copies (60 wells
total), then there must be 20 tubes in the first rack and 40 in the second rack.
rubocop:disable Metrics/ClassLength
Used directly in 2 purposes: LRC Bank Seq and LRC Bank Spare
LabwareCreators::PlateWithTemplate
rubocop:todo Style/Documentation
Used directly in 2 purposes: LB Cap Lib Pool and RVI Cap Lib Pool
LabwareCreators::PooledTubesFromWholePlates
Pools one or more plates into a single tube. Useful for MiSeqQC
Used directly in 2 purposes: GBS PCR2 Pool Stock and LBSN-384 PCR 2 Pool
LabwareCreators::PooledTubesFromWholeTubes
Pools one or more source tubes into a single tube. Provides an inbox list on the left hand side of the page listing available tubes (tubes of the correct type).
Used directly in 2 purposes: GBS MiSeq Pool and LBSN-9216 Lib PCR Pool
LabwareCreators::PooledWellsBySampleInGroups
This labware creator pools PBMC isolations with the same samples in pairs (or configured number of source wells) per destination before cell counting to reduce the number runs on Celleca (cell counting). The robot transfer is done from LRC Blood Bank to LRC PBMC Bank plate. Only the wells with passed state will be transferred to the destination plate. The destination wells are compressed to top left by column on the plate.
Used directly in 1 purposes: LRC PBMC Bank
LabwareCreators::TaggedPlate
Handles transfer of material into a pre-existing tag plate, created via Gatekeeper. It performs a few actions: 1) Updates the state of the tag plate to flag the resource as exhausted
(Tag plates delegate their state to the qcable)
2) Converts the tag plate to a new plate purpose 3) Transfers the material from the parent, into the converted tag plate (Now the child) 4) Applies the tag template that was associated with the tag plate
Used directly in 21 purposes: 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, RVI Lib PCR, scRNA Lib PCR, and scRNA-384 Lib PCR
LabwareCreators::TubeFromTube
For simple tube to tube transfers
Used directly in 17 purposes: 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::Uncreatable
Purposes with the Uncreatable creator can’t be created, so will not appear in the ‘Other plates’ dropdown. This should be reserved for labware which will fail to function correctly if created through Limber. In practice this class behaves just like the base creator, but has been sub-classed to better communicate its intent.
Used directly in 9 purposes: CLCM Stock, LCA Blood Vac, LDW-96 Stock, LILYS-96 Stock, LRC Blood Vac, LRC PBMC Pools Input, LTHR Cherrypick, LTHR RT, and LTHR-384 RT
LabwareCreators::BaitedPlate
In ISC pipeline. Provides a user with a preview of the expected bait library layout Creates a new plate, which is a stamp of the parent. Applies the bait library to the aliquots of the plate in accordance with the baits specified at submission.
Used directly in 2 purposes: LB Hyb and RVI Hyb
LabwareCreators::PartialStampedPlate
This is an abstract class not intended to be used directly. It holds the shared behaviour from its subclasses. These creators require functionality to handle a partial submission of wells on their parent plate, and use a well filter to select those wells with requests that have the correct request type, library type and request state. Each sub-class should override the dilutions_calculator.
This labware creator is unused
LabwareCreators::ConcentrationNormalisedPlate
Handles the generation of plates where the source plate wells are normalised but are not rearranged on the target plate (stamped). The normalisation goal is to have a specific amount of DNA in the target wells (e.g. 50ng). This amount to be in a specific target volume (e.g. 20ul). There is also a minimum volume of source to take *e.g. 0.2ul). The highest concentrated samples will have the minimum volume taken and be topped up with diluent. The lowest concentrated samples will take the maximum volume with no diluent. Once the normalisation is calculated the target wells are stamped onto the target plate without binning or rearrangement.
Used directly in 2 purposes: LBC BCR Dil 2 and LBC TCR Dil 2
LabwareCreators::MergedPlate
Merges plates together into a single child plate, and de-duplicates aliquots if they are identical.
Used directly in 4 purposes: LHR XP, LHR-384 cDNA, LTHR Lib PCR pool, and LTHR-384 Lib PCR pool
LabwareCreators::PartialStampedPlateWithoutDilution
These creators handle a partial submission of wells on their parent plate, and use a well filter to select those wells with requests that have the correct request type, library type and request state.
Used directly in 4 purposes: LBB Enriched BCR, LBB Enriched BCR HT, LBB Enriched TCR, and LBB Enriched TCR HT
LabwareCreators::PcrCyclesBinnedPlateBase
Handles the generation of a plate with wells binned according to the number of PCR cycles that has been determined by the customer. Uploads a file supplied by the customer that has a row per each well. Uses the PCR Cycles column to determine the binning arrangement of the wells, and the Sample Volume and Diluent Volume columns in the well transfers. Values from some columns need to be stored for a later file export step downstream in the pipeline. Wells in the bins are applied to the destination by column order. If there is enough space on the destination plate each new bin will start in a new column. Otherwise bins will run consecutively without gaps.
Source Plate Dest Plate --
–+–~ --
–+–~ |A1| pcr_cycles = 12 (bin 2) |B1|A1|C1| --
–+–~ --
–+–~ |B1| pcr_cycles = 15 (bin 1) |D1|E1| | --
–+–~ + --
–+–~ |C1| pcr_cycles = 10 (bin 3) | |G1| | --
–+–~ --
–+–~ |D1| pcr_cycles = 15 (bin 1) | | | | --
–+–~ --
–+–~ |E1| pcr_cycles = 12 (bin 2) | | | | --
–+–~ --
–+–~ |G1| pcr_cycles = 12 (bin 2) | | | |
This labware creator is unused
LabwareCreators::PlateWithPrimerPanel
A primer panel is a collection of primers used to amplify specific regions of DNA for the purposes of genotyping. It is specified at submission, and should be consistent across the entire plate
This labware creator is unused
LabwareCreators::QuadrantSplitPlate
Splits a 384 well plate into four separate 96 well plates.
Used directly in 1 purposes: PF Lib Q-XP2
LabwareCreators::StampedPlateAddingRandomisedControls
Stamps the majority of samples from the parent plate straight into the child plate (A1 to A1, B1 to B1 etc.). Also creates and adds a number of randomised control samples according to configuration from the plate purpose. NB. This was specifically made for adding 2 controls in Bioscan Lysate plates, with specific sample metdata, and is fairly specific for that purpose.
Used directly in 1 purposes: LBSN-96 Lysate
LabwareCreators::ConcentrationBinnedPlate
Handles the generation of a concentration binned plate. For each well on the source plate we use the concentration entered via QuantHub to decide which bin and therefore which well the sample will be transferred to on the destination plate. N.B. Concentrations uploaded to QuantHub and used in the binning config below need to be in ng/ul (nanograms per microlitre). The binning parameters are retrieved from the plate purpose configuration. The volume multiplier is applied to the concentration to give the total amount of DNA/RNA in the well. Wells in the bins are applied to the destination by column. If there is enough space on the destination each new bin will start in a new column. Otherwise bins will run consecutively without gaps. Colour and cycle information in the configuration is used by the plate presenter to clearly display the bins and show keys.
Eg. source_volume: 10, diluent_volume: 25, bins: [
{
colour: 1,
pcr_cycles: 16,
max: 25
},
{
colour: 2,
pcr_cycles: 12,
min: 25,
max: 500
},
{
colour: 3,
pcr_cycles: 8,
min: 500
}
]
Source Plate Dest Plate --
–+–~ --
–+–~ |A1| conc=4.3 x10=43 (bin 2) |B1|A1|C1| --
–+–~ --
–+–~ |B1| conc=1.2 x10=12 (bin 1) |D1|E1| | --
–+–~ + --
–+–~ |C1| conc=67.2 x10=672 (bin 3) | |G1| | --
–+–~ --
–+–~ |D1| conc=2.1 x10=21 (bin 1) | | | | --
–+–~ --
–+–~ |E1| conc=33.7 x10=337 (bin 2) | | | | --
–+–~ --
–+–~ |G1| conc=25.9 x10=259 (bin 2) | | | |
Used directly in 1 purposes: LBC 3pV3 GEX Dil
LabwareCreators::FixedNormalisedPlate
Handles the generation of fixed normalised plate. This type of plate has a source and diluent volume specified in the purpose configuration. Wells are stamped across without any rearrangements. The child well concentrations are calculated and written as qc_results on the plate.
Used directly in 2 purposes: LBC BCR Dil 1 and LBC TCR Dil 1
LabwareCreators::NormalisedBinnedPlate
Handles the generation of plates where the source plate wells are normalised and rearranged by bins onto the target plate. The normalisation goal is to have a specific amount of DNA in the target wells (e.g. 50ng). This amount to be in a specific target volume (e.g. 20ul). There is also a minimum volume of source to take *e.g. 0.2ul). The highest concentrated samples will have the minimum volume taken and be topped up with diluent. The lowest concentrated samples will take the maximum volume with no diluent. Once the normalisation is calculated the target wells are arranged according to bins of total amount present, and different numbers of pcr cycles assigned to each bin to attempt to further normalise the samples. The library preparation Submission may only be for some of the wells on the plate. We use a well filter on library type to select only those wells that have a request for the required library type.
Used directly in 1 purposes: LBC 5p GEX Dil
LabwareCreators::PcrCyclesBinnedPlateForDuplexSeq
Handles the generation of a plate with wells binned according to the number of PCR cycles that has been determined by the customer. Uploads a file supplied by the customer that has a row per each well and includes Sample Volume, Diluent Volume, PCR Cycles, Sub-Pool and Coverage columns. Uses the PCR Cycles column to determine the binning arrangement of the wells, and the Sample Volume and Diluent Volume columns in the well transfers. Sub-Pool and Coverage need to be stored for a later step downstream in the pipeline, at the point where custom pooling is performed. Wells in the bins are applied to the destination by column order. If there is enough space on the destination plate each new bin will start in a new column. Otherwise bins will run consecutively without gaps.
Source Plate Dest Plate --
–+–~ --
–+–~ |A1| pcr_cycles = 12 (bin 2) |B1|A1|C1| --
–+–~ --
–+–~ |B1| pcr_cycles = 15 (bin 1) |D1|E1| | --
–+–~ + --
–+–~ |C1| pcr_cycles = 10 (bin 3) | |G1| | --
–+–~ --
–+–~ |D1| pcr_cycles = 15 (bin 1) | | | | --
–+–~ --
–+–~ |E1| pcr_cycles = 12 (bin 2) | | | | --
–+–~ --
–+–~ |G1| pcr_cycles = 12 (bin 2) | | | |
Used directly in 1 purposes: LDS AL Lib Dil
LabwareCreators::PcrCyclesBinnedPlateForTNanoSeq
This version of the class is specific to the Targeted NanoSeq pipeline.
Used directly in 1 purposes: LTN AL Lib Dil
LabwareCreators::CustomPooledTubes
Allows the user to create custom pooled tubes. The user may create an arbitrary number of tubes, with 1 or more wells in each. An individual well may contribute to more than one tube. Layout is specified by uploading the same CSV which will be used to drive the robot.
Used directly in 7 purposes: CLCM DNA Pool, CLCM RNA Pool, LB Custom Pool, LCA Custom Pool, LCMB Custom Pool, LDS Custom Pool, and LTN Custom Pool
LabwareCreators::PooledTubesBySample
Pools from a plate into tubes, grouping together wells that contain the same sample NB. Currently this is specific to the Cardinal usage of FluidX tubes
Used directly in 1 purposes: LCA Bank Stock
LabwareCreators::PooledTubesBySubmission
Creates a new tube per submission, and transfers all the wells matching that submission into each tube.
Used directly in 12 purposes: 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::PooledTubesBySubmissionWithPhiX
Includes the addition of PhiX, a specific type of control sample. User scans SpikedBuffer tube containing PhiX into an interstitial page, on tube creation. SpikedBuffer tube is recorded as a parent of the newly created tube(s).
Used directly in 2 purposes: LTHR Pool XP and LTHR-384 Pool XP
LabwareCreators::MultiStampLibrarySplitter
rubocop:todo Style/Documentation
Used directly in 2 purposes: CLCM Lysate DNA and CLCM Lysate RNA
LabwareCreators::QuadrantStampBase
Basic quadrant stamp behaviour, applies no special request filters See MultiStamp for further documentation
Handles the generation of 384 well plates from 1-4 96 well plates.
Briefly, 96 well plates get stamped onto 384 plates in an interpolated pattern eg. where P1-4 is Plate 1-4 --
–--
–--
–+–~ |P1|P3|P1|P3|P1|P3|P1 |A1|A1|A2|A2|A3|A3|A4 --
–--
–--
–+–~ |P2|P4|P2|P4|P2|P4|P1 |A1|A1|A2|A2|A3|A3|A4 --
–--
–--
–+–~ |P1|P3|P1|P3|P1|P3|P1 |B1|B1|B2|B2|B3|B3|B4 --
–--
–--
–+–~ |P2|P4|P2|P4|P2|P4|P1 |B1|B1|B2|B2|B3|B3|B4
The transfers layout ‘quadrant’ described above is implemented client side.
This labware creator is unused
LabwareCreators::TenStamp
rubocop:todo Style/Documentation
Used directly in 2 purposes: LBC Aggregate and LBC Cherrypick
LabwareCreators::QuadrantStamp
Used directly in 4 purposes: LBSN-384 PCR 1, LTHR-384 RT-Q, PF-384 Post Shear XP, and pWGS-384 Post Shear XP
LabwareCreators::QuadrantStampPrimerPanel
rubocop:todo Style/Documentation
Used directly in 1 purposes: GBS PCR1