ropensci / software-review

rOpenSci Software Peer Review.
291 stars 104 forks source link

Submission tidyqpcr - Quantitative PCR analysis in the tidyverse #470

Closed ewallace closed 2 years ago

ewallace commented 2 years ago

Date accepted: 2022-06-10 Submitting Author Name: Edward Wallace Submitting Author Github Handle: !--author1-->@ewallace<!--end-author1-- Other Package Authors Github handles: !--author-others-->@DimmestP<!--end-author-others-- Repository: https://github.com/ewallace/tidyqpcr Version submitted: 0.3.0 Submission type: Standard Editor: !--editor-->@jooolia<!--end-editor-- Reviewers: !--reviewers-list-->@kelshmo<!--end-reviewers-list--

Due date for @kelshmo: 2021-11-19 Archive: TBD Version accepted: TBD --- - Paste the full DESCRIPTION file inside a code block below: ``` Package: tidyqpcr Type: Package Title: Quantitative PCR Analysis with the Tidyverse Version: 0.3 Authors@R: c(person("Edward", "Wallace", email = "Edward.Wallace@ed.ac.uk", role = c("aut", "cre")), person("Sam", "Haynes", email = "samuel.haynes10@gmail.com", role = c("ctb"))) Description: This package is for reproducible quantitative PCR (qPCR) analysis using packages from the tidyverse, notably dplyr and ggplot2. It normalizes (by ddCq), summarizes, and plots pre-calculated Cq data, and plots raw amplification and melt curves from Roche LightCycler machines. It does NOT (yet) calculate Cq data from amplification curves. Depends: R (>= 3.1.0), tibble, tidyr Imports: rlang, dplyr, ggplot2, readr, forcats, assertthat, lifecycle Suggests: knitr, rmarkdown, tidyverse, cowplot, testthat VignetteBuilder: knitr License: Apache License 2.0 + file LICENSE LazyData: true RoxygenNote: 7.1.1 Encoding: UTF-8 URL: https://github.com/ewallace/tidyqpcr, https://ewallace.github.io/tidyqpcr/ BugReports: https://github.com/ewallace/tidyqpcr/issues Language: en-GB ``` ## Scope - Please indicate which category or categories from our [package fit policies](https://ropensci.github.io/dev_guide/policies.html#package-categories) this package falls under: (Please check an appropriate box below. If you are unsure, we suggest you make a pre-submission inquiry.): - [ ] data retrieval - [ ] data extraction - [ ] data munging - [ ] data deposition - [ ] workflow automation - [ ] version control - [ ] citation management and bibliometrics - [ ] scientific software wrappers - [x] field and lab reproducibility tools - [ ] database software bindings - [ ] geospatial data - [ ] text analysis - Explain how and why the package falls under these categories (briefly, 1-2 sentences): tidyqpcr is an R package that empowers scientists to conduct reproducible, flexible, and best-practice compliant quantitative polymerase chain reaction (qPCR) analysis. tidyqpcr offers a standardised user interface and structure for qPCR analysis, within the tidyverse paradigm of spreadsheet-like rectangular data frames and generic functions that build up complex analyses in a series of simple steps. - Who is the target audience and what are scientific applications of this package? Any molecular biologist or bioinformatician who needs to design or analyse a qPCR experiment. Quantitative PCR is among the most common techniques in biological and biomedical re- search, used for the quantification of DNA and RNA. Standardised and open-source qPCR analysis pipelines will encourage best-practices in the reporting of qPCR results, improve the evaluation of qPCR experiments and ultimately lead to increased confidence in conclusions based on qPCR data. - Are there other R packages that accomplish the same thing? If so, how does yours differ or meet [our criteria for best-in-category](https://ropensci.github.io/dev_guide/policies.html#overlap)? Some open-source libraries for qPCR analysis are available, notably [qpcR](https://github.com/anspiess/qpcR) (Spiess, 2018) and [pcr](https://github.com/MahShaaban/pcr) (Ahmed & Kim, 2018). qpcR is a feature rich qPCR analysis package relying on an object-oriented approach using S4 classes. pcr is a less extensive qPCR analysis package based on the tidyverse suite of generic data-science tools using the paradigm of tidy data (spreadsheet-like rectangular data frames). However, available packages either assume extensive prior R knowledge, overlook best-practices in qPCR experiments, or lack extensive documentation. There remains a need for a qPCR analysis package that integrates with the user-friendly tidyverse, encourages the use of MIQE best-practice compliant experimental design, and provides detailed example analysis pipelines as R vignettes. - (If applicable) Does your package comply with our [guidance around _Ethics, Data Privacy and Human Subjects Research_](https://devguide.ropensci.org/policies.html#ethics-data-privacy-and-human-subjects-research)? Not applicable. - If you made a pre-submission inquiry, please paste the link to the corresponding issue, forum post, or other discussion, or @tag the editor you contacted. We presented tidyqpcr on the rOpenSci discussion page which [Stefanie Butland and Sean Hughes](https://discuss.ropensci.org/t/tidyqpcr-for-quantitative-pcr-analysis-pre-presubmission-community-enquiry/2056) kindly responded to. In response to @seaaan ’s comments we improved the vignettes, stuck to a consistent function naming convention and added functionality to calculate ddCq. We intend to add further functionality in future versions including: support for absolute quantification, support for multiple targets per well, and enabling the use of the plater package. In email correspondence with Stefanie, we believe Julia Gustavsen would be a perfect editor for our project as they reviewed Sean’s [plater](https://github.com/ropensci/software-review/issues/60) package. As for reviewers, we think someone with experience in conducting assays for RNA/DNA quantification and normalisation would be of benefit because of the emphasis on experimental design best-practices. ## Technical checks Confirm each of the following by checking the box. - [x] I have read the [guide for authors](https://devguide.ropensci.org/guide-for-authors.html) and [rOpenSci packaging guide](https://devguide.ropensci.org/building.html). This package: - [x] does not violate the Terms of Service of any service it interacts with. - [x] has a CRAN and OSI accepted license. - [x] contains a [README with instructions for installing the development version](https://ropensci.github.io/dev_guide/building.html#readme). - [x] includes [documentation with examples for all functions, created with roxygen2](https://ropensci.github.io/dev_guide/building.html#documentation). - [x] contains a vignette with examples of its essential functions and uses. - [x] has a [test suite](https://ropensci.github.io/dev_guide/building.html#testing). - [x] has [continuous integration](https://ropensci.github.io/dev_guide/ci.html), including reporting of test coverage using services such as Travis CI, Coveralls and/or CodeCov. ## Publication options - [x] Do you intend for this package to go on CRAN? - [ ] Do you intend for this package to go on Bioconductor? - [ ] Do you wish to submit an Applications Article about your package to [Methods in Ecology and Evolution](http://besjournals.onlinelibrary.wiley.com/hub/journal/10.1111/(ISSN)2041-210X/)? - [x] Do you wish to submit an Applications Article about your package to Journal of Open Source Software? We have included a paper.md file in the repository as per JOSS instructions to authors. ## Code of conduct - [x] I agree to abide by [rOpenSci's Code of Conduct](https://ropensci.github.io/dev_guide/policies.html#code-of-conduct) during the review process and in maintaining my package should it be accepted.
jooolia commented 2 years ago

Package Review

Please check off boxes as applicable, and elaborate in comments below. Your review is not limited to these topics, as described in the reviewer guide

Documentation

The package includes all the following forms of documentation:

Functionality

Estimated hours spent reviewing: 12


Review Comments

Description :

Spell check

Selected results found using devtools::spell_check()

Comments on specific functions

Overall comments

Thanks for your patience with this process. I think the easiest is that once the addressable comments are completed that you could add a comment to this issue with the different commits used to reply to the different issues (for example something like this).

Thanks, Julia

ewallace commented 2 years ago

Thank you @jooolia! We will work on these in some issue tickets and get back to you as soon as we can.

@kelshmo, may we also acknowledge you as a package reviewer in the DESCRIPTION file?

kelshmo commented 2 years ago

@ewallace absolutely, thank you!

ewallace commented 2 years ago

Dear @jooolia,

We have finished updating tidyqpcr in response to your comments:

We created a new tag tidyqpcr v0.5, for the latest version.

We hope that we have fully addressed all your points, and look forward to your feedback.

Yours, Sam and Edward

jooolia commented 2 years ago

Dear @ewallace, Thanks for all your work and comments. I am having a look, but have been slowed down by devtools::check() exiting with status 1 (no problems with R CMD check after R CMD build). I think it is something on my end, but I would like to understand what is happening. I will get back to you again on Friday. thanks, Julia

jooolia commented 2 years ago

Hi @ewallace ,

Thanks for all the work and for the comment pointing us to your updates. I haven't figured out what was causing me to have a exit status 1 with running "check" from the build window. I will ask about this on the rOpenSci slack. R CMD check and devtools::check() from the console are fine.

Regarding the package I have a few more little comments:

What is the story on the plot_helpers functions? Will these be further developed or incorporated in the future?

URLs:

Not urgent, but can be fixed if desired.

In platesetup_vignette.Rmd

In the README.md

Tests

Code

dplyr joins:

In most uses of the "joins" in dplyr the "by" is specified according to good practice, however there are a few cases where they are not:

examples:

ewallace commented 2 years ago

Hi @jooolia,

Thank you for this thorough check, it has helped a lot and given us more opportunity for improvements. @DimmestP and I have addressed these:

We hope that's everything for the review process? Let us know.

Also we are open to suggestions as to whether it is better to share via CRAN or via Bioconductor. I really don't know.

jooolia commented 2 years ago

@ropensci-review-bot submit review https://github.com/ropensci/software-review/issues/470#issuecomment-1114160848 time 12

jooolia commented 2 years ago

Dear @ewallace and @DimmestP, Thanks for all your hard work. 👍 This looks good to me. Since @kelshmo has already approved I will approve this and we can move forward with the next steps.

Regarding CRAN vs. Bioconductor, my personal opinion is that it depends on your targeted users, dependencies and perhaps future plans for the package. Many rOpenSci packages are on CRAN. Right now I am aware (thanks to @maelle 's help) of two rOpenSci pacakges that are on Bioconductor: https://docs.ropensci.org/genbankr/ and https://github.com/YuLab-SMU/treeio . Both CRAN and Bioconductor have their own "gotchas" as detailed in dev guide sections 1.16 and 1.17 https://devguide.ropensci.org/building.html?q=bioconductor#bioconductor-gotchas

jooolia commented 2 years ago

@ropensci-review-bot approve tidyqpcr

ropensci-review-bot commented 2 years ago

Approved! Thanks @ewallace for submitting and @kelshmo for your reviews! :grin:

To-dos:

Should you want to acknowledge your reviewers in your package DESCRIPTION, you can do so by making them "rev"-type contributors in the Authors@R field (with their consent).

Welcome aboard! We'd love to host a post about your package - either a short introduction to it with an example for a technical audience or a longer post with some narrative about its development or something you learned, and an example of its use for a broader readership. If you are interested, consult the blog guide, and tag @ropensci/blog-editors in your reply. She will get in touch about timing and can answer any questions.

We maintain an online book with our best practice and tips, this chapter starts the 3d section that's about guidance for after onboarding (with advice on releases, package marketing, GitHub grooming); the guide also feature CRAN gotchas. Please tell us what could be improved.

Last but not least, you can volunteer as a reviewer via filling a short form.

ewallace commented 2 years ago

@ropensci-review-bot finalize transfer of tidyqpcr

ropensci-review-bot commented 2 years ago

Transfer completed. The tidyqpcr team is now owner of the repository and the author has been invited to the team

ewallace commented 2 years ago

Thank you @jooolia.

These are all addressed in a branch pending review...

ewallace commented 2 years ago

@ropensci-review-bot give codecov access to ropensci/tidy

ropensci-review-bot commented 2 years ago

I'm sorry human, I don't understand that. You can see what commands I support by typing:

@ropensci-review-bot help

mpadge commented 2 years ago

@ewallace We're just tring to find out why help isn't working there. Regardless, codecov access should be automatic with your first push to the repo in the ropensci org. I checked there and it's all set up properly. We'll fix the help issue in the meantime. Thanks.

ewallace commented 2 years ago

Thank you @mpadge!

I was sufficiently confused to put a discussion point on adding codecov access to the dev guide and/or making it easier to know who to ask for help https://discuss.ropensci.org/t/staff-admin-team-codecov/2982

(apologies, I deleted the failed @ropensci-review-bot help after deciding it wasn't working)

maelle commented 2 years ago

@ropensci-review-bot help

ropensci-review-bot commented 2 years ago

Hello @maelle, here are the things you can ask me to do:


# Add a review's info to the ROpenSci logs
@ropensci-review-bot submit review <REVIEW_URL> time <REVIEW_HOURS(ex. 10.5)>

# List all available commands
@ropensci-review-bot help

# Show our Code of Conduct
@ropensci-review-bot code of conduct

# Switch to "seeking reviewers"
@ropensci-review-bot seeking reviewers

# Approves a package. This command will close the issue.
@ropensci-review-bot approve package-name

# Adds package's repo to the rOpenSci team. This command should be issued after approval and transfer of the package.
@ropensci-review-bot finalize transfer of package-name

# Mint package as [bronze/silver/gold]
@ropensci-review-bot mint silver

# Add a user to this issue's reviewers list
@ropensci-review-bot assign xxxxx as reviewer

# Remove a user from the reviewers list
@ropensci-review-bot remove xxxxx from reviewers

# Assign a user as the editor of this submission
@ropensci-review-bot assign @username as editor

# Put the submission on hold for the next 90 days
@ropensci-review-bot put on hold

# Remove the editor assigned to this submission
@ropensci-review-bot remove editor

# Change or add a review's due date for a reviewer
@ropensci-review-bot set due date for @reviewer to YYYY-MM-DD

# Close the issue
@ropensci-review-bot out of scope

# Various package checks
@ropensci-review-bot check package