Bioconductor / Contributions

Contribute Packages to Bioconductor
134 stars 33 forks source link

lipidr #1065

Closed ahmohamed closed 5 years ago

ahmohamed commented 5 years ago

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.

ahmohamed commented 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:

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.

bioc-issue-bot commented 5 years ago

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

bioc-issue-bot commented 5 years ago

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.

ahmohamed commented 5 years ago

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 the metadata slot. So the point of defining a new class here would be that the specific slot of metadata has additional requirements compared to the main SummarizedExperiment container. The best way to secure a valid SkylineExperiment would be to setValitity(). Refer to the examples provided in the documentation of ?setVality. Inside the setValidity, check the metadata() list names, e.g., check if the listnames are summarized and dimnames. If not, return FALSE. 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. In SummarizedExperiment, rowData should correspond to the "rows" of the assay data (if rownames present, it becomes the rownames of the SkylineExperiment) and similarly for colData(). 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 the colData and rowData method definition for SkylineExperiment. Since your SkylineExperiment inherits directly from SummarizedExperiment, you don't need to define any methods (if expecting same output) that has already been defined for SummarizedExperiment. By commenting the code chunks of defining colData and rowData, and devtools::document(), and do the following, so can see that the target method of colData,SkylineExperiment is already defined in colData,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 a SkylineExperiment with @attrs slot and empty metadata() slot.

Fixed.

  • read_skyline() argument of files 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 specifically SkylineExperiment instead of SummarizedExperiment. Check other documentations.

Done.

ahmohamed commented 5 years ago

Continued:

R/

  • The merging of plotting functions look great!

Thanks!

  • General: There was a slot accessor metadata() for SummarizedExperiment object so as a direct extension of it, SkylineExperiment inherits this function directly. So avoid using @metadata and use metadata() 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 use lipidr 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 "...". In de-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 of Installation.

Done.

ahmohamed commented 5 years ago

@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.

Liubuntu commented 5 years ago

Hi @ahmohamed ,

Thanks for the quick update. We'are in good pace to the release. I'm looking at your changes now.

Best, Qian

Liubuntu commented 5 years ago

Hi @ahmohamed ,

Just one minor thing we are ready to go!

R/bioc.R

Else

Roxygen can now convert Md to Rd automatically!

bioc-issue-bot commented 5 years ago

Received a valid push; starting a build. Commits are:

c68a0f3 Depend on SE, @import SE & dplyr 48fe0d6 rename itsd -> istd d39649e version pump

bioc-issue-bot commented 5 years ago

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.

ahmohamed commented 5 years ago

@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.

Liubuntu commented 5 years ago

Hi @ahmohamed ,

Those updates look good to me. I'm accepting the package now.

Cheers, Qian

bioc-issue-bot commented 5 years ago

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!

mtmorgan commented 5 years ago

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:

  1. Add an SSH key to your github account
  2. Submit your SSH key to Bioconductor

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.