Thank you for submitting to Bioconductor. Please see the initial review of your package below. Comment back here with updates that have been made and when the package is ready for a re-review. Please keep in mind the deadline to accept packages into this release cycle is 4/24, therefore changes should be made in a timely manner so as to give enough time for a re-revew and any additional changes.
General package development
R CMD BiocCheck
[x] Incomplete final line in inst/shiny/utils/ui_util.R
[x] Consider shorter lines, 157 lines are 80 characters
[x] Consider 4 spaces instead of tabs, 1 line contains tabs
[x] Consider multiples of 4 spaces for line indents, 666 lines are not (FormatR for help)
[x] REQUIRED: Clean up repository to only include files that are required to build the package ('doc', '.travis.yml', etc. are not needed).
DESCRIPTION
[x] REQUIRED: 'LazyData' should be set to 'FALSE'. Having it set to 'TRUE' only slows down the loading of packages with data.
[x] CLARIFICATION: Make sure the following packages should be imported since they aren't listed in NAMESPACE
shiny
tibble
ape
vegan
S4Vectors
scales
[x] REQUIRED: Add 'methods' and 'stats' to 'Imports'.
[x] REQUIRED: 'BiocCheck' and 'devtools' do not have to be suggested unless they are used in examples/vignettes.
[x] REQUIRED: 'Software' related biocViews need to be included in this package. Right now you are using 'ExperimentData' tags.
NAMESPACE
[x] REQUIRED: Exported functions should use camel case or underscoring, not '.' since this indicates S3 dispatch.
[x] SUGGESTION: Be sure that you are only using import() if many function are used from the package. If only a few functions are used than import them using importFrom().
[x] REQUIRED: Data in '/data' needs to be documented.
[x] CLARIFICATION: What is the purpose of the file in the 'data-raw' directory. The script in this directory is now the script used to create MAE.rda in the data directory
[X] REQUIRED: Documentation for the 'inst/extdata' should be included in the 'inst/script' directory. This should be a script that clearly present how the data was generated. It should include source urls and any important information regarding filtering or processing. It can be executable code, sudo code, or text description. The user should be able to download and be able to roughly reproduce the file or object that is present.
vignette
[X] REQUIRED: We prefer to have an 'Introduction' section that serves as an abstract. Remove the 'abstract:' tag from the metadata of the vignette and create an 'Introduction' section with it. Also be sure to include around the package name so it will be formated as code instead of regular text.
[X] REQUIRED: Include an 'Installation' section that shows the users how to download and load the package from Bioconductor.
[X] REQUIRED: The knit options does not have to be a section in your vignette that displays to the user. Add include = FALSE inside the {r} so that the code is run but will not be shown in the vignette output.
[X] SUGGESTION: It can be up to you what you include in the knit options but I would suggest not including message = FALSE for all code. Messages can be helpful to users as they work through the vignette. Instead I would add this option to the specific chunks of R code that you won't want the message to show. I would suggest adding in the knit options things like collapse = TRUE and comment = "#". We added comments but we actually don't want to show messages on any code blocks.
[X] REQUIRED: You do not need to load in all of the libraries for your package in your vignette. They will be loaded when they install your package. Please remove this chunk (lines 47-69). The only libraries that should be loaded are the ones that aren't imported and used strictly in your vignette. Then I would load them as needed in the code.
[X] REQUIRED: Line 88-90, this code should not be commented out. Instead, add the tag eval = FALSE to {r} so that the code is shown but not evaluated when building the vignette.
[X] CLARIFICATION: After running the run_animalcules() function I noticed on the opening page of the shiny app there is no information for the 'Annotation table'. Both 'Counts Table' and 'Taxonomy Table' have descriptive information about them but 'Annotation' does not. I'm not sure if this was intended but it might be something to consider adding. Added relevant information.
[X] SUGGESTION: Line 132, I would do head(result$sam_table) so that instead of all 50 subjects being shown just the first 6 subjects.
[X] SUGGESTION: I wouldn't comment out line 259.
[X] SUGGESTION: I wouldn't comment out line 275.
[X] SUGGESTION: Line 276, I would also do head(result$table) here so all subjects aren't printed out.
[X] CLARIFICATION: For line 324, when I run the code myself is it expected to get a different list of biomarkers than the ones you show? This will then change the plots following. If so, this might be something you point out to the user so they don't think they messed something up.
[X] REQUIRED: Section 11 - Toy Dataset, this section is not needed and is what should be included in the 'inst/script' directory. This demonstrates how you went from 'animalcules.rds' to 'MAE.rds.
[X] SUGGESTION: You might consider adding some links to the main function in this page.
diversities
[x] REQUIRED: For arguments, the description of 'zeroes' seems incomplete. Not sure if there needs to be a 'TRUE' or 'FALSE' somewhere in the sentence.
_diversitieshelp
[x] CLARIFICATION: How is this different from 'diversities'? _Diversities is the general function that will check user conditions from the Shiny application and then decide if it should call diversitieshelp, which will calculate the diversity.
_filter_summarytop
[x] REQUIRED: Could you change the variable being plotted in the example to show a pie chart and not a boxplot?
_find_taxonmat
[x] REQUIRED: Add runnable examples since it is an exported function.
_read_pathoscopedata
[X] REQUIRED: Add runnable examples since it is an exported function.
animalcules
[x] CLARIFICATION: Is the title/description correct for this file?
[x] REQUIRED: Add runnable example since it is an exported function (it will most likely be the same as 'Usage' but it's good practice to have since some users just go right to examples).
_upsamplecounts
[x] REQUIRED: Add runnable examples since it is an exported function.
R code
[x] REQUIRED: Use vapply() instead of sapply(). The benefit of using vapply over sapply is not apparent to me, and we would have to change a lot of code, for seemingly no improvement to the code base
[x] REQUIRED: Use various apply functions instead of for loops. Sometimes for loops are a better choice than apply functions. For example when adding many traces to plotly objects.
[x] REQUIRED: Use seq_len() or seq_along() instead of 1:....
[x] SUGGESTION: If using import or importFrom then you don't need to use package::function in the R code, you can just use the function normally. This will help simplify your code a bit.
[x] REQUIRED: The functions in 'utils.R' don't need to be exported to the user. Since they are documented already you can add the @keywords interal which will remove them from the package index. Some of these functions are useful for microbiome transcriptomics data analysis and therefore should be accessible to users.
Thank you for submitting to Bioconductor. Please see the initial review of your package below. Comment back here with updates that have been made and when the package is ready for a re-review. Please keep in mind the deadline to accept packages into this release cycle is 4/24, therefore changes should be made in a timely manner so as to give enough time for a re-revew and any additional changes.
General package development
R CMD BiocCheck
[x] Incomplete final line in inst/shiny/utils/ui_util.R
[x] Consider shorter lines, 157 lines are 80 characters
[x] Consider 4 spaces instead of tabs, 1 line contains tabs
[x] Consider multiples of 4 spaces for line indents, 666 lines are not (FormatR for help)
[x] REQUIRED: Clean up repository to only include files that are required to build the package ('doc', '.travis.yml', etc. are not needed).
DESCRIPTION
[x] REQUIRED: 'LazyData' should be set to 'FALSE'. Having it set to 'TRUE' only slows down the loading of packages with data.
[x] CLARIFICATION: Make sure the following packages should be imported since they aren't listed in NAMESPACE
[x] REQUIRED: Add 'methods' and 'stats' to 'Imports'.
[x] REQUIRED: 'BiocCheck' and 'devtools' do not have to be suggested unless they are used in examples/vignettes.
[x] REQUIRED: 'Software' related biocViews need to be included in this package. Right now you are using 'ExperimentData' tags.
NAMESPACE
[x] REQUIRED: Exported functions should use camel case or underscoring, not '.' since this indicates S3 dispatch.
[x] SUGGESTION: Be sure that you are only using
import()
if many function are used from the package. If only a few functions are used than import them usingimportFrom()
.NEWS
[x] REQUIRED: If you intend to use a NEWS file then please fill it in. See https://bioconductor.org/developers/package-guidelines/#news for how to format properly.
Data
[x] REQUIRED: Data in '/data' needs to be documented.
[x] CLARIFICATION: What is the purpose of the file in the 'data-raw' directory. The script in this directory is now the script used to create MAE.rda in the data directory
[X] REQUIRED: Documentation for the 'inst/extdata' should be included in the 'inst/script' directory. This should be a script that clearly present how the data was generated. It should include source urls and any important information regarding filtering or processing. It can be executable code, sudo code, or text description. The user should be able to download and be able to roughly reproduce the file or object that is present.
vignette
[X] REQUIRED: We prefer to have an 'Introduction' section that serves as an abstract. Remove the 'abstract:' tag from the metadata of the vignette and create an 'Introduction' section with it. Also be sure to include
around the package name so it will be formated as code instead of regular text.
[X] REQUIRED: Include an 'Installation' section that shows the users how to download and load the package from Bioconductor.
[X] REQUIRED: The knit options does not have to be a section in your vignette that displays to the user. Add
include = FALSE
inside the{r}
so that the code is run but will not be shown in the vignette output.[X] SUGGESTION: It can be up to you what you include in the knit options but I would suggest not including
message = FALSE
for all code. Messages can be helpful to users as they work through the vignette. Instead I would add this option to the specific chunks of R code that you won't want the message to show. I would suggest adding in the knit options things likecollapse = TRUE
andcomment = "#"
. We added comments but we actually don't want to show messages on any code blocks.[X] REQUIRED: You do not need to load in all of the libraries for your package in your vignette. They will be loaded when they install your package. Please remove this chunk (lines 47-69). The only libraries that should be loaded are the ones that aren't imported and used strictly in your vignette. Then I would load them as needed in the code.
[X] REQUIRED: Line 88-90, this code should not be commented out. Instead, add the tag
eval = FALSE
to {r} so that the code is shown but not evaluated when building the vignette.[X] CLARIFICATION: After running the
run_animalcules()
function I noticed on the opening page of the shiny app there is no information for the 'Annotation table'. Both 'Counts Table' and 'Taxonomy Table' have descriptive information about them but 'Annotation' does not. I'm not sure if this was intended but it might be something to consider adding. Added relevant information.[X] SUGGESTION: Line 132, I would do
head(result$sam_table)
so that instead of all 50 subjects being shown just the first 6 subjects.[X] SUGGESTION: I wouldn't comment out line 259.
[X] SUGGESTION: I wouldn't comment out line 275.
[X] SUGGESTION: Line 276, I would also do
head(result$table)
here so all subjects aren't printed out.[X] CLARIFICATION: For line 324, when I run the code myself is it expected to get a different list of biomarkers than the ones you show? This will then change the plots following. If so, this might be something you point out to the user so they don't think they messed something up.
[X] REQUIRED: Section 11 - Toy Dataset, this section is not needed and is what should be included in the 'inst/script' directory. This demonstrates how you went from 'animalcules.rds' to 'MAE.rds.
man pages
MAE
[x] REQUIRED: This needs to be documentation needs to be more complete. Take a look at http://r-pkgs.had.co.nz/data.html#data-data for help with this. See R/data.R
animalcules-package
[X] SUGGESTION: You might consider adding some links to the main function in this page.
diversities
[x] REQUIRED: For arguments, the description of 'zeroes' seems incomplete. Not sure if there needs to be a 'TRUE' or 'FALSE' somewhere in the sentence.
_diversitieshelp
[x] CLARIFICATION: How is this different from 'diversities'? _Diversities is the general function that will check user conditions from the Shiny application and then decide if it should call diversitieshelp, which will calculate the diversity.
_filter_summarytop
[x] REQUIRED: Could you change the variable being plotted in the example to show a pie chart and not a boxplot?
_find_taxonmat
[x] REQUIRED: Add runnable examples since it is an exported function.
_read_pathoscopedata
[X] REQUIRED: Add runnable examples since it is an exported function.
animalcules
[x] CLARIFICATION: Is the title/description correct for this file?
[x] REQUIRED: Add runnable example since it is an exported function (it will most likely be the same as 'Usage' but it's good practice to have since some users just go right to examples).
_upsamplecounts
[x] REQUIRED: Add runnable examples since it is an exported function.
R code
[x] REQUIRED: Use
vapply()
instead ofsapply()
. The benefit of using vapply over sapply is not apparent to me, and we would have to change a lot of code, for seemingly no improvement to the code base[x] REQUIRED: Use various apply functions instead of
for
loops. Sometimes for loops are a better choice than apply functions. For example when adding many traces to plotly objects.[x] REQUIRED: Use
seq_len()
orseq_along()
instead of1:...
.[x] SUGGESTION: If using
import
orimportFrom
then you don't need to usepackage::function
in the R code, you can just use the function normally. This will help simplify your code a bit.[x] REQUIRED: The functions in 'utils.R' don't need to be exported to the user. Since they are documented already you can add the
@keywords interal
which will remove them from the package index. Some of these functions are useful for microbiome transcriptomics data analysis and therefore should be accessible to users.