Closed shokoohi closed 5 years ago
Hi @shokoohi
Thanks for submitting your package. We are taking a quick look at it and you will hear back from us soon.
The DESCRIPTION file for this package is:
Package: DMCFB
Type: Package
Title: Differentially Methylated Cytosines via a Bayesian Functional Approach
Version: 0.99.0
Author: Farhad Shokoohi
Maintainer: Farhad Shokoohi <shokoohi@icloud.com>
Description: A pipeline for identifying differentially methylated cytosines
using a Bayesian functional regression model in bisulfite sequencing data.
Depends: R (>= 3.6.0),
SummarizedExperiment,
methods,
S4Vectors,
BiocParallel,
GenomicRanges,
IRanges
Imports: utils,
stats,
speedglm,
MASS,
data.table,
splines,
arm,
grDevices,
rtracklayer,
benchmarkme,
tibble,
matrixStats,
fastDummies,
graphics
Suggests: testthat,
knitr
VignetteBuilder:
knitr
biocViews: DifferentialMethylation, Sequencing, Coverage, Bayesian, Regression
License: GPL-3
Encoding: UTF-8
LazyData: true
BugReports: https://github.com/shokoohi/DMCFB/issues
RoxygenNote: 6.1.1
A reviewer has been assigned to your package. Learn what to expect during the review process.
IMPORTANT: Please read the instructions for setting up a push hook on your repository, or further changes to your repository will NOT trigger a new build.
Dear Package contributor,
This is the automated single package builder at bioconductor.org.
Your package has been built on Linux, Mac, and Windows.
On one or more platforms, the build results were: "skipped, ERROR". This may mean there is a problem with the package that you need to fix. Or it may mean that there is a problem with the build system itself.
Please see the build report for more details.
Received a valid push; starting a build. Commits are:
0fc1f89 v02 0c2d7e0 Merge branch 'master' of https://github.com/shokoo...
I just did the version bump. Why the error appears?
Dear Package contributor,
This is the automated single package builder at bioconductor.org.
Your package has been built on Linux, Mac, and Windows.
On one or more platforms, the build results were: "skipped, ERROR, WARNINGS". This may mean there is a problem with the package that you need to fix. Or it may mean that there is a problem with the build system itself.
Please see the build report for more details.
I do not understand why the package gives error under windows. I actually do not know how to fix it. The following error does not appear on my Mac.
Error: processing vignette 'DMCFB.Rmd' failed with diagnostics:
Received a valid push; starting a build. Commits are:
034d9f8 v03
Dear Package contributor,
This is the automated single package builder at bioconductor.org.
Your package has been built on Linux, Mac, and Windows.
Congratulations! The package built without errors or warnings on all platforms.
Please see the build report for more details.
DESCRIPTION
NAMESPACE
NEWS
vignettes
Including only source (e.g., .Rmd) files, not outputs (e.g., .html, .pdf)
Update the %\VignetteIndexEntry{}
field to match the title of the vignette
Consider using BiocStyle for constent vignette formatting
Minimize use of {..., message = FALSE}
is used to suppress package startup messages, include package loading in its own chunk.
Format code chunks following standard programming conventions, e.g., indentation of continuation lines, vertical spacing to separate conceptually different steps.
Provide more extensive text to describe use of your package, including in describing in general terms inputs and outputs of important function calls.
Include the output of sessionInfo() in your vignette
R code
AllClasses.R, ...: Follow standard code formatting conventions, such as those seen when the code is viewed in R or suggested by packages such as styler or formatR
AllClasses.R: the setValidity()
function should return TRUE
when the object is valid.
AllGenerics.R:38 Consider carefully whether multiple dispatch is required in the S4 generic; multiple dispatch is difficult to reason about. Use argument validation in method implementations if only a single type of argument is expected.
AllGenerics.R: 204 Re-use functionality from 'core' package, see here
findDMCFB-method.R:17 Use stop()
, warning()
, message()
to signal error or informative messages to the user; use cat()
or print()
only to display an object in a print()
or show()
method.
cat()
, stop()
, warning()
, message()
do not usually need to paste()
arguments together
findDMCFB-method.R:234 Do not change user settings fo global options options()
; for instance if the user had options(show.error.message = FALSE)
, your code would change the value to TRUE. Use tryCatch()
to silently handle error messages, and withCallingHandlers()
to handle warnings. Generally it seems like warnings should not be supressed if the function is being used appropriately.
findDMCFB-method.R:532 Use matrix operations, e.g., colSums()
or as defined in matrixStats, rather than apply()
.
zzz.R:1 Carefully consider the need for a startup message; if all packages do this, then the user simply learns to ignore the message
man pages
Unit tests
Received a valid push; starting a build. Commits are:
993f33b v04
Dear Package contributor,
This is the automated single package builder at bioconductor.org.
Your package has been built on Linux, Mac, and Windows.
On one or more platforms, the build results were: "WARNINGS, skipped, ERROR". This may mean there is a problem with the package that you need to fix. Or it may mean that there is a problem with the build system itself.
Please see the build report for more details.
Hello, I do not understand why there is ERROR here. On my Mac it does not give any error.
Received a valid push; starting a build. Commits are:
6d6dd00 v05
Dear Package contributor,
This is the automated single package builder at bioconductor.org.
Your package has been built on Linux, Mac, and Windows.
On one or more platforms, the build results were: "skipped, ERROR". This may mean there is a problem with the package that you need to fix. Or it may mean that there is a problem with the build system itself.
Please see the build report for more details.
Hello, I do not have a windows machine to see why this error occurs.
Received a valid push; starting a build. Commits are:
28a9450 v06
Dear Package contributor,
This is the automated single package builder at bioconductor.org.
Your package has been built on Linux, Mac, and Windows.
On one or more platforms, the build results were: "skipped, ERROR". This may mean there is a problem with the package that you need to fix. Or it may mean that there is a problem with the build system itself.
Please see the build report for more details.
@mtmorgan Hello. I cannot fix this problem. Since I have no windows I do not know why the problem occurs. Any thought on this?
I would guess it is in the code from the package that you import that tries to determine memory use. Address the other issues and I will try to look into this on the next iteration of the review.
@mtmorgan All other issues are addressed except two:
1) AllGenerics.R: 204 ...
I did not understand what you meant by this.
2) findDMCFB-method.R:234 ...
I want to keep it as it is. This is because when jobs are sent to CPU Cores they produce too much warnings that I do not want them to appear in the final report.
You've implemented writeBED, but there is already rtracklayer::export()
Your implementation is broken because it forces the user option to be, e.g., show.error.message = TRUE
after calling your function call, even though they had explicitly set it, for their own reasons, to show.error.message = FALSE
. But generally there are alternative ways such as suppressWarnings()
and withCallingHandlers()
to programmatically manage these circumstances. If you provide a SIMPLE example with a small part of your code (see also the comment about re-factoring your code for easy unit testing) I will attempt to provide further guidance.
Will you address the remaining issues?
Hello,
I am moving to UNLV in few days and I will be very busy. As soon as I settle down at UNLV I will start working on the issues.
Thank you,
OK I'll mark this as 'inactive'. When you're settled in and ready to continue the review process add a comment here and I'll re-open the issue.
This issue is being closed because there has been no progress for an extended period of time. You may reopen the issue when you have the time to actively participate in the review / submission process. Please also keep in mind that a package accepted to Bioconductor requires a commitment on your part to ongoing maintenance.
Thank you for interest in Bioconductor.
Hello, I have started to work on the package. The new version is ready. I thought I should create a new issue. But it gave me error. What should I do?
I have re-opened the issue. Increment the version and the package should build.
Received a valid push; starting a build. Commits are:
62b7bea Ver07
Dear Package contributor,
This is the automated single package builder at bioconductor.org.
Your package has been built on Linux, Mac, and Windows.
On one or more platforms, the build results were: "skipped, ERROR". This may mean there is a problem with the package that you need to fix. Or it may mean that there is a problem with the build system itself.
Please see the build report for more details.
I do not understand the errors. Everything is working on my computer.
Linux and Mac ERRORs appear to be on our end. I am manually rerunning the issue to see if they resolve and you should hopefully have a new build report soon. If the ERRORs on those platforms continue I will investigate these further.
As for the windows ERROR that is occurring, this is a real ERROR. I did some investigation and the problem is in the internal function .MCMCFB
that gets called by findDMCFB
. It appears at some point you use get_ram()
to determine the maxram variable but get_ram()
is a platform specific function (as described in its help page) that results in a NA. The help page suggests for windows to use memory.size()
.
For reference this is the code I used to determine all of this (understanding that this would probably only be useful if you had access to a windows machine) . I used R CMD Stangle vignettes/DMCFB.Rmd
to get a DMCFB.R file that could be sourced.
> source("DBCFB.R", echo=TRUE)
> OBJ2 = findDMCFB(object = OBJ1, bwa = 30, bwb = 30, nBurn = 10, nMC = 10,
+ nThin = 1, alpha = 0.05, pSize = 500, sfiles = FALSE)
------------------------------------------------------------
Running Bayesian functional regression model ...
The priors's SD = 0.3027, estimated from data ...
Error in if (maxram/multicoreWorkers() > 5) { :
missing value where TRUE/FALSE needed
>
>
> traceback()
7: .MCMCFB(object, bwa, bwb, nBurn, nMC, nThin, sdv, nCores, pSize,
sfiles)
6: findDMCFB(object = OBJ1, bwa = 30, bwb = 30, nBurn = 10, nMC = 10,
nThin = 1, alpha = 0.05, pSize = 500, sfiles = FALSE)
5: findDMCFB(object = OBJ1, bwa = 30, bwb = 30, nBurn = 10, nMC = 10,
nThin = 1, alpha = 0.05, pSize = 500, sfiles = FALSE) at DMCFB.R#76
4: eval(ei, envir)
3: eval(ei, envir)
2: withVisible(eval(ei, envir))
1: source("DMCFB.R", echo = TRUE)
Then I did a debug(DMCFB:::.MCMCFB)
and stepped through the code when running source("DBCFB.R", echo=TRUE)
again.
Browse[2]>
debug: maxram <- (get_ram())[[1]]/1e+09
Browse[2]> maxram
[1] NA
Browse[2]> get_ram()
NA B
Which led me to the help page for that function.
Cheers!
Dear Package contributor,
This is the automated single package builder at bioconductor.org.
Your package has been built on Linux, Mac, and Windows.
On one or more platforms, the build results were: "skipped, ERROR". This may mean there is a problem with the package that you need to fix. Or it may mean that there is a problem with the build system itself.
Please see the build report for more details.
Received a valid push; starting a build. Commits are:
fb2f90e Ver08
Dear Package contributor,
This is the automated single package builder at bioconductor.org.
Your package has been built on Linux, Mac, and Windows.
On one or more platforms, the build results were: "WARNINGS, ERROR". This may mean there is a problem with the package that you need to fix. Or it may mean that there is a problem with the build system itself.
Please see the build report for more details.
Received a valid push; starting a build. Commits are:
d7e438e Ver09
Dear Package contributor,
This is the automated single package builder at bioconductor.org.
Your package has been built on Linux, Mac, and Windows.
On one or more platforms, the build results were: "WARNINGS". This may mean there is a problem with the package that you need to fix. Or it may mean that there is a problem with the build system itself.
Please see the build report for more details.
What's next? The warnings are not related to my package. I don't know how to fix them.
This warning
Warning: replacing previous import 'IRanges::windows' by 'grDevices::windows' when loading 'DMCFB'
can be addressed by selectively importing from packages -- importFrom
rather than import
in the NAMESPACE, avoiding @import grDevices
and / or @import IRanges
tags; base R support import(..., except=)
https://cran.r-project.org/doc/manuals/r-release/R-exts.html#Specifying-imports-and-exports but I don't know the @import
syntax for that.
Once this is addressed, the next step is to wait for the reviewer (me) to review the package.
I couldn't fix the problem. IRanges and grDevices must be imported in my package. I use RStudio and the "NAMESPACE" is generated automatically by "roxygen2" and I cannot change it manually.
Only import the functions that you need from each package, rather than importing the entire package. To figure out what needed to be imported, I edited the NAMESPACE file to comment out the lines import(IRanges)
and import(grDevices)
and then ran R CMD build
and R CMD check
. The latter complains:
* checking R code for possible problems ... NOTE
.MCMCFB : .fitpar: no visible binding for global variable ‘median’
.readBismark: no visible global function definition for ‘IRanges’
readBismark,character-DataFrame: no visible global function definition
for ‘IRanges’
Undefined global functions or variables:
IRanges median
Consider adding
importFrom("stats", "median")
to your NAMESPACE file.
It looks like you don't use grDevices at all? So I removed grDevices from the DESCRIPTION file and made the following changes to the source code
DMCFB master$ git diff R/
diff --git a/R/AllGenerics.R b/R/AllGenerics.R
index 9ea95c5..d7205d3 100644
--- a/R/AllGenerics.R
+++ b/R/AllGenerics.R
@@ -202,7 +202,7 @@ setGeneric("combine", function(obj1, obj2) standardGeneric("combine"))
#' @author Farhad Shokoohi <shokoohi@icloud.com>
#' @name readBismark-method
#' @import GenomicRanges
-#' @import IRanges
+#' @importFrom IRanges IRanges
#' @import S4Vectors
#' @inheritParams params
#' @return A \code{\link{BSDMC-class}} object
@@ -279,7 +279,6 @@ setGeneric("findDMCFB", function(object, bwa, bwb, nBurn, nMC, nThin, alpha,
#' @import BiocParallel
#' @import GenomicRanges
#' @import S4Vectors
-#' @import grDevices
#' @import rtracklayer
#' @import graphics
#' @importFrom graphics abline axis layout legend lines par points segments
diff --git a/R/findDMCFB-method.R b/R/findDMCFB-method.R
index 6946052..27af35b 100644
--- a/R/findDMCFB-method.R
+++ b/R/findDMCFB-method.R
@@ -1,4 +1,4 @@
-
+#' @importFrom stats median
.MCMCFB <- function(object, bwa, bwb, nBurn, nMC, nThin, sdv, nCores, pSize,
sfiles) {
if (missing(object)) {
and ran devtools::document()
to update the NAMESPACE file. Running R CMD build / check again, I was told
* checking dependencies in R code ... NOTE
Namespace in Imports field not imported from: ‘BiocStyle’
All declared Imports should be used.
Package in Depends field not imported from: ‘GenomeInfoDb’
These packages need to be imported from (in the NAMESPACE file)
for when this namespace is loaded but not attached.
BiocStyle
is used in building the vignette, and should be in the Suggests:
field. Your package doesn't use GenomeInfoDb, so it should not be mentioned in the DESCRIPTION file.
Received a valid push; starting a build. Commits are:
87b7984 v10
Dear Package contributor,
This is the automated single package builder at bioconductor.org.
Your package has been built on Linux, Mac, and Windows.
Congratulations! The package built without errors or warnings on all platforms.
Please see the build report for more details.
Would you kindly let me know what is next?
Have you addressed the issues in https://github.com/Bioconductor/Contributions/issues/1174#issuecomment-507912754 ? For instance I see many uses of options()
in a way that would change user settings
DMCFB/R master$ grep options *
findDMCFB-method.R: # options(warn=-1)
findDMCFB-method.R: options(show.error.messages = FALSE)
findDMCFB-method.R: options(show.error.messages = TRUE)
findDMCFB-method.R: options(warn = -1)
findDMCFB-method.R: options(warn = 0)
...
Description: too brief; should read like a paper abstract highlighting new features and contrasting with alternatives
Done
Make sure NEWS file can be parsed by utils::news()
Done
Including only source (e.g., .Rmd) files, not outputs (e.g., .html, .pdf)
Done
Update the %\VignetteIndexEntry{} field to match the title of the vignette
Done
Consider using BiocStyle for constent vignette formatting
Done
Minimize use of {..., message = FALSE} is used to suppress package startup messages, include package loading in its own chunk.
Done
Format code chunks following standard programming conventions, e.g., indentation of continuation lines, vertical spacing to separate conceptually different steps.
Done
Provide more extensive text to describe use of your package, including in describing in general terms inputs and outputs of important function calls.
Done
Include the output of sessionInfo() in your vignette
Done
AllClasses.R, ...: Follow standard code formatting conventions, such as those seen when the code is viewed in R or suggested by packages such as styler or formatR
Done
AllClasses.R: the setValidity() function should return TRUE when the object is valid.
Done
AllGenerics.R:38 Consider carefully whether multiple dispatch is required in the S4 generic; multiple dispatch is difficult to reason about. Use argument validation in method implementations if only a single type of argument is expected.
Considered
AllGenerics.R: 204 Re-use functionality from 'core' package, see here
Decided to stay with my own function; will change in the next version in both of my packages "DMCHMM" and this one
findDMCFB-method.R:17 Use stop(), warning(), message() to signal error or informative messages to the user; use cat() or print() only to display an object in a print() or show() method. cat(), stop(), warning(), message() do not usually need to paste() arguments together
Done
findDMCFB-method.R:234 Do not change user settings fo global options options() ; for instance if the user had options(show.error.message = FALSE), your code would change the value to TRUE. Use tryCatch() to silently handle error messages, and withCallingHandlers() to handle warnings. Generally it seems like warnings should not be supressed if the function is being used appropriately.
Few datasets will create warning due to low coverage data. It will be messy but the analysis is correct. However, I don't know how to avoid these unnecessary warnings.
findDMCFB-method.R:532 Use matrix operations, e.g., colSums() or as defined in matrixStats, rather than apply().
Done
zzz.R:1 Carefully consider the need for a startup message; if all packages do this, then the user simply learns to ignore the message
Done
Effective unit tests often benefit from more modular code, where each module can be tested quickly and with simple inputs and outputs rather than requiring complicated inputs / outputs to comprehensive functions
Done
Received a valid push; starting a build. Commits are:
049d5d0 Ver11
I think you pushed the version bump but not the code changes? This https://github.com/Bioconductor/Contributions/issues/1174#issuecomment-530830752 still applies...
Dear Package contributor,
This is the automated single package builder at bioconductor.org.
Your package has been built on Linux, Mac, and Windows.
Congratulations! The package built without errors or warnings on all platforms.
Please see the build report for more details.
Update the following URL to point to the GitHub repository of the package you wish to submit to Bioconductor
Confirm the following by editing each check box to '[x]'
[x ] I understand that by submitting my package to Bioconductor, the package source and all review commentary are visible to the general public.
[ x] I have read the Bioconductor Package Submission instructions. My package is consistent with the Bioconductor Package Guidelines.
[x ] I understand that a minimum requirement for package acceptance is to pass R CMD check and R CMD BiocCheck with no ERROR or WARNINGS. Passing these checks does not result in automatic acceptance. The package will then undergo a formal review and recommendations for acceptance regarding other Bioconductor standards will be addressed.
[x ] My package addresses statistical or bioinformatic issues related to the analysis and comprehension of high throughput genomic data.
[ x] I am committed to the long-term maintenance of my package. This includes monitoring the support site for issues that users may have, subscribing to the bioc-devel mailing list to stay aware of developments in the Bioconductor community, responding promptly to requests for updates from the Core team in response to changes in R or underlying software.
I am familiar with the essential aspects of Bioconductor software management, including:
For help with submitting your package, please subscribe and post questions to the bioc-devel mailing list.