Closed lmyint closed 8 years ago
Hi @lmyint
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: yamss
Version: 0.99.0
Title: Tools for high-throughput metabolomics
Description: Tools to analyze and visualize high-throughput metabolomics data
aquired using chromatography-mass spectrometry. These tools preprocess
data in a way that enables reliable and powerful differential analysis.
Authors@R: c(
person("Leslie", "Myint", role = c("cre", "aut"), email = "lmyint1@jhu.edu"),
person(c("Kasper", "Daniel"), "Hansen", role = "aut"))
Depends:
methods,
BiocGenerics (>= 0.15.3),
limma
Suggests:
BiocStyle,
knitr,
rmarkdown,
mtbls2
Imports:
IRanges,
stats,
S4Vectors,
EBImage,
Matrix,
mzR,
data.table,
grDevices
VignetteBuilder: knitr
License: Artistic-2.0
URL: https://github.com/hansenlab/yamss
BugReports: https://github.com/hansenlab/yamss/issues
biocViews: MassSpectrometry, Metabolomics, Software
Looks like all of the functionality is wrapped up in the bakedpi()
function (what does that name even mean?), while it would be nice to have each step of the pipeline exposed as its own function. That would mean defining a formal data structure for holding the raw data. The xcms package defines some that might be useful.
I noticed that getFileNames
begins with get
but the other accessors don't. Probably should drop the get
.
Hi Michael,
We should have made clear in the man pages that bakedpi
stands for bivariate approximate kernel density estimation for peak identification." We debated exporting the individual functions to avoid users having to learn too much about internal workings, but we'll revisit this. I think you're right about getFileNames
. Thanks for the speedy look!
Your package has been approved for building. Your package is now submitted to our queue.
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 following build report for more details:
http://bioconductor.org/spb_reports/yamss_buildreport_20160926172336.html
This post (partly) addresses @lawremi comments on re-using XCMS as well as exposing each step of the pipeline.
We have looked (again) at the internals of XCMS. This package (also) has a design where raw data is mixed up with processed data, so it is not so easy to reuse. For example xcmsSet
, which is the first class a user instantiates, does peak detection when it is created, which is a data processing step we don't use at all.
Also, XCMS processes each sample separately which allows them to loop over samples on disk, only accessing one sample at a time. This allows xcmsSet
to simply have a pointer to a set of files on disk (because the raw data can be accessed on demand from the files), which is obviously great from a resource point of view. Our method processes all samples simultaneously, we do that by reading all the data into a data.table
. This representation allows us to do fast two-dimensional subsetting in the M/Z and RT space, which XCMS doesn't need to do (not in the same way).
Conclusion: the only thing we share with XCMS is starting with a collection of filenames. So there is not really anything to re-use at the start of the process. We are obviously both depending on mzR
.
But @lawremi point about bakedpi()
being a monolithic entity which takes a set of files and returns a heavily processed object, is a point well taken. Some of the steps inside bakedpi()
is uninteresting to the user, but it would be good to chop the process up a little bit. We'll do that, probably by exposing the return object of readRawDataAsDataTable()
and wrapping it in a class, still designing the details of this. Hopefully we'll have a redesign tomorrow.
Note that the error on Windows is due to mzR
being unavailable on Windows. We don't have any compiled code, so we're pretty sure that our code should work on all platforms.
Received a valid push; starting a build. Commits are:
a4e7b17 CMSraw and CMSproc class. readRaw() to create CMSr... 3698a26 Update backgroundCorrection and slot names f2f5174 Update rtAlignment 14b307b Update densityEstimation 3e0f1f6 Update remainder of functions 2e5fd91 some further work on raw/proc classes 6c247a4 Add class checks. Fix slot and object names 9f1b729 Fix doc and doc examples 89fab0b Fix exports 9bd43a4 Forgot comma 6ac2816 Need to export DataFrame 2916eaa DataFrame to data.frame c616862 Slots as data.table 195731f setOldClass to get around undefined slot problem 6051b9d massive work 2b208c4 Add .maxScan 344a418 Use .rawDT 9f38a6e Fix getTIC b094272 Need tic global var cbb1b75 Update doc e93c9b8 various small fixes f12833c Fix getTIC and doc c95b849 Add man page for readMSdata 9e4a7b2 updated vignette 9211797 Merge branch 'devel' of github.com:hansenlab/yamss... 6830277 Small edits 959bd06 small fixes 0e1f653 Merge branch 'devel' of github.com:hansenlab/yamss... f04c7d0 version bump
Substantial changes:
bakedpi
function into two parts and defined a class for storing raw data. We are not re-using XCMS classes for reasons outlined in message above.colData
slots into the data classes.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 following build report for more details:
http://bioconductor.org/spb_reports/yamss_buildreport_20160927231611.html
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 following build report for more details:
http://bioconductor.org/spb_reports/yamss_buildreport_20160927235221.html
Received a valid push; starting a build. Commits are:
a4aa3bb Explain abbreviations ff5bab7 Make new CMSslice class and update CMSproc d11491c Move functions out of bakedpi to slicepi. Change s... 7a2103a Use one method for EICS+quantify. Make CMSslice ob... 1267777 Remove updatePeaks 1b51920 Add densityQuantiles as metadata 8947ef0 Update accessors ce88361 Update diffrep and doc 4507077 Remove updatePeaks from doc. Clean up args and des... 297d4d7 Add colData for CMSslice class 5dd4a8e Add unassociated accessors. Update descrip and exa... 26f5974 Add doc for CMSslice 20b7186 Update vignette to incorporate slicepi() 020bd47 Fix object names and writing 5c5020c Update bakedpi man and add slicepi man c12c92e Change example 5296a29 Delete comma e702925 Fix exports 5dee56f Fix calling peakBounds() on CMSproc 39e0385 Fix show method for CMSproc. Add one for CMSslice 1ddb53a many small fixes 2d5f27a fixed conflict 02c3aac Define qs for getting cutoff 077e966 Fix show() for CMSslice de0cb60 Fix return of getEICsAndQuantify 7cd7c64 fix typo in slicepi 3682cda Fix show method for CMSslice - accessing peakBound... b27acbe more typos 274557d merged conflicts 6091938 Fix scan.min and scan.max and rowData subsetting 10e5da1 Merge branch 'devel' of github.com:hansenlab/yamss... 75c2871 Need to call densityCutoff on CMSslice e11001b Bump version
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 following build report for more details:
http://bioconductor.org/spb_reports/yamss_buildreport_20160929131356.html
In our latest update we have split the analytical pipeline into two: bakedpi()
and slicepi()
. So in total, based on @lawremi we have split our original monolitic pipeline into
This completes our revisions based on @lawremi comments. We are not planning on any more revisions, until review.
The package fails on Windows because a dependency - mzR
- is not available.
Received a valid push; starting a build. Commits are:
cb9080c version bump to trigger rebuild
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 following build report for more details:
http://bioconductor.org/spb_reports/yamss_buildreport_20161007211956.html
Well mzR
now builds (but errors on CHECK) on Windows, but that has not made it available on the single package builder. Guess we will have to wait longer for this.
Received a valid push; starting a build. Commits are:
3f532ef version bump to trigger rebuild to see if mzR has ...
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 following build report for more details:
http://bioconductor.org/spb_reports/yamss_buildreport_20161009221547.html
Ok, so now mzR
(a package dependency) is fixed, and there are no problems.
It would be great to get some movement on this, considering the deadline is the 12th, and we have been waiting for 11d. Of course I understand there is a lot of packages to look at.
Hi @LiNk-NY In your recent reply on Bioc-devel to another package author, you had said that you would get to looking at all packages in good time before the 12th, but we haven't heard from you yet.
Hi @lmyint and @kasperdanielhansen, Thank you for submitting to Bioconductor!
My apologies for the delay. There are a few packages ahead of you in the queue. I took a brief look at it and here is some feedback.
limma
should be in the Imports
field as you only use a few functions from the package.stopifnot(myclass)
. Perhaps you intend to write methods that dispatch on your class.1:length(number)
is not robust when the number
variable is 0L. Try using seq_len(number) instead. ifelse
for scalar evaluation, just use if ( ) else ( )@
to access slots in your class. Please use accessors and replacers for this. by
. \dontrun
. It looks runnable. Thank you for your patience.
Regards, Marcel
Received a valid push; starting a build. Commits are:
a92eeba Put density estimation steps into named functions a3adca4 Chunk scan portion of density computation bb95b7d Increase chunk size b7370a5 version bump to trigger rebuild d51b187 Add more accessor functions and use them dae4fd1 Merge branch 'devel' of github.com:hansenlab/yamss... e7791a3 Move limma into Imports from Depends a1c9f3c Undo testing in bakedpi density estimation 579ffd6 Fix version d337dbc Bump version 475e5ea Bump version
Thank you for taking a look @LiNk-NY. We have addressed the issues regarding the import of limma
and accessing slots with @
. We're working on the others as well. Is it ok if we come back with changes by Monday?
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: "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 following build report for more details:
http://bioconductor.org/spb_reports/yamss_buildreport_20161012161646.html
I looked closer at the release schedule: clearly it has to be done by Friday at the very latest.
All of the comments involve improving our own code. None of the issues affects the user experience nor the interoperability with other packages. We do agree with most of these suggestions, and will incorporate them.
On Wed, Oct 12, 2016 at 4:05 PM, Leslie Myint notifications@github.com wrote:
Thank you for taking a look @LiNk-NY https://github.com/LiNk-NY. We have addressed the issues regarding the import of limma and accessing slots with @. We're working on the others as well. Is it ok if we come back with changes by Monday?
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/Bioconductor/Contributions/issues/150#issuecomment-253323007, or mute the thread https://github.com/notifications/unsubscribe-auth/AEuhn_JSFs6fqqFpuaB03TaFBqpYZIcVks5qzT2agaJpZM4KG6jU .
Received a valid push; starting a build. Commits are:
9b96c7d Use if, else instead of ifelse for scalars c2bf3b8 Fix some instances of seq_along and rename by arg ... c738d1e Move utility functions to reading.R. Fix scanmin t... ec847d3 Add small example data and doc 67fc649 Add unit test for readMSdata 0ac67ef Add testthat to Suggests and fix test-read c7f5b0e Change name of example. Fix empty value in man 6b3214f Add minScan accessor 857c73b casting as integer in parsing function 904fb62 Use .minScan and seq_len in slicepi 65c78ca Merge branch 'devel' of github.com:hansenlab/yamss... a7bb84a added digest function 429cb02 adding testing for background correction b6c3db8 Use seq_len and add drop=FALSE d4a9692 Merge branch 'devel' of github.com:hansenlab/yamss... 6b9ae7a Change example 06fc7c5 Script for making example 8328c55 Fix typo in filename be7aef2 fixing digest stuff 7a91b02 Rollback minScan in rtAlign bba7c9b Merge branch 'devel' of github.com:hansenlab/yamss... fdee071 Rollback minScan ba306dd Rollback minScan 5fc2ccd rerun digesting 21c6c27 new message d2fb253 cmsProc object from vignette a598069 Merge branch 'devel' of github.com:hansenlab/yamss... 1ddb465 expanding unit testing 9c02000 removed 1:x style of seq creation 5f29b31 updating digest with 3 decimal points fb03f13 Remove vignette object ecbb166 Merge branch 'devel' of github.com:hansenlab/yamss... d132832 compress = xz for cmsRawExample d6b9d62 importing colData<- from SummarizedExperiment 0aed9b2 updating digest 244ee76 depends on newer R 10c99a9 Version bump c144cba Merge branch 'devel'
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 following build report for more details:
http://bioconductor.org/spb_reports/yamss_buildreport_20161013143100.html
Received a valid push; starting a build. Commits are:
9c3e72a Make helper functions for readability of nested ap... 60cbaf7 Merge branch 'devel' of github.com:hansenlab/yamss... abeeb8e changed bakedpi example f962379 cleanup of some examples ea18976 Update some examples to use cmsRawExample 0c4bcfd Fix merge conflicts 3d34a88 using peakBounds 9398fe5 fixes f2e65b7 Change slicepi example - getting cutoff ffcb9e8 Change slicepi example - getting cutoff e79905f updating digesting eff8bb2 Bump version bfd2fe8 Merge branch 'devel' f4a42ac Merge branch 'master' of github.com:hansenlab/yams...
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 following build report for more details:
http://bioconductor.org/spb_reports/yamss_buildreport_20161013175703.html
We have now addressed the issues in the review report. Here is our detailed response
First we quote the review with numbers added for reference.
DESCRIPTION
- It seems to me like limma should be in the Imports field as you only use a few functions from the package.
Unit Tests
- Please add some unit tests at least to your main functions.
Methods
- Many functions that you're writing include stopifnot(myclass). Perhaps you intend to write methods that dispatch on your class.
Grammar
- Nesting of lapply, sapply - It is not good for readability, and may be avoidable. Perhaps you can pass additional arguments to the first lapply call (i.e., lapply(seq_along(object), function (i, newObj) { ... }, newObj = object))
- Try to avoid call sequences such as rbind > lapply > cbind > rbind > lapply > cbind.
- Use of 1:length(number) is not robust when the number variable is 0L. Try using seq_len(number) instead.
- Minor: Avoid using ifelse for scalar evaluation, just use if ( ) else ( )
- You shouldn't be using @ to access slots in your class. Please use accessors and replacers for this.
- Avoid using argument names that are functions such as by.
Vignettes
- Looking good.
Documentation
- Overall, looks helpful.
- You include an example with \dontrun. It looks runnable.
Comments
bakedpi()
and slicepi()
.stopifnot()
as argument checking.1:length(x)
anymore in code).ifelse()
in code outside of data.table
functions where we need it.@
in code outside of accessors).\dontrun{}
. Several examples have been reworked.Hi @kasperdanielhansen and @lmyint,
Thank you for submitting to Bioconductor!
Regards, Marcel
Any feedback on our response?
Guess we're accepted based on the label. Thanks, that's great.
Hi @kasperdanielhansen and @lmyint, Thank you addressing the points in the review. I labeled your package as accepted. Thank you for submitting to Bioconductor!
Regards, Marcel
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]'
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.