sanger / gatekeeper

Gatekeeper is used to track the production and validation of batches of tag plates for sequencing. It is designed to interface with the Sequencescape LIMS.
MIT License
0 stars 5 forks source link

GPL-720 Closing the gate(keeper) - nice (C: M, V: 4) #100

Open JamesGlover opened 3 years ago

JamesGlover commented 3 years ago

Description Gatekeeper was originally developed as a tag QC tool. However changes in tag procurement mean that this process is no longer used. As a result the following functionality of gatekeeper is unused:

Lot type usage:

name    times_used  last_used
IDT Tags    33  2020-08-19 07:44:28
IDT Reporters   2   2016-04-01 08:27:39
Tag 2 Tubes 66  2018-06-18 10:38:47
Pre Stamped Tags    114 2020-10-12 16:12:50
Pre Stamped Tags - 384  58  2020-10-07 13:56:16

Unused features:

  1. The ability to create lots of 'created' plates. (Last used 2020-08-19, but this appears to have been in error, as the plates were never progressed. Last actual usage appears to have been 2018-06-28, It has been used 9 time in error since then)
  2. The ability to bed-verify and record the stamping out of a lot into multiple child plates. (Last used 2018-08-16)
  3. The ability to make a QC decision, releasing a batch of plates for usage in the lab. (Last used 2018-08-29)
  4. A workflow for combining reporters and tags in a QC process. (Last used 2018-08-20 09:13:09)
  5. The ability to look up a lot via a sequencing batch. (Not tracked per-se, but part of the qc decision process, so would have also been August 2018)
  6. The ability to create Tag tubes (Last used 2018-06-18)

This comprises the entire QC functionality of Gatekeeper, and calls into question the need to maintain a seperate tool, now that the prime driver for its creation is now redundant.

Used functionality:

  1. The ability to create lots of pre-stamped tag plates in 96 well or 384 well format. This: a) Records the lot number, the date it arrived, and the tag layout associated with the plates. b) Records the plates in Sequencescape, such that they may later be looked up by Limber c) Provides a means to print of barcodes for registered plates d) Provides a means of flagging individual tag plates as 'exhausted' indicating that they should not be used. e) Handles automatically upload of an IDT spreadsheet, and the registration of plates contained within using the IDT supplied barcodes. f) Overview of lot state, showing how many tag plate remain unused.

Misleading legacy: a) The association of a the physical piece of labware with a lot occurs through a 'qcable'. This is no longer used to track QC state, although the name has traveled beyond Sequencescape, so we'll need to be careful if we try to rename it.

We should evaluate if it still makes sense to maintain gatekeeper as a separate app, considering all the used functionality could be contained within a single Sequencescape controller.

Who the primary contacts are for this work e.g. James Glover

Knowledge or Stake holders Jamieson L, Mike Q, R&D

Additional context or information Any other useful context or information that may be useful.

JamesGlover commented 2 years ago

Note: CSV parsing could probably be handled in JS. This would remove issues Mike has experiences with particularly large files.

JamesGlover commented 2 years ago

Most of the required gatekeeper functionality is contained within ActiveRecord objects.

Lot => The lot itself (Point 1a) QcableCreator => Builds Qcables (Ie. Tag plates) for a lot (1b) StateChange => Flagging plates as exhausted/failed etc. (1d)