Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support for Taqman / hydrolysis / multi-colour probes #31

Open
ewallace opened this issue Mar 15, 2020 · 2 comments
Open

Support for Taqman / hydrolysis / multi-colour probes #31

ewallace opened this issue Mar 15, 2020 · 2 comments
Labels
enhancement New feature or request good first issue Good for newcomers help wanted Extra attention is needed

Comments

@ewallace
Copy link
Collaborator

ewallace commented Mar 15, 2020

Current edition of tidyqpcr works for SYBR safe experiments, i.e. 1 probe in 1 colour per well. The other major approach to qPCR is hydrolysis probes (TaqMan), which has multiple probes measured in different wavelengths per well. tidyqpcr should cope with this fine, but the plate plans & display_plate will need adapting. We may need a new function to read multicolour data.

Help wanted! Good first issue for someone with Taqman data, especially from a Roche Lightcycler.

@ewallace ewallace added enhancement New feature or request help wanted Extra attention is needed good first issue Good for newcomers labels Mar 15, 2020
@ewallace ewallace changed the title Support for Taqman / multi-colour probes Support for Taqman / hydrolysis / multi-colour probes Apr 20, 2020
@ewallace
Copy link
Collaborator Author

ewallace commented Sep 4, 2020

We need a user with multi-colour data in order to make any progress. All the users we have interviewed so far use single-colour qPCR, so this has been a low priority. We emailed some colleagues for help, and can revisit or reprioritise later.

Help wanted - if you want this feature, please get in touch!

@ramiromagno
Copy link

If {tidyqpcr} is to handle multi-colour probes, then, for amplification curves, we will need a tibble with the following columns:

  • plate
  • well
  • fluorophore/probe (or some more generic name that works both for intercalating dyes and probes)
  • cycle
  • fluor

From what I read in your README I know you are trying to stick to tibbles only. But I think it would be very beneficial to use two S3 classes to represent amplification curves and melting curves. They can be built on top of tibbles, and all the logic you have planned will still work. But having a class attribute would allow us to perform checks that inevitably we will have to do. Currently, in your code you seem to be doing these checks by a series of assertions, e.g.:

    assertthat::assert_that(
        assertthat::has_name(
            plateamp,
            c("well", "program_no", "cycle", "fluor_raw"))
    )
    assertthat::assert_that(
        !assertthat::has_name(plateamp,"fluor_base"),
        msg = "plateamp contains a variable called fluor_base, which breaks debaseline"
    )

In the long run I think this will be brittle. So why not just create two S3 classes, perhaps "qpcr_ampl" and "qpcr_melt"? And then have validator functions that check column existence for each for the two types of tibbles?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request good first issue Good for newcomers help wanted Extra attention is needed
Projects
None yet
Development

No branches or pull requests

2 participants