Bioconductor / Contributions

Contribute Packages to Bioconductor
135 stars 33 forks source link

SpliceWiz R package submission #2685

Closed alexchwong closed 2 years ago

alexchwong commented 2 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 questions/help about the submission process, including questions about the output of the automatic reports generated by the SPB (Single Package Builder), please use the #package-submission channel of our Community Slack. Follow the link on the home page of the Bioconductor website to sign up.

bioc-issue-bot commented 2 years ago

Hi @alexchwong

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: SpliceWiz
Title: Efficient and precise alternative splicing analysis in R
Version: 0.99.0
Date: 2022-06-02
Authors@R: c(person("Alex Chit Hei", "Wong", email="a.wong@centenary.org.au", 
        role=c("aut", "cre", "cph")),
    person("Ulf", "Schmitz", role=c("ctb")),
    person("William", "Ritchie", role=c("cph")))
Description: Reads and fragments aligned to splice junctions can be used to
    quantify alternative splicing events (ASE). However, overlapping ASEs can
    confound their quantification. SpliceWiz quantifies ASEs, calculating
    percent-spliced-in (PSI) using junction reads, and intron retention using
    IRFinder-based quantitation. Novel filters identify ASEs that are relatively
    less confounded by overlapping events, whereby PSIs can be calculated with
    higher confidence. SpliceWiz is ultra-fast, using multi-threaded processing
    of BAM files. It can be run using a graphical user or command line 
    interfaces. GUI-based interactive visualization of differential ASEs,
    including novel group-based RNA-seq coverage visualization, simplifies
    short-read RNA-seq analysis in R.
License: MIT + file LICENSE
Depends: NxtIRFdata
Imports:
    ompBAM,
    methods, stats, utils, tools, parallel,
    magrittr,
    Rcpp (>= 1.0.5),
    data.table,
    fst,
    ggplot2,
    AnnotationHub, 
    BiocFileCache,
    BiocGenerics,
    BiocParallel,
    Biostrings, 
    BSgenome,
    DelayedArray,
    DelayedMatrixStats,
    genefilter,
    GenomeInfoDb,
    GenomicRanges,
    HDF5Array,
    IRanges,
    progress,
    plotly,
    R.utils,
    rhdf5,
    rtracklayer,
    SummarizedExperiment, 
    S4Vectors,
    shiny,
    shinyFiles,
    shinyWidgets,
    shinydashboard,
    rhandsontable,
    DT,
    grDevices,
    heatmaply, pheatmap,
    matrixStats,
    RColorBrewer,
    XML
Suggests: 
    knitr, rmarkdown, openssl, crayon, egg,
    DESeq2, limma, DoubleExpSeq, Rsubread, testthat (>= 3.0.0)
LinkingTo: 
    ompBAM,
    Rcpp,
    zlibbioc, 
    RcppProgress
SystemRequirements: C++11
Collate: AllImports.R
    RcppExports.R
    zzz.R
    AllClasses.R
    AllGenerics.R
    ASEFilter-methods.R
    NxtSE-methods.R
    globals.R
    ggplot_themes.R
    example_data.R
    wrappers.R
    make_plot_data.R
    Coverage.R
    utils.R
    File_finders.R
    BuildRef.R
    STAR_utils.R
    Mappability.R
    ProcessBAM.R
    CollateData.R
    MakeSE.R
    Filters.R
    ASE-methods.R
    dash_filterModules.R
    dash_globals.R
    dash_settings.R
    dash_ref_new_ui.R
    dash_ref_new_server.R
    dash_expr_ui.R
    dash_expr_server.R
    dash_QC.R
    dash_filters.R
    dash_DE_ui.R
    dash_DE_server.R
    dash_vis_ui.R
    dash_vis_server.R
    dash_cov_ui.R
    dash_cov_server.R
    dash_ui.R
    dash_server.R
    dash.R
    SpliceWiz-package.R
Encoding: UTF-8
Roxygen: list(markdown = TRUE)
RoxygenNote: 7.1.2
VignetteBuilder: knitr
biocViews: Software, Transcriptomics, RNASeq, AlternativeSplicing, Coverage, 
  DifferentialSplicing, DifferentialExpression, GUI, Sequencing
URL: https://github.com/alexchwong/SpliceWiz
BugReports: https://support.bioconductor.org/
Config/testthat/edition: 3
alexchwong commented 2 years ago

Dear Reviewers,

Please be aware that SpliceWiz is intended to replace the NxtIRFcore R package already in Bioconductor (and should be reviewed in this context). It includes some performance improvements as well as the introduction of a shiny-based GUI. SpliceWiz is submitted as a separate package to facilitate the package name change.

bioc-issue-bot commented 2 years ago

A reviewer has been assigned to your package. Learn what to expect during the review process.

IMPORTANT: Please read this documentation for setting up remotes to push to git.bioconductor.org. It is required to push a version bump to git.bioconductor.org to trigger a new build.

Bioconductor utilized your github ssh-keys for git.bioconductor.org access. To manage keys and future access you may want to active your Bioconductor Git Credentials Account

bioc-issue-bot commented 2 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.

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. This link will be active for 21 days.

Remember: if you submitted your package after July 7th, 2020, when making changes to your repository push to git@git.bioconductor.org:packages/SpliceWiz to trigger a new build. A quick tutorial for setting up remotes and pushing to upstream can be found here.

alexchwong commented 2 years ago

@Kayla-Morrell CHECK is timing out at ~15 min for MacOS but runs fine at 4.5 min on Linux.

Seems like Bioconductor's MacOS is much slower than Linux. Running R cmd check on GitHub action, I am getting 8min 41sec for MacOS. Also the longest example "NxtSE-class" is taking 65 sec on Bioconductor's MacOS, whereas it takes 28 sec on GitHub action's MacOS.

Is there something going on with the MacOS server on Bioconductor's end that is slowing it down?

Kayla-Morrell commented 2 years ago

@alexchwong - I can confirm that on my personal Mac it only took about 7 minutes to run R CMD check. I'm not sure what might be happening on the Bioc Mac but I can review in the meantime and perhaps the issue will work itself out. If there needs to be further investigation we can do that while the review is taking place. I should have the initial review posted by the beginning of next week.

Best, Kayla

Kayla-Morrell commented 2 years ago

@alexchwong - Thank you for submitting to Bioconductor. Please see the initial review of the package below. The required changes must be made while the suggested changes do not have to be (though we strongly encourage them). Comment back here with updates that have been made and when the package is ready for a re-review.

General package development

DESCRIPTION

Data

Vignettes

SW_QuickStart.Rmd

Man pages

R code

Best, Kayla

bioc-issue-bot commented 2 years ago

Received a valid push on git.bioconductor.org; starting a build for commit id: 3c27fe3b26a0335cf3343cd88b00a1b32f504e59

bioc-issue-bot commented 2 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. This link will be active for 21 days.

Remember: if you submitted your package after July 7th, 2020, when making changes to your repository push to git@git.bioconductor.org:packages/SpliceWiz to trigger a new build. A quick tutorial for setting up remotes and pushing to upstream can be found here.

alexchwong commented 2 years ago

Thanks @Kayla-Morrell for the initial review / feedback. I have addressed all REQUIRED sections in the comments below:

General package development

* [ ]  REQUIRED: In the README file, the installation instructions should also
  include how to install the package from Bioconductor.

Added instructions for installation from Bioconductor (for devel / 3.16)

DESCRIPTION

* [ ]  SUGGESTION: Consider adding these automatically suggested biocViews:
  ATACSeq, DNASeq, RIPSeq, Microarray, mRNAMicroarray, CRISPR

Data

* [ ]  REQUIRED: The `inst/extdata/` files need to have documentation in the
  `inst/script/` directory.  There needs to be documentation on how the data was
  generated and source information. It should include source URLs and any key
  information regarding filtering or processing. It can be executable code, sudo
  code, or a text description. Users should be able to download and roughly
  reproduce the file or object that is present as data.

The data in inst/extdata/ can be reproduced by calling the make_example_NxtSE function found within inst/scripts/make-data.R file. I have updated the documentation as comments above this function in make-data.R

Vignettes

* [ ]  REQUIRED: Most of the code chunks in the `SW_Cookbook.Rmd` file contain
  `eval = FALSE`. We don't allow for static vignettes and executable code is a
  must.

I have removed SW_Cookbook.Rmd

* [ ]  SUGGESTION: We encourage the use of `BiocStyle` for formatting.

* [ ]  REQUIRED: I couldn't find reference to `img/MenuBar.jpg` or
  `img/Settings.jpg` in the vignettes. If these images aren't needed they should
  be removed.

I have added an extra section that utilises img/MenuBar.jpg. img/Settings.jpg is now removed

_SWQuickStart.Rmd

* [ ]  REQUIRED: The 'Introduction' section needs more detail about the package
  itself. It should serve as an abstract to introduce the objective, models,
  unique functions, key points, etc. that distinguish the package from other
  packages in the same area. This should also include a short motivation for the
  package in general as well as motivation for inclusion in Bioconductor.

I have updated the vignette to briefly explain SpliceWiz.

* [ ]  SUGGESTION: I would suggest not hiding results so if a user is running
  through the vignette code they will be able to compare their results to yours
  to be sure they are getting the correct output.

Thanks Kayla. I have run all the code in the non-hidden cells and found that the output reproduces what is displayed in the non-hidden cells in the vignette.

Man pages

* [ ]  REQUIRED: Usage of `dontrun{}` / `donttest{}` tags found in man page
  examples. This is acceptable if the functions are run elsewhere, such as in
  the vignette(s) or tests. I could not find where `calculateMappability()`,
  `STAR_buildRef()`, `STAR_alignReads()`, `STAR_alignExperiment()`, or
  `findFASTQ()` were run. Please make sure these functions are being run in code
  somewhere (i.e., man page examples, vignette executable code, or runnable unit
  tests).

I have removed all dontrun{} segments except the one for Mappability-methods. calculateMappability() is now tested via unit tests (tests\testthat\test-Mappa.R)

The STAR methods have now been removed, as well as findFASTQ. They were wrapper functions for the STAR RNA-seq aligner, that would only work on linux systems with STAR installed.

* [ ]  REQUIRED: For those functions that are being run else where but you don't
  want to have run in the man page examples use `donttest{}` over `dontrun{}`,
  since `donttest{}` requires valid R code.

I have tried using donttest{} for Mappability-methods segment but this throws a warning in R CMD CHECK. This is because the example calls Rsubread::buildindex which would only work if the current directory is the reference directory. Calling setwd throws the warning. This is otherwise a working example that is essentially replicated in tests\testthat\test-Mappa.R, and I ask that you consider this an exceptional circumstance and allow this instance of dontrun{}.

R code

* [ ]  REQUIRED: Avoid `cat` and `print` outside of `show` methods.

All cat calls occur in the context of the show method of the ASEFilter S4 object.

All print calls occur in the context of renderPlotly() segments of the SpliceWiz GUI. They are essential to correctly display the plotly interactive plots in the GUI. I ask that you consider renderPlotly(print(x)) as equivalent to show in context of the shiny-based GUI, otherwise there is no way to render plots via the shiny app.

I'd be grateful if you could re-review SpliceWiz. On a side note, it seems that the MacOS issues has resolved itself. Thanks!

Kayla-Morrell commented 2 years ago

@alexchwong - Thank you for the thorough comments and making the necessary changes. I have looked everything over and I'd be more than happy to accept the package.

Best, Kayla

bioc-issue-bot commented 2 years ago

Your package has been accepted. It will be added to the Bioconductor nightly builds.

Thank you for contributing to Bioconductor!

Reviewers for Bioconductor packages are volunteers from the Bioconductor community. If you are interested in becoming a Bioconductor package reviewer, please see Reviewers Expectations.

lshep commented 2 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/alexchwong.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("SpliceWiz"). The package 'landing page' will be created at

https://bioconductor.org/packages/SpliceWiz

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.