software-review
software-review copied to clipboard
spiro: Manage Data from Cardiopulmonary Exercise Testing
Submitting Author Name: Simon Nolte Submitting Author Github Handle: @smnnlt Repository: https://github.com/smnnlt/spiro Version submitted: 0.0.5 Submission type: Standard Editor: @melvidoni Reviewers: @jameshunterbr, @manuramon
Due date for @jameshunterbr: 2022-07-11Due date for @manuramon: 2022-07-22
Archive: TBD Version accepted: TBD
Language: en
- Paste the full DESCRIPTION file inside a code block below:
Package: spiro
Title: Manage Data from Cardiopulmonary Exercise Testing
Version: 0.0.5
Authors@R:
person(given = "Simon",
family = "Nolte",
role = c("aut", "cre"),
email = "[email protected]",
comment = c(ORCID = "0000-0003-1643-1860"))
Description: Import, process, summarize and visualize raw data from
metabolic carts.
License: MIT + file LICENSE
URL: https://github.com/smnnlt/spiro, https://smnnlt.github.io/spiro/
BugReports: https://github.com/smnnlt/spiro/issues
Encoding: UTF-8
LazyData: true
Roxygen: list(markdown = TRUE)
RoxygenNote: 7.2.0
Imports:
ggplot2,
xml2,
readxl,
knitr,
cowplot,
digest,
signal
Suggests:
testthat (>= 3.0.0),
rmarkdown,
ggborderline
VignetteBuilder: knitr
Config/testthat/edition: 3
Scope
-
Please indicate which category or categories from our package fit policies this package falls under: (Please check an appropriate box below. If you are unsure, we suggest you make a pre-submission inquiry.):
- [ ] data retrieval
- [X] data extraction
- [X] data munging
- [ ] data deposition
- [ ] data validation and testing
- [ ] workflow automation
- [ ] version control
- [ ] citation management and bibliometrics
- [ ] scientific software wrappers
- [ ] 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):
The spiro package allows to read and process data from raw data files of different metabolic carts.
- Who is the target audience and what are scientific applications of this package?
This package is primarily written for researchers in exercise science, who want to make their analysis of cardiopulmonary exercise testing more standardized, reproducible and faster. It may also be used in a commercial context (e.g., training diagnostics business).
- Are there other R packages that accomplish the same thing? If so, how does yours differ or meet our criteria for best-in-category?
The whippr package has a different approach to the same problem. Compared to whippr, spiro has a more automated and simpler data workflow (basically one function for reading and processing data, and one function for summarizing or plotting). spiro has several relevant additional features, that whippr does not have: Automated detection and manual generation of exercise test protocols; data summary by load steps; adding and synchronizing external heart rate data; import of raw data file meta data; advanced data filtering methods (e.g., Butterworth filters; moving breath averages); Wasserman 9-Panel-Plots. Compared to whippr, the spiro package does not offer methods for VO2 kinetics analysis and automated outlier removal.
- (If applicable) Does your package comply with our guidance around Ethics, Data Privacy and Human Subjects Research?
This package works with cardiopulmonary exercise data, which is per se sensitive health data. Meta data from the original raw data files is read and anonymized by default (with the exception of data on body mass, which is necessary to perform certain calculations of variables). The anonymization can optionally be deactivated by means of a function argument [spiro(anonymize = FALSE)], so that meta data is saved alongside the processed data. This may be helpful in some settings when there is no intent to share the data. Sharing of the resulting data in such situations could potentially reveal personal information, which is why this option is not activated by default.
- 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.
#537
- Explain reasons for any
pkgcheck
items which your package is unable to pass.
Technical checks
Confirm each of the following by checking the box.
- [X] I have read the rOpenSci packaging guide.
- [X] I have read the author guide and I expect to maintain this package for at least 2 years or to find a replacement.
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.
- [X] includes documentation with examples for all functions, created with roxygen2.
- [X] contains a vignette with examples of its essential functions and uses.
- [X] has a test suite.
- [X] has continuous integration, 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? If so:
MEE Options
- [ ] The package is novel and will be of interest to the broad readership of the journal.
- [ ] The manuscript describing the package is no longer than 3000 words.
- [ ] You intend to archive the code for the package in a long-term repository which meets the requirements of the journal (see MEE's Policy on Publishing Code)
- (Scope: Do consider MEE's Aims and Scope for your manuscript. We make no guarantee that your manuscript will be within MEE scope.)
- (Although not required, we strongly recommend having a full manuscript prepared when you submit here.)
- (Please do not submit your package separately to Methods in Ecology and Evolution)
Code of conduct
- [X] I agree to abide by rOpenSci's Code of Conduct during the review process and in maintaining my package should it be accepted.
Thanks for submitting to rOpenSci, our editors and @ropensci-review-bot will reply soon. Type @ropensci-review-bot help
for help.
:rocket:
Editor check started
:wave:
Checks for spiro (v0.0.5)
git hash: 92301b28
- :heavy_check_mark: Package name is available
- :heavy_check_mark: has a 'codemeta.json' file.
- :heavy_check_mark: has a 'contributing' file.
- :heavy_check_mark: uses 'roxygen2'.
- :heavy_check_mark: 'DESCRIPTION' has a URL field.
- :heavy_check_mark: 'DESCRIPTION' has a BugReports field.
- :heavy_check_mark: Package has at least one HTML vignette
- :heavy_multiplication_x: These functions do not have examples: [bw_filter, get_features, get_testtype, guess_device, knit_print.spiro, print.spiro, spiro_import_cortex, spiro_import_cosmed, spiro_import_vyntus, spiro_import_zan, spiro_interpolate, spiro_smooth].
- :heavy_multiplication_x: Function names are duplicated in other packages
- :heavy_check_mark: Package has continuous integration checks.
- :heavy_check_mark: Package coverage is 91.3%.
- :heavy_check_mark: R CMD check found no errors.
- :heavy_check_mark: R CMD check found no warnings.
Important: All failing checks above must be addressed prior to proceeding
Package License: MIT + file LICENSE
1. Package Dependencies
Details of Package Dependency Usage (click to open)
The table below tallies all function calls to all packages ('ncalls'), both internal (r-base + recommended, along with the package itself), and external (imported and suggested packages). 'NA' values indicate packages to which no identified calls to R functions could be found. Note that these results are generated by an automated code-tagging system which may not be entirely accurate.
type | package | ncalls |
---|---|---|
internal | base | 311 |
internal | spiro | 139 |
internal | utils | 121 |
internal | stats | 55 |
internal | mgcv | 1 |
imports | ggplot2 | 51 |
imports | xml2 | 9 |
imports | readxl | 6 |
imports | signal | 2 |
imports | cowplot | 1 |
imports | knitr | NA |
imports | digest | NA |
suggests | testthat | NA |
suggests | rmarkdown | NA |
suggests | ggborderline | NA |
linking_to | NA | NA |
Click below for tallies of functions used in each package. Locations of each call within this package may be generated locally by running 's <- pkgstats::pkgstats(<path/to/repo>)', and examining the 'external_calls' table.
base
c (57), data.frame (24), file (23), list (18), which (16), as.numeric (13), nrow (12), max (10), seq_along (10), attr (8), raw (8), rep.int (8), round (7), length (6), diff (5), lapply (5), range (5), vapply (5), as.data.frame (4), cbind (4), names (4), switch (4), drop (3), for (3), is.na (3), suppressWarnings (3), colnames (2), do.call (2), mean (2), min (2), numeric (2), rep (2), rev (2), rownames (2), split (2), strsplit (2), suppressMessages (2), unique (2), anyDuplicated (1), apply (1), as.character (1), character (1), duplicated (1), factor (1), grepl (1), levels (1), list.files (1), ls (1), mapply (1), paste0 (1), rbind (1), row.names (1), seq_len (1), seq.int (1), sum (1), system.file (1), unlist (1)
spiro
get_data (29), get_meta (10), spiro_smooth (10), get_sex (4), to_seconds (4), to_number (3), add_bodymass (2), add_protocol (2), bw_smooth_extract (2), calo.internal (2), check_bb (2), dupl (2), get_id (2), get_smooth_data (2), get_wrongcol_string (2), getstepmeans (2), gettime (2), hr_import (2), import_xml (2), replace_intna (2), smooth_match (2), spiro_import (2), spiro_interpolate (2), spiro_interpolate.internal (2), spiro_plot.guess_units (2), spiro_plot.internal (2), add_hr (1), bw_filter (1), calo (1), const (1), get_features (1), get_protocol (1), get_testtype (1), guess_device (1), hr_interpolate (1), knit_print.spiro (1), mavg (1), pre (1), print.spiro (1), set_protocol (1), set_protocol_manual (1), set_protocol_manual.data.frame (1), set_protocol_manual.default (1), spiro (1), spiro_anonymize (1), spiro_example (1), spiro_import_cortex (1), spiro_import_cosmed (1), spiro_import_vyntus (1), spiro_import_zan (1), spiro_max (1), spiro_plot (1), spiro_plot_EQ (1), spiro_plot_EQCO2 (1), spiro_plot_HR (1), spiro_plot_Pet (1), spiro_plot_RER (1), spiro_plot_VE (1), spiro_plot_vent (1), spiro_plot_VO2 (1), spiro_plot_vslope (1), spiro_smooth.internal (1), spiro_summary (1), steps (1), theme_spiro (1)
utils
data (106), read.delim (7), head (5), read.csv (3)
stats
smooth (20), time (13), approx (7), df (7), reshape (5), filter (2), end (1)
ggplot2
aes (20), ggplot (8), labs (7), scale_colour_manual (5), scale_y_continuous (3), sec_axis (3), aes_ (2), scale_color_manual (1), scale_fill_manual (1), theme_minimal (1)
xml2
xml_find_all (3), xml_text (3), read_xml (2), xml_children (1)
readxl
read_excel (6)
signal
butter (1), filtfilt (1)
cowplot
plot_grid (1)
mgcv
s (1)
NOTE: Some imported packages appear to have no associated function calls; please ensure with author that these 'Imports' are listed appropriately.
2. Statistical Properties
This package features some noteworthy statistical properties which may need to be clarified by a handling editor prior to progressing.
Details of statistical properties (click to open)
The package has:
- code in R (100% in 15 files) and
- 1 authors
- 2 vignettes
- no internal data file
- 7 imported packages
- 31 exported functions (median 20 lines of code)
- 103 non-exported functions in R (median 15 lines of code)
Statistical properties of package structure as distributional percentiles in relation to all current CRAN packages The following terminology is used:
-
loc
= "Lines of Code" -
fn
= "function" -
exp
/not_exp
= exported / not exported
All parameters are explained as tooltips in the locally-rendered HTML version of this report generated by the checks_to_markdown()
function
The final measure (fn_call_network_size
) is the total number of calls between functions (in R), or more abstract relationships between code objects in other languages. Values are flagged as "noteworthy" when they lie in the upper or lower 5th percentile.
measure | value | percentile | noteworthy |
---|---|---|---|
files_R | 15 | 73.0 | |
files_vignettes | 2 | 85.7 | |
files_tests | 11 | 91.7 | |
loc_R | 1563 | 79.1 | |
loc_vignettes | 208 | 50.8 | |
loc_tests | 275 | 62.3 | |
num_vignettes | 2 | 89.2 | |
n_fns_r | 134 | 83.0 | |
n_fns_r_exported | 31 | 79.2 | |
n_fns_r_not_exported | 103 | 84.4 | |
n_fns_per_file_r | 5 | 67.1 | |
num_params_per_fn | 2 | 11.9 | |
loc_per_fn_r | 16 | 49.2 | |
loc_per_fn_r_exp | 20 | 46.7 | |
loc_per_fn_r_not_exp | 15 | 49.5 | |
rel_whitespace_R | 17 | 77.3 | |
rel_whitespace_vignettes | 37 | 54.2 | |
rel_whitespace_tests | 18 | 55.9 | |
doclines_per_fn_exp | 32 | 36.7 | |
doclines_per_fn_not_exp | 0 | 0.0 | TRUE |
fn_call_network_size | 124 | 82.6 |
2a. Network visualisation
Click to see the interactive network visualisation of calls between objects in package
3. goodpractice
and other checks
Details of goodpractice checks (click to open)
3a. Continuous Integration Badges
GitHub Workflow Results
id | name | conclusion | sha | run_number | date |
---|---|---|---|---|---|
2462665426 | pages build and deployment | success | 33cc31 | 26 | 2022-06-08 |
2459834392 | pkgdown | success | 92301b | 68 | 2022-06-08 |
2459834396 | R-CMD-check | failure | 92301b | 40 | 2022-06-08 |
2459834394 | test-coverage | success | 92301b | 39 | 2022-06-08 |
3b. goodpractice
results
R CMD check
with rcmdcheck
rcmdcheck found no errors, warnings, or notes
Test coverage with covr
Package coverage: 91.29
Cyclocomplexity with cyclocomp
No functions have cyclocomplexity >= 15
Static code analyses with lintr
lintr found no issues with this package!
4. Other Checks
Details of other checks (click to open)
:heavy_multiplication_x: The following 4 function names are duplicated in other packages:
-
-
const
from arpr, CMLS, labdsv, sketch, timereg
-
-
-
get_id
from CVXR, epicontacts, eventr, IOHanalyzer, panelr, rbenvo, rmonad, seqmagick
-
-
-
pre
from DAMisc, html5, htmltools, pre, supernova, yonder
-
-
-
steps
from amt, ddpcr, fitbitr, shiny.semantic
-
Package Versions
package | version |
---|---|
pkgstats | 0.0.4.75 |
pkgcheck | 0.0.3.60 |
Editor-in-Chief Instructions:
Processing may not proceed until the items marked with :heavy_multiplication_x: have been resolved.
Hi, I have added examples and renamed the functions that may lead to namespace conflicts.
Thanks @smnnlt , we've recently added an ability for submitting authors to directly call ˋ@ropensci-review-bot check packageˋ. Feel free to give that a try, to re-run the checks. (You'd get to be the first author to do so :rocket:)
@ropensci-review-bot check package
Thanks, about to send the query.
:rocket:
Editor check started
:wave:
Checks for spiro (v0.0.5.9000)
git hash: b5db6e6e
- :heavy_check_mark: Package name is available
- :heavy_check_mark: has a 'codemeta.json' file.
- :heavy_check_mark: has a 'contributing' file.
- :heavy_check_mark: uses 'roxygen2'.
- :heavy_check_mark: 'DESCRIPTION' has a URL field.
- :heavy_check_mark: 'DESCRIPTION' has a BugReports field.
- :heavy_check_mark: Package has at least one HTML vignette
- :heavy_check_mark: All functions have examples.
- :heavy_check_mark: Package has continuous integration checks.
- :heavy_check_mark: Package coverage is 91.3%.
- :heavy_check_mark: R CMD check found no errors.
- :heavy_check_mark: R CMD check found no warnings.
Package License: MIT + file LICENSE
1. Package Dependencies
Details of Package Dependency Usage (click to open)
The table below tallies all function calls to all packages ('ncalls'), both internal (r-base + recommended, along with the package itself), and external (imported and suggested packages). 'NA' values indicate packages to which no identified calls to R functions could be found. Note that these results are generated by an automated code-tagging system which may not be entirely accurate.
type | package | ncalls |
---|---|---|
internal | base | 311 |
internal | spiro | 139 |
internal | utils | 121 |
internal | stats | 56 |
internal | mgcv | 1 |
imports | ggplot2 | 51 |
imports | xml2 | 9 |
imports | readxl | 6 |
imports | signal | 2 |
imports | cowplot | 1 |
imports | knitr | NA |
imports | digest | NA |
suggests | testthat | NA |
suggests | rmarkdown | NA |
suggests | ggborderline | NA |
linking_to | NA | NA |
Click below for tallies of functions used in each package. Locations of each call within this package may be generated locally by running 's <- pkgstats::pkgstats(<path/to/repo>)', and examining the 'external_calls' table.
base
c (57), data.frame (24), file (23), list (18), which (16), as.numeric (13), nrow (12), max (10), seq_along (10), attr (8), raw (8), rep.int (8), round (7), length (6), diff (5), lapply (5), range (5), vapply (5), as.data.frame (4), cbind (4), names (4), switch (4), drop (3), for (3), is.na (3), suppressWarnings (3), colnames (2), do.call (2), mean (2), min (2), numeric (2), rep (2), rev (2), rownames (2), split (2), strsplit (2), suppressMessages (2), unique (2), anyDuplicated (1), apply (1), as.character (1), character (1), duplicated (1), factor (1), grepl (1), levels (1), list.files (1), ls (1), mapply (1), paste0 (1), rbind (1), row.names (1), seq_len (1), seq.int (1), sum (1), system.file (1), unlist (1)
spiro
get_data (29), get_meta (10), spiro_smooth (10), get_sex (4), to_seconds (4), add_bodymass (2), add_protocol (2), bw_smooth_extract (2), calo.internal (2), check_bb (2), dupl (2), get_anonid (2), get_smooth_data (2), get_wrongcol_string (2), getstepmeans (2), gettime (2), hr_import (2), import_xml (2), replace_intna (2), smooth_match (2), spiro_import (2), spiro_interpolate (2), spiro_interpolate.internal (2), spiro_plot.guess_units (2), spiro_plot.internal (2), to_number (2), add_hr (1), bw_filter (1), calo (1), get_features (1), get_protocol (1), get_testtype (1), guess_device (1), hr_interpolate (1), knit_print.spiro (1), mavg (1), print.spiro (1), pt_const (1), pt_pre (1), pt_steps (1), pt_wu (1), set_protocol (1), set_protocol_manual (1), set_protocol_manual.data.frame (1), set_protocol_manual.default (1), spiro (1), spiro_anonymize (1), spiro_example (1), spiro_import_cortex (1), spiro_import_cosmed (1), spiro_import_vyntus (1), spiro_import_zan (1), spiro_max (1), spiro_plot (1), spiro_plot_EQ (1), spiro_plot_EQCO2 (1), spiro_plot_HR (1), spiro_plot_Pet (1), spiro_plot_RER (1), spiro_plot_VE (1), spiro_plot_vent (1), spiro_plot_VO2 (1), spiro_plot_vslope (1), spiro_smooth.internal (1), spiro_summary (1), theme_spiro (1)
utils
data (106), read.delim (7), head (5), read.csv (3)
stats
smooth (20), time (13), approx (7), df (7), reshape (5), filter (2), dt (1), end (1)
ggplot2
aes (20), ggplot (8), labs (7), scale_colour_manual (5), scale_y_continuous (3), sec_axis (3), aes_ (2), scale_color_manual (1), scale_fill_manual (1), theme_minimal (1)
xml2
xml_find_all (3), xml_text (3), read_xml (2), xml_children (1)
readxl
read_excel (6)
signal
butter (1), filtfilt (1)
cowplot
plot_grid (1)
mgcv
s (1)
NOTE: Some imported packages appear to have no associated function calls; please ensure with author that these 'Imports' are listed appropriately.
2. Statistical Properties
This package features some noteworthy statistical properties which may need to be clarified by a handling editor prior to progressing.
Details of statistical properties (click to open)
The package has:
- code in R (100% in 15 files) and
- 1 authors
- 2 vignettes
- no internal data file
- 7 imported packages
- 23 exported functions (median 14 lines of code)
- 111 non-exported functions in R (median 16 lines of code)
Statistical properties of package structure as distributional percentiles in relation to all current CRAN packages The following terminology is used:
-
loc
= "Lines of Code" -
fn
= "function" -
exp
/not_exp
= exported / not exported
All parameters are explained as tooltips in the locally-rendered HTML version of this report generated by the checks_to_markdown()
function
The final measure (fn_call_network_size
) is the total number of calls between functions (in R), or more abstract relationships between code objects in other languages. Values are flagged as "noteworthy" when they lie in the upper or lower 5th percentile.
measure | value | percentile | noteworthy |
---|---|---|---|
files_R | 15 | 73.0 | |
files_vignettes | 2 | 85.7 | |
files_tests | 11 | 91.7 | |
loc_R | 1563 | 79.1 | |
loc_vignettes | 208 | 50.8 | |
loc_tests | 275 | 62.3 | |
num_vignettes | 2 | 89.2 | |
n_fns_r | 134 | 83.0 | |
n_fns_r_exported | 23 | 71.4 | |
n_fns_r_not_exported | 111 | 85.7 | |
n_fns_per_file_r | 5 | 67.1 | |
num_params_per_fn | 3 | 33.6 | |
loc_per_fn_r | 16 | 49.2 | |
loc_per_fn_r_exp | 14 | 33.2 | |
loc_per_fn_r_not_exp | 16 | 52.7 | |
rel_whitespace_R | 17 | 77.2 | |
rel_whitespace_vignettes | 37 | 54.2 | |
rel_whitespace_tests | 18 | 55.9 | |
doclines_per_fn_exp | 40 | 50.1 | |
doclines_per_fn_not_exp | 0 | 0.0 | TRUE |
fn_call_network_size | 124 | 82.6 |
2a. Network visualisation
Click to see the interactive network visualisation of calls between objects in package
3. goodpractice
and other checks
Details of goodpractice checks (click to open)
3a. Continuous Integration Badges
GitHub Workflow Results
id | name | conclusion | sha | run_number | date |
---|---|---|---|---|---|
2468348888 | pages build and deployment | success | cd779d | 27 | 2022-06-09 |
2468334160 | pkgdown | success | b5db6e | 70 | 2022-06-09 |
2468334164 | R-CMD-check | failure | b5db6e | 42 | 2022-06-09 |
2468334158 | test-coverage | success | b5db6e | 41 | 2022-06-09 |
3b. goodpractice
results
R CMD check
with rcmdcheck
rcmdcheck found no errors, warnings, or notes
Test coverage with covr
Package coverage: 91.29
Cyclocomplexity with cyclocomp
No functions have cyclocomplexity >= 15
Static code analyses with lintr
lintr found the following 1 potential issues:
message | number of times |
---|---|
Lines should not be more than 80 characters. | 1 |
Package Versions
package | version |
---|---|
pkgstats | 0.0.4.75 |
pkgcheck | 0.0.3.60 |
Editor-in-Chief Instructions:
This package is in top shape and may be passed on to a handling editor
Hi @smnnlt ! Thank you for the full submission and your proactive work addressing the bots feedback. I'm currently seeking a handling editor and hope to kick-off the full review soon.
@ropensci-review-bot assign @melvidoni as editor
Assigned! @melvidoni is now the editor
@ropensci-review-bot seeking reviewers
Please add this badge to the README of your package repository:
[![Status at rOpenSci Software Peer Review](https://badges.ropensci.org/541_status.svg)](https://github.com/ropensci/software-review/issues/541)
Furthermore, if your package does not have a NEWS.md file yet, please create one to capture the changes made during the review process. See https://devguide.ropensci.org/releasing.html#news
I'm having some issues with finding reviewers. Please bear with me.
@ropensci-review-bot assign @jameshunterbr as reviewer
@jameshunterbr added to the reviewers list. Review due date is 2022-07-11. Thanks @jameshunterbr for accepting to review! Please refer to our reviewer guide.
@jameshunterbr: If you haven't done so, please fill this form for us to update our reviewers records.
@smnnlt Just to let you know, I'm having trouble finding a second reviewer. I'll keep trying, but please bear with me.
@ropensci-review-bot assign @manuramon as reviewer
@manuramon added to the reviewers list. Review due date is 2022-07-20. Thanks @manuramon for accepting to review! Please refer to our reviewer guide.
@manuramon: If you haven't done so, please fill this form for us to update our reviewers records.
@ropensci-review-bot set due date for @manuramon to 2022-07-22.
:calendar: @jameshunterbr you have 2 days left before the due date for your review (2022-07-11).
Hello @jameshunterbr. Please remember to use the corresponding form to submit your review.
Melina Vidoni This message is eligible for Automatic Cleanup! @.***) Add cleanup rule | More info spiro.index.nb.zip Hello @jameshunterbr. Please remember to use the corresponding form to submit your review. Hi, Melina: I'm confused. I used the package pkgreviewr as recommended in the Guide for Reviewers to prepare the report. Is that incorrect. My report used the template included in that package. Certainly the output it generated was far in excess of what I would normally send as a review for an article for example. I compressed the result to a zip as that was the only format I had that the space for the review accepted. How should I have submitted the review? Regards, Jim
https://github.com/ropensci-org/pkgreviewr https://github.com/ropensci-org/pkgreviewr GitHub - ropensci-org/pkgreviewr: R package to facilitate rOpenSci package reviews. R package to facilitate rOpenSci package reviews. Contribute to ropensci-org/pkgreviewr development by creating an account on GitHub. https://github.com/ropensci-org/pkgreviewr
James Hunter [1mu1q0]
Prof. James R. Hunter, PhDBioinformática Laboratório de Retrovirologia Escola Paulista de Medicina Universidade Federal de São Paulo Cel: (55-11) 9-5327-5656 Rua Pedro de Toledo 669 6º Andar Fundos 04039-032 São Paulo, SP, BRASIL Fone (11) 5576-4834
On July 11, 2022 at 0:01 GMT, Melina Vidoni @.***> wrote:
Boxbe This message is eligible for Automatic Cleanup! @.***) Add cleanup rule | More info
Hello @.***(https://github.com/jameshunterbr). Please remember to use the corresponding form to submit your review.
— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you were mentioned.Message ID: @.***>
Hello! Here is my review.
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
- [x] As the reviewer I confirm that there are no conflicts of interest for me to review this work.
Documentation
The package includes all the following forms of documentation:
- [x] A statement of need: clearly stating problems the software is designed to solve and its target audience in README
- [x] Installation instructions: for the development version of package and any non-standard dependencies in README
- [x] Vignette(s): demonstrating major functionality that runs successfully locally
- [x] Function Documentation: for all exported functions
- [x] Examples: (that run successfully locally) for all exported functions
- [x] Community guidelines: including contribution guidelines in the README or CONTRIBUTING, and DESCRIPTION with
URL
,BugReports
andMaintainer
(which may be autogenerated viaAuthors@R
).
Functionality
- [x] Installation: Installation succeeds as documented.
- [x] Functionality: Any functional claims of the software been confirmed.
- [x] Performance: Any performance claims of the software been confirmed.
- [x] Automated tests: Unit tests cover essential functions of the package and a reasonable range of inputs and conditions. All tests pass on the local machine.
- [x] Packaging guidelines: The package conforms to the rOpenSci packaging guidelines.
Estimated hours spent reviewing: 4 hours
- [x] Should the author(s) deem it appropriate, I agree to be acknowledged as a package reviewer ("rev" role) in the package DESCRIPTION file.
Review Comments
Documentation
The spiro
packages focus on cardiopulmonar data and aims to standardize data import - from different available formats - and data processing and visualization.
Just to note, there is already another package with the name spiro developed for creating spirographs.
-
README file sets out the background and the objectives addressed by the package. The inclusion of which devices are supported by this package in the README file is well appreciated.
-
Installation procedures are covered. No information on other package dependencies are provided.
-
Vignettes run successfully locally. "Import & Processing" Vignette includes information on formats (devices) supported by this packages as well as other useful information on how to import this data. "Summarizing & Plotting" vignette explains how to get resume measures from raw data and how to plot it.
-
Documentation for all external functions are provided with examples. As a suggestion, some of the examples show the functionality of the functions without assigning the output to a target, which results in printing the entire (truncated) database on the screen. In my opinion, I think it would be preferable to display only the header of that output. An alternative solution could be to modify the
print.spiro
function to show only a set of rows.
Package testing
-
Installation have worked well on Linux and macOS platforms (not tested on Windows, sorry).
-
Package testing with
devtools::check()
onspiro
returned 0 errors. -
Package testing with
pkgcheck
orgoodpractice::gp
result in some warnings on unit tests (81% of code lines are covered by test) and length of code lines in vignette files. Thepkgcheck
function has also retuned a R CMD check error in theDESCRIPTION
file -> Required fields missing or empty:'Author' 'Maintainer' -
Functions included in the package works as expected. A suggestion for
spiro_plot
function would be to include and argument to define the layout of the plot. I think it is easy to implement and could help to obtain graphs in a desirable layout (3x3 by default), especially when a subset of the 9 graphs is plotted. -
A doubt about the functionality of the package is whether the functions allow to vectorize the actions across participants. If I understood correctly, the example databases are data measured on the same individual (one only) and, for example, the correction for body mass is done by giving the body mass data of this individual. Is it possible to read databases containing information from several individuals and work with the functions per individual? Maybe this question does not make sense and in this field it is usual to work with each file separately.
@ropensci-review-bot submit review https://github.com/ropensci/software-review/issues/541#issuecomment-1189164376 time 4
Logged review for manuramon (hours: 4)