sanger / General-Backlog-Items

Broad bucket to collate backlog items that have no obvious repository
0 stars 0 forks source link

Y24-264 - ANOSPP - Options for Addition of Controls on the Lysate plate #438

Open andrewsparkes opened 4 weeks ago

andrewsparkes commented 4 weeks ago

Description As Michael B, I would like PSD to estimate the stories required and development cost for different possibilities around adding controls to Lysate plates in the ANOSPP pipeline.

Being discussed (not exclusive):

  1. Both controls randomised vs one fixed and one randomised (like in Bioscan)
  2. No sample movement (losing samples) vs moving displaced samples to the empty wells at location G12 and/or H12 (to save as many samples as possible)
  3. Whether lab could periodically run a controls plate through the pipeline and what would be involved in accommodating that

Scott T will be considering the changes required on the lab side e.g. changes required for the Beckman liquid handler robot method.

Acceptance Criteria

Who the primary contacts are for this work Michael B

Knowledge or Stake holders Scott T Andrew S Katy T

Additional context or information ANOSPP is a short pipeline leading into the existing GBS library prep pipeline. See the test in integration suite for anospp for the best idea of how it works. It has some similarity to Bioscan lysate prep, but currently no controls are added. This discussion is about adding functionality to include controls on the Lysate plate. NB. ANOSPP is not live yet, and config files are still WIP flagged, plus there is a shared bed verification with GBS to deploy changes for (see PR link). The integration suite scenario is currently set to be skipped in UAT because of this bed verification.

See this document about ANOSPP controls discussion document link

Point 1 - control randomisation: The labware creator StampedPlateAddingRandomisedControls in Limber used in Bioscan for creating the LBSN-96 Lysate plate is configured in the plate purpose as to number of controls, type, and whether they should be placed in randomised or fixed locations. This may just work as it is for use in ANOSPP, whether they prefer both controls to be randomised or just one (both were tested during Bioscan development). Check if there is anything Bioscan-specific in the labware creator preventing re-use and estimate cost to change if required.

The API endpoint in Lighthouse for the robot method to fetch the location of the controls may contain Bioscan-specific validations about expected plate purpose type and types of controls. Likely to need a new version of this endpoint for ANOSPP, but that should be minimal effort, check what's involved. I believe we tested the endpoint through Postman so we could use a similar approach to testing this. See PR link.

Point 2 - sample movement: The labware creator StampedPlateAddingRandomisedControls in Limber used in Bioscan for creating the LBSN-96 Lysate plate decides on the position of the controls and simply displaces any sample in that position (it is not transferred to the child, and the request for Lysate prep is cancelled). What they would prefer is not to lose that displaced sample for each control. They are proposing to leave G12 and H12 empty, to leave space on the Lysate plate to receive the displaced samples. So the labware creator would determine if G12 and/or H12 are empty (not all plates have both wells empty, some may not have either empty) and move displaced samples into those empty locations. Moved samples would not have their Lysate prep requests cancelled. So when creating the Lysate child plate the transfer requests are modified to account for these movements, rather than simply stamping all (non-displaced) samples across. Estimate the effort required to create a new version of this LabwareCreator that moves displaced samples (extend existing class?).

The API endpoint in Lighthouse would need to respond with the additional information of which samples were moved to where, in addition to the control information. e.g.

Example 1 (neither positive or negative control are in G12 or H12)

{
    "barcode": barcode,
    "sample_moves": { "A12": "G12", "D5": "H12" },
    "positive_control": "A12",
    "negative_control": "D5"
}

Example 2 (one of the positive or negative controls are in G12 or H12)

{
    "barcode": barcode,
    "sample_moves": { "D5": "H12" },
    "positive_control": "G12",
    "negative_control": "D5"
}

Example 3 (both of the positive and negative controls are in G12 or H12)

{
    "barcode": barcode,
    "sample_moves": {},
    "positive_control": "G12",
    "negative_control": "H12"
}

Estimate the size of these changes.

Option 3: Running a controls plate through periodically Scott T suggested an option to validate quality of sequencing results would be to periodically run a 'controls' plate through the pipeline. This could be created by manifest and contain 'control' type samples rather than standard samples. Ideally it would be in place of the initial stock plate and go through the Lysate prep to more accurately receive the same treatment as a normal insect sample plate. Or possibly it could come in as a GBS-96 Stock plate at the start of the GBS library prep part of the pipeline (after lysate plate prep).

Consider how that would work and what changes might be needed for those 2 entry points. e.g. if the plate is full of controls, would you want to still replace 2 of them with the controls on the Beckman robot when creating the Lysate plate? What would be needed to skip that control addition step in the labware creator? how would we know this was a controls plate? etc. Could we use a different plate purpose for example, and simply record a stamp of it into the Lysate plate. Or fix the control addition to go into 2 empty wells? Probably need to discuss this further with Scott T as to whether it's a feasible idea from the lab point of view and how it might be set up.

TWJW-SANGER commented 2 weeks ago

I don't see option 3 in the Controls Recommendation section of the "ANOSPP GBS Process Control Technical Evaluation" document. I presume that means we don't need it?

KatyTaylor commented 2 weeks ago

Draft stories

1a - labware creator - no sample relocation - Small

1b - labware creator - with sample relocation - Medium

2 - plate states - Small

3a - API endpoint - no sample relocation - Small

3b - API endpoint - with sample relocation - Medium

4 - H12 empty manifest - Small

What's needed for each option

Option 1a - both randomised, with no sample relocation

Option 1b - both randomised, with sample relocation

Option 2 - one fixed, one randomised

TWJW-SANGER commented 1 week ago

Waiting on decision on which option to implement.