Closed ewallace closed 2 years ago
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
Briefly describe any working relationship you have (had) with the package authors.
[X] As the reviewer I confirm that there are no conflicts of interest for me to review this work (if you are unsure whether you are in conflict, please speak to your editor before starting your review).
The package includes all the following forms of documentation:
URL
, BugReports
and Maintainer
(which may be autogenerated via Authors@R
).Estimated hours spent reviewing: 12
Description :
Selected results found using devtools::spell_check()
calculate_dydx_1()
- why _1 ?
label_plate_rowcol()
- I can’t find an example that works without coercefactors=TRUE, so is it necessary as an argument? I found it a bit confusing since in the plate creation you are making the plate row and columns as factors. I also found the warning about the transformation to factors confusing as I thought that I had done something wrong when constructing the plate.
display_plate(create_blank_plate_1536well())
does not work which I can understand. Is there anything planned or could it just be done by colour after a certain size to show a bit the planning of a plate? Not sure this is useful.
In the examples in display_plate and display_well_value there are calls to “library(dplyr)”, I think this would be better as dplyr::.
What about the functions in plot_helpers? Where should they be used? It is not clear to me how they integrate in the package even though I could imagine they would be useful for some of the plots one may want to produce with these data. The code formatting and styling could be improved in this file (plot_helpers.R).
Overall the naming of functions was very consistent and made it easy to understand the functions.
Would it be possible to add very brief and basic usage to the Readme? I think that the vignette "Delta Cq 96-well plate qPCR analysis example" is a nice example of a workflow that anyone with qPCR data could use so maybe something basic could be adapted from this vignette?
The Pkgdown website is not up to date, but that should be taken care of once the package is accepted by rOpenSci.
Nice use of @family for the plate functions.
Is there a reason that the data sets have been kept in inst/extdata and not as datasets in data/ ? Just curious. One reason I could see is that you want to keep the original file formats as examples for the users. However the disadvantage is that the loading is slightly less easy for users (but perhaps this is negligible) and the datasets are not documented in an R/data.R file. This is not a request, but just a question for you. :)
I also found the length of the functions to be very manageable and I think this sets the package up nicely for new additions and any desired improvements in the future.
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
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?
@ewallace absolutely, thank you!
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
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
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?
Not urgent, but can be fixed if desired.
In test-calculate_efficiency.R, I think that wrapping the function call on line 29 in suppressWarnings() would help with the interpretation of the tests here. Otherwise you get two warnings, but the warnings are not related to the test results and this could be confusing to the tester.
label_plate_rowcol() - is not actually tested with a plate with well_col or well_row that are not factors. Do you think it would be important to test this? (This is not facetious or sarcastic comment, just genuinely thinking about it)
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:
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.
@ropensci-review-bot submit review https://github.com/ropensci/software-review/issues/470#issuecomment-1114160848 time 12
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
@ropensci-review-bot approve tidyqpcr
Approved! Thanks @ewallace for submitting and @kelshmo for your reviews! :grin:
To-dos:
@ropensci-review-bot invite me to ropensci/<package-name>
which will re-send an invitation.@ropensci-review-bot finalize transfer of <package-name>
where <package-name>
is the repo/package name. This will give you admin access back.pkgdown
website and are ok relying only on rOpenSci central docs building and branding,
pkgdown
website with a redirecting pagehttps://docs.ropensci.org/package_name
URL
field alongside the link to the GitHub repository, e.g.: URL: https://docs.ropensci.org/foobar, https://github.com/ropensci/foobar
codemetar::write_codemeta()
in the root of your package.install.packages("<package-name>", repos = "https://ropensci.r-universe.dev")
thanks to R-universe.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.
@ropensci-review-bot finalize transfer of tidyqpcr
Transfer completed.
The tidyqpcr
team is now owner of the repository and the author has been invited to the team
Thank you @jooolia.
These are all addressed in a branch pending review...
@ropensci-review-bot give codecov access to ropensci/tidy
I'm sorry human, I don't understand that. You can see what commands I support by typing:
@ropensci-review-bot help
@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.
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)
@ropensci-review-bot help
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
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.