sanger / limber

A config-driven LIMS built on Sequencescape, primarily for running library preparation pipelines in the laboratory
MIT License
4 stars 8 forks source link

GPL-962 Add bed verifications for C-LCM, Duplex Seq, and Targeted NanoSeq #701

Closed harrietc52 closed 3 months ago

harrietc52 commented 3 years ago

User story As Ops we would like to add bed verifications to various pipelines.

Story came from research story GPL-917

Who are the primary contacts for this story Ben F Liz E Harriet Andrew

Acceptance criteria To be considered successful the solution must allow:

Bed verification # 1 Robot: Bravo From: LB Stock or LB Cherrypickplate (Bed 4) To: LB End Prep (Hotel 1-4). Info: Currently, source plate is Standard Stock (plate from CASM) which optionally goes into LCMB Cherrypick (in CASM Labs) or into LCMB Cherrypick (in our Labs), so either plate (LCMB Stock or LCMB Cherrypick) can be the start point for pipeline. Q. Is the support for the source plate being either Stock, or Stock and then Cherrypick, required for the Story 1, or shall this support be added in Story 2? It’s another ‘nice to have’. Ops can keep working as they are but having a human put labels on top of labels is a potential source of error. (tell Ben this might not be necessary to re print from a LIMS perspective). Currently, cannot have an input plate that may can also be midway in pipeline. But both plates do transfer onto Frag. So have both input plates configured. Update from Liz E (27.04.21) "Story 1: The ability to start from either stock plate or Cherry-Pick would be great and would reduce the possibilities of mix up. Sticking labels over labels is never a good solution."

Bed verification # 2 Robot: Bravo From: LB End Prep Bed 6. To: LB End Prep Bed 5. Info: They want to scan back onto robot, same position, to check it is in the correct location after the thermocycler. (stamp into). Meaning there is no transfer, but hopefully done in other robots to check how. E.g in robots.rb bravo-lhr-384-end-prep is checking the plate is put back with verify_robot: true, and the bed verification before that (bravo-setup-lhr-384-xp-to-lhr-384-end-prep-to-lhr-384-al-lib) is checking plate require_robot: true "The end prep plate comes from bed 6 not bed 5, but we don’t need to track where it’s come from just need to verify it’s gone on the correct location (bed 5) and there’s been no mixups (make sure the robot scanned matches the robot scanned during bed verification #1" (Ben F)

Bed verification # 3 ?? Robot: Bravo From: LB End Prep To: LB Lib PCR Info: Stamp into Q. What tags are used? The PCR tag plates that we use are: TS_pWGSA_UDI96v2, TS_pWGSB_UDI96, TS_pWGSC_UDI96, TS_pWGSD_UDI96 (Jamie) Q. Is bed verification required from “LB End Prep” to “LB Lib PCR”? No, this stage is the same as the other 96 well library preps so presumably you can copy one on those e.g RNAA.

Bed verification # 4 Robot: Hamiltons (in Post)

Single From: LB Lib PCR (Bed 7) To: LB Lib PCR-XP (Bed 9)

2-plate run From: LB Lib PCR (Bed 7) To: LB Lib PCR-XP (Bed 9) From: LB Lib PCR (Bed 12) To: LB Lib PCR-XP (Bed 14)

andrewsparkes commented 3 years ago

We don't seem to have an 'LB Stock' purpose in the Limber configs. 'LB Cherrypick' is the start of the current WGS pipeline and Ben said they just print the 'LB Cherrypick' label and stick it over the label of the stock plate that they get from CASM. I think we can easily add an optional 'LB Stock' purpose prior to, or as an alternative to, the 'LB Cherrypick' purpose, but I may be wrong. Not hard to test by changing the Limber configs.

'LB End Prep' is the current name for the step after 'LB Cherrypick' for LCMB, it skips the LB Shear and LB Post Shear steps. In your above notes, anywhere you name a purpose 'LCMB LB xxx', the name is currently 'LB xxx'.

There's a task missing: Update the Integration suite to test the bed verifications.

harrietc52 commented 3 years ago

Email Ben: Q. Can CPick references in diagram be changed to Cherrypick? = cherrypick can be used Q.Is it just the Library submission made on the cherrypick? Yes And the sequencing request is made at the custom pooling stage, correct? Ops mail the SSRs a link to the MX norm tube they’ve created. The SSRs then add a sequencing request to that tube. Q. Is the support for the source plate being either Stock, or Stock and then Cherrypick, required for the Story 1, or shall this support be added in Story 2? It’s another ‘nice to have’. Ops can keep working as they are but having a human put labels on top of labels is a potential source of error. Q. Will source cherrypick and stock plates be LCMB or LB? Q. Check if bed verification 3 is required? No, this stage is the same as the other 96 well library preps so presumably you can copy one on those e.g RNAA.

Email to Jamie: Q. (for Jamie) Email - Tags are also added at this point (bed verification 3) Check if we have full list of tags or if there is another tag for shotgun (custom pooling?) with _temp on the end. Or is this one TS_pWGSA_UDI96v2?

Q. (for @JamesGlover can we restrict the bed verifications to just the LCMB request type? So that not all flavours of WGS have the bed verifications required? No - robots have no understanding of pipelines currently. Give new pipelines new purposes

harrietc52 commented 3 years ago

Integration Suite

Add integration suite task for LCMB WGS pipeline, as it is at the moment

Similar to wgs_pipeline_spec.rb with modifications to match how it is remove shears add new robot verfication from above change ending so using custom pooling instead of multiplex (duplex seq pipeline does customer pooling so we can check)

ElizabethEasthope commented 2 years ago

Hi, Would it be possible to pick this story back up. The line is quite complex and we have had an issue where the plate was return to the deck in the wrong location resulting in a robot brake. The engineer had to be called and the automation was out of action for a few days while it waited repair. Is there chance to get this back on the priority list? Thanks Liz

andrewsparkes commented 1 year ago

For Bed verification 1:

NB. There is no 'LCMB Cherrypick' purpose currently defined. Only 'LB Cherrypick'. There is a problem transferring from one input plate to another. Can we just define the LCMB Stock (input) as a source for transfer into the LCMB Shear (so no need to re-label)? So the Cherrypick is no longer an input plate? So routes are:

LCMB Stock (input) to LCMB Shear or LCMB Stock (input) to LCMB Cherrypick to LCMB Shear

So in the pipeline file in Limber (for WGS config/pipelines/high_throughput_wgs.yml):

relationships:
    LB Cherrypick: LB Shear

becomes:

relationships:
    LB Cherrypick: LB Shear
    LB Stock: LB Shear

Q. How do CASM access/use our plate purposes? Do they know a plate is going to LCMB or does that plate have to be a generic 'stock' plate purpose?

For Bed verification 2:

We already have these defined:

custom_robot(
      'bravo-lb-end-prep',
      name: 'bravo LB End Prep',
      verify_robot: true,
      beds: {
        bed(7).barcode => {
          purpose: 'LB End Prep',
          states: ['started'],
          label: 'Bed 7',
          target_state: 'passed'
        }
      }
    )

    bravo_robot do
      from 'LB End Prep', bed(7)
      to 'LB Lib PCR', bed(6)
    end

So is this ok? The story is talking about beds 5 and 6, not 7.

andrewsparkes commented 1 year ago

For bed verification 3: This one is already in place for LB.

For bed verification 4: You do not need to define two distinct bed verifications, for single and double versions. Just the double is enough. Bed verification code allows for just running one pair then.

andrewsparkes commented 1 year ago

When the LCMB is split off with its own plate purposes, these bed verifications will all need to be copied and the LCMB plate purposes used in the copies. (Limber works by adding bed verification buttons to the labware page that match to the purpose of the labware. e.g. if you are viewing an LB End Prep plate, you will see any bed verifications that include mention of the LB End Prep purpose. So this in turn means you cannot have a bed verification show solely for the LCMB pipeline, whilst the plate purposes are still shared with WGS (both are using the same purposes). Once the LCMB pipeline is split off and its purposes changed to have a prefix LCMB, then you could diverge the bed verifications if needed.

andrewsparkes commented 1 year ago

It might make sense to do this story and GPL-963 Make LCMB own pipeline #702 at the same time, with a new LCMB integration suite test in Gitlab (see WGS one at spec/limber/wgs_pipeline_spec.rb in the Integration Suite repo).

andrewsparkes commented 1 year ago

Take care when adding bed verifications for Plate purposes starting 'LB'. The LB plate purposes are shared amongst multiple pipelines, and it may not be appropriate for the bed verification to be present for all pipeline usages of those purposes in Limber. It is better when the purposes have distinct prefixes for specific pipelines so no overlaps.

SujitDey2022 commented 1 year ago

Need to split the user-story into 3, each for the corresponding bed verification pipeline. The content of the story/acceptance criteria is legacy and needs to be reviewed and refined to meet the current requirements.

SujitDey2022 commented 1 year ago

Discussed this with Sara W. and it was identified that there is a need to further refine and possibly split the user story. Awaiting further response from Short Read.