sequencescape icon indicating copy to clipboard operation
sequencescape copied to clipboard

Y24-429 - Check feasibility of cDNA Prep submission

Open KatyTaylor opened this issue 4 months ago • 0 comments

User story

As a customer and SSR of the scRNA Core cDNA Prep pipeline, I want to be told at the point of submission if my requested pooling strategy is not feasible, so that I can adjust it at this stage (rather than getting to the point of pooling, when there is time pressure).

Who are the primary contacts for this story

Abby, Katy

Who is the nominated tester for UAT

Abby, Liz Huckle

Acceptance criteria

Consider if these features can be featured flagged to decouple testing and deployment.

On upload of the scRNA Core cDNA Prep submission, reject the submission with an informative error message if the following criteria are not met:

  • [ ] Total number of samples in the submission must be between 5 and 96 (inclusive).
  • [ ] Total (requested) number of pools must be between 2 and 8 (inclusive) (see Calculations for how)
  • [ ] The number of pools requested must be feasible given the number of samples, and having checked for donor clash (see Calculations for how)

On upload of the scRNA Core cDNA Prep submission, accept the submission but add an informative warning message if the following criteria are met:

  • [ ] There is not enough material for the "full allowance" (2 full runs on the chip) (See Calculations for how)

References

This story does some of the same calculations as https://github.com/sanger/limber/issues/1992.


Calculations

Calculating total number of pools

  • Split the rows into study-project groups.
  • The 'number of pools' applies at that level - grab one number for this column for each of those groups and add them up.
  • e.g. Study A-Project A asks for 1 pool, Study A-Project B asks for 2 pools, Study C-Project C asks for 5 pools --> total pools is 1 + 2 + 5 = 8 --> passes

Checking if the number of pools is feasible, given number of samples

For each study-project group:

  • Smallest pool = Number of samples / number of pools (floor division)
  • Biggest pool = Smallest pool + 1
  • e.g. 21 samples, 2 pools requested. Smallest pool will be 10, biggest pool 11.
  • Check both smallest pool and biggest pool are between 5 and 25 (inclusive).

Checking for donor clash

For each study-project group:

  • Group the samples by their donor id.
  • Find the biggest group (will be 1 if all samples have unique donor ids)
  • Check size of biggest group <= requested number of pools.

Checking if there is enough for 'full allowance'

Common constants / variables:

  • "Chip loading concentration" = 2,400

For each study-project combination:

Calculating "final resuspension volume":

  • "Total cells in 200ul" = ("Number of samples in smallest pool" * 30,000) * 0.952381
    • 30,000 is the fixed number of cells taken for each sample into the pool
    • 0.952381 is due to wastage when transferring between labware
  • "Final resuspension volume" = "Total cells in 200ul" / "Chip loading concentration"

Calculating "full allowance":

  • "Chip loading volume" = "Number of cells per chip well" / "Chip loading concentration"

  • "Full allowance" = ( "Chip loading volume" * 2) + 25

    • 2 is because this is for 2 runs
    • 25 is 2 lots of 10ul for cell counting, and 5ul for wastage when transferring between labware

KatyTaylor avatar Oct 25 '24 10:10 KatyTaylor