Closed ahmohamed closed 5 years ago
@Liubuntu Thanks again for your comments. Already started with modifications, but a couple of clarifications needed:
Remove the colData and rowData method
The problem is that when I remove the code chunks, colData
& rowData
are not exported and are not the user to be able to use them, unless SummarizedExperiment
is loaded. Two options:
@export colData
...Move SummarizedExperiment
to Depends
, so it is loaded with lipidr
Note that the the roxygen2 was loosely based on latex and is different from rmarkdown format
Roxygen
supports markdown by defining Roxygen: list(markdown = TRUE)
in the DESCRIPTION
. In fact, all docs were written in latex format, and them later converted to md using usethis::use_roxygen_md
.
Thanks again. I will be pushing the modifications shortly. Ahmed.
Received a valid push; starting a build. Commits are:
da49572 update docs for SkylineExperiment 96de090 Remove colData, rowData definition, @export them edba6b9 use metadata() instead of @metadata c945860 read_skyline & package docs update f53852c minor vignette update a7b6a67 update return value of read_skyline 9bceb9a use object validity e146ed9 export metadata from S4Vectors d5c3408 ensure object validition on initialization d9fbc7e create a list of datasets documentation 3e47d79 minor docs & code fixes 247e98b version pump
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.
Hi @ahmohamed ,
Please see following for the additional comments about the new class
SkylineExperiment
and some related issues:@Liubuntu After much thought into the new class issue, I feel I am more inclined to define a new class for the following reasons: Requirement for certain attributes to be defined cannot be enforced without new class definition. An object being SkylineExperiment implies also that lipid annotations are present (with specific columns, namely Class, Molecule).
- I agree that you keep the current new class of
SkylineExperiment
by simply putting those arbitrary attributes into themetadata
slot. So the point of defining a new class here would be that the specific slot ofmetadata
has additional requirements compared to the mainSummarizedExperiment
container. The best way to secure a validSkylineExperiment
would be tosetValitity()
. Refer to the examples provided in the documentation of?setVality
. Inside thesetValidity
, check themetadata()
list names, e.g., check if the listnames aresummarized
anddimnames
. If not, returnFALSE
. So you don't need to check for functions (e.g.,to_long_format
) if the input is required to have a specific attribute, simply check "if (input, "SkylineExperiment")" would do the work.
Thank you for this suggestion. This is exactly what I needed. I have implemented setValidity
function following these guidlines.
bioc.R
: remove the documentation for@param attrs
accordingly.
Done.
bioc.R
, L20:26, Seems like the description for each parameter are opposite. InSummarizedExperiment
,rowData
should correspond to the "rows" of the assay data (if rownames present, it becomes the rownames of theSkylineExperiment
) and similarly forcolData()
. Please check and consider a name switch with modification.
You are correct. Fixed.
bioc.R
, L24, "An optional data.frame..." should be "An optional DataFrame ...".
Done.
bioc.R
, L117:128: Remove thecolData
androwData
method definition forSkylineExperiment
. Since yourSkylineExperiment
inherits directly fromSummarizedExperiment
, you don't need to define any methods (if expecting same output) that has already been defined forSummarizedExperiment
. By commenting the code chunks of definingcolData
androwData
, anddevtools::document()
, and do the following, so can see that the target method ofcolData,SkylineExperiment
is already defined incolData,SummarizedExperiment
.selectMethod("colData", "SkylineExperiment") Method Definition: function (x, ...) x@colData <bytecode: 0x564d6d1e8de8> <environment: namespace:SummarizedExperiment> Signatures: x target "SkylineExperiment" defined "SummarizedExperiment"
As discussed above, the methods are only available if SummarizedExperiment
is loaded. For now, I have adopted explicit @exports
make these functions available from lipidr
(below), but can switch to Depends
if required.
#' @importFrom SummarizedExperiment colData rowData
#' @importFrom S4Vectors metadata
#' @export colData
#' @export rowData
#' @export metadata
NULL
- Based on you modification of the new class, You need to modify the
.to_summarized_experiment
function accordingly to remove the@attrs
slot. The example in?read_skyline
still returns aSkylineExperiment
with@attrs
slot and emptymetadata()
slot.
Fixed.
read_skyline()
argument offiles
is actually a character vector with the filepaths, not a list. Modify the documentation accordingly to avoid confusion.
Done.
read_skyline()
returned value should be more specificallySkylineExperiment
instead ofSummarizedExperiment
. Check other documentations.
Done.
Continued:
R/
- The merging of plotting functions look great!
Thanks!
- General: There was a slot accessor
metadata()
forSummarizedExperiment
object so as a direct extension of it,SkylineExperiment
inherits this function directly. So avoid using@metadata
and usemetadata()
instead.
Done. Replaced all @metadata
with metadata()
man/
- It's recommended to add
#' @aliases lipidr lipidr-package
for the package documentation. So that users could more intuitively uselipidr
to request the help page of the package, instead of having to use?lipidr-package
.
Done.
- Note that the the
roxygen2
was loosely based on latex and is different from rmarkdown format. e.g., you need to use\code{...}
to encompass the contents as quotation marks in the help page, instead of using the backspace "...
". Inde-analysis.R
L13:14, use\code{limma::makeContrasts}
and\code{Area}
. Check through your whole documentations.
Explained above. Roxygen can now convert Md to Rd automatically!
data/
- It's ok to leave it as is. But from the developer point of view, grouping datasets are common and give you a clearer structure for package development and users could see all datasets in one help page. This avoid the headache of looking for data names since the only place users get to know the data names are the help pages (in your package at least, you didn't include any full list of the data names, either in the
lipidr-package
or in vignette, correct me if I'm wrong here). But if they don't know the data name, there is no way to request the help page of that data by?dataname
, which is self-contradictory.
Fair enough. I have tried using the same @rdname
as you explained above, however, \format{}
is only showed for the first dataset, and the rest are omitted. So, instead, I have created a lipidr-data
help page listing datasets, and used @family
to make all datasets help pages easily accessible from there.
vignette
- The re-organization and new toc looks much better now.
Thanks :)
- Remove the
:
in the subheadings ofInstallation
.
Done.
@Liubuntu Thanks again for your time and comments, they were really helpful. Please have a look at the modifications, and let me know if anything else is needed.
Thanks. Ahmed.
Hi @ahmohamed ,
Thanks for the quick update. We'are in good pace to the release. I'm looking at your changes now.
Best, Qian
Hi @ahmohamed ,
Just one minor thing we are ready to go!
rowData/colData()
methods, I think you better Depends
on
SummarizedExperiment
since SkylineExperiment
directly extends it
and it's natural for users to expect the whole set of methods being
available. So @import SummarizedExperiment
the whole package
instead of only specific methods and remove those @export rowData
...@family
to automatically link each other for the
datasets.Roxygen can now convert Md to Rd automatically!
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.
@Liubuntu Thanks a lot Qian for your timely reviews. Modifications done!
PS: Just to clarify, I renamed itsd
to istd
as this is the more common abbreviation for internal standard.
Thanks again. Ahmed.
Hi @ahmohamed ,
Those updates look good to me. I'm accepting the package now.
Cheers, Qian
Your package has been accepted. It will be added to the Bioconductor Git repository and nightly builds. Additional information will be posed to this issue in the next several days.
Thank you for contributing to Bioconductor!
The master branch of your GitHub repository has been added to Bioconductor's git repository.
To use the git.bioconductor.org repository, we need an 'ssh' key to associate with your github user name. If your GitHub account already has ssh public keys (https://github.com/ahmohamed.keys is not empty), then no further steps are required. Otherwise, do the following:
See further instructions at
https://bioconductor.org/developers/how-to/git/
for working with this repository. See especially
https://bioconductor.org/developers/how-to/git/new-package-workflow/ https://bioconductor.org/developers/how-to/git/sync-existing-repositories/
to keep your GitHub and Bioconductor repositories in sync.
Your package will be included in the next nigthly 'devel' build (check-out from git at about 6 pm Eastern; build completion around 2pm Eastern the next day) at
https://bioconductor.org/checkResults/
(Builds sometimes fail, so ensure that the date stamps on the main landing page are consistent with the addition of your package). Once the package builds successfully, you package will be available for download in the 'Devel' version of Bioconductor using BiocManager::install("lipidr")
. The package 'landing page' will be created at
https://bioconductor.org/packages/lipidr
If you have any questions, please contact the bioc-devel mailing list (https://stat.ethz.ch/mailman/listinfo/bioc-devel); this issue will not be monitored further.
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.