Contributions icon indicating copy to clipboard operation
Contributions copied to clipboard

StabMap

Open shazanfar opened this issue 1 year ago • 10 comments

Update the following URL to point to the GitHub repository of the package you wish to submit to Bioconductor

  • Repository: https://github.com/SydneyBioX/StabMap

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 Bioconductor Package Naming Policy and acknowledge Bioconductor may retain use of package name.

  • [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.

  • [X] I am familiar with the Bioconductor code of conduct and agree to abide by it.

I am familiar with the essential aspects of Bioconductor software management, including:

  • [X] The 'devel' branch for new packages and features.
  • [X] The stable 'release' branch, made available every six months, for bug fixes.
  • [X] Bioconductor version control using Git (optionally via GitHub).

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.

shazanfar avatar May 20 '24 04:05 shazanfar

Hi @shazanfar

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: StabMap
Type: Package
Title: Stabilised mosaic single cell data integration using unshared features
Version: 0.99.1
Authors@R: c(
    person("Shila", "Ghazanfar", , "[email protected]", role = c("aut", "cre", "ctb")),
    person("Aiden", "Jin", role = "ctb"),
    person("Nicholas", "Robertson", , "[email protected]", role = "ctb")
  )
Description: StabMap performs single cell mosaic data integration by first 
    building a mosaic data topology, and for each reference dataset, traverses 
    the topology to project and predict data onto a common embedding. Mosaic
    data should be provided in a list format, with all relevant features 
    included in the data matrices within each list object. The output of
    stabMap is a joint low-dimensional embedding taking into account all 
    available relevant features. Expression imputation can also be performed
    using the StabMap embedding and any of the original data matrices for 
    given reference and query cell lists.
License: GPL-2
Encoding: UTF-8
URL: https://sydneybiox.github.io/StabMap
BugReports: https://github.com/sydneybiox/StabMap/issues
biocViews: SingleCell, DimensionReduction, Software
Depends: R (>= 4.4.0),
Imports: 
    igraph,
    scater,
    slam,
    BiocNeighbors,
    Matrix,
    MASS,
    abind,
    scran,
    UpSetR,
    SummarizedExperiment,
    methods,
    MatrixGenerics,
    BiocGenerics
Suggests: 
    knitr,
    gridExtra,
    SingleCellMultiModal,
    BiocStyle,
    magrittr
LazyData: false
RoxygenNote: 7.3.1
VignetteBuilder: knitr

bioc-issue-bot avatar May 20 '24 04:05 bioc-issue-bot

Your package has been added to git.bioconductor.org to continue the pre-review process. A build report will be posted shortly. Please fix any ERROR and WARNING in the build report before a reviewer is assigned or provide a justification on why you feel the ERROR or WARNING should be granted an exception.

IMPORTANT: Please read this documentation for setting up remotes to push to git.bioconductor.org. All changes should be pushed to git.bioconductor.org moving forward. It is required to push a version bump to git.bioconductor.org to trigger a new build report.

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 avatar May 20 '24 15:05 bioc-issue-bot

Dear Package contributor,

This is the automated single package builder at bioconductor.org.

Your package has been built on the Bioconductor Single Package Builder.

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 build report for more details.

The following are build products from R CMD build on the Single Package Builder: Linux (Ubuntu 22.04.3 LTS): StabMap_0.99.1.tar.gz

Links above active for 21 days.

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

bioc-issue-bot avatar May 20 '24 15:05 bioc-issue-bot

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

bioc-issue-bot avatar May 21 '24 00:05 bioc-issue-bot

Dear Package contributor,

This is the automated single package builder at bioconductor.org.

Your package has been built on the Bioconductor Single Package Builder.

Congratulations! The package built without errors or warnings on all platforms.

Please see the build report for more details.

The following are build products from R CMD build on the Single Package Builder: Linux (Ubuntu 22.04.3 LTS): StabMap_0.99.2.tar.gz

Links above active for 21 days.

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

bioc-issue-bot avatar May 21 '24 00:05 bioc-issue-bot

A reviewer has been assigned to your package for an indepth review. Please respond accordingly to any further comments from the reviewer.

bioc-issue-bot avatar May 28 '24 14:05 bioc-issue-bot

I sincerely apologies for the delay (traveling etc.) ... package is in really good shape already, and I think my comments are fairly minor/should be addressable promptly. Please respond to what has/not been addressed why/how, or any Qs you might have; cheers!

code

  • [ ] seq_len/along() should be used instead of 1:n (see here).

  • [ ] Commented out code etc. should be removed for release (see here); e.g., getAdaptiveK.R.

  • [ ] Consider adding a verbose=TRUE/FALSE option where applicable; users might want to suppress superfluous console output, and it's nice to let them do that easily; e.g., stabMap.R.

  • [ ] Consider implementing more "advanced" validity checks on input arguments to i) avoid computations that fail downstream and ii) give users informative errors (R errors might not always be...); e.g., stabMap(..., ncomponentsReference=50) fails with length of 'dimnames' [2] not equal to array extent.

  • [ ] When an argument should match one of a defined set of character strings, I'd recommend using match.arg (e.g., in classifyEmbedding.R: type <- match.arg() with the function definition specify valid choices via classifyEmbedding <- function(..., type=c("uniform_fixed", ...)), where the 1st is the default).

other

  • [ ] Please consider implementing unit tests; we strongly encourage them!

  • [ ] Not sure where/if it's being used, but vignettes/raw.R should probably go under inst/scripts (see here), or be removed.

  • [ ] UpSetR is only being used by mosaicDataUpSet.R; consider putting it under Suggests: rather than depending on it (see here).

  • [ ] Please add a NEWS file to keep track of version-wise changes (see here).

  • [ ] In the README, please add Bioc installation instructions using BiocManager::install().

HelenaLC avatar Jun 19 '24 12:06 HelenaLC

Thanks so much for your review, Helena! I believe we have addressed all your comments, the checklist and comments below,

code

  • [x] seq_len/along() should be used instead of 1:n (see here).

Fixed in stabmap.R

  • [x] Commented out code etc. should be removed for release (see here); e.g., getAdaptiveK.R.

Fixed in getAdaptiveK.R, classifyEmbedding_utils.R, classifyEmbedding.R, and adaptiveKNN.R

  • [x] Consider adding a verbose=TRUE/FALSE option where applicable; users might want to suppress superfluous console output, and it's nice to let them do that easily; e.g., stabMap.R.

Fixed in stabmap.R

  • [x] Consider implementing more "advanced" validity checks on input arguments to i) avoid computations that fail downstream and ii) give users informative errors (R errors might not always be...); e.g., stabMap(..., ncomponentsReference=50) fails with length of 'dimnames' [2] not equal to array extent.

Thanks for flagging this example error (which occurs when the input number of PCs is higher than the number of samples for a given reference dataset), the issue itself is fixed by taking the columns of the reference PCs. Also fixed argument in the call to scran::modelGeneVar() to deal with density error when stabMap(..., maxFeatures = ) argument is set too low.

  • [x] When an argument should match one of a defined set of character strings, I'd recommend using match.arg (e.g., in classifyEmbedding.R: type <- match.arg() with the function definition specify valid choices via classifyEmbedding <- function(..., type=c("uniform_fixed", ...)), where the 1st is the default).

Thanks for this! Implemented for classifyEmbedding() arguments type and error_measure.

other

  • [x] Please consider implementing unit tests; we strongly encourage them!

Unit tests implemented for stabMap, classifyEmbedding and imputeEmbedding functions

  • [x] Not sure where/if it's being used, but vignettes/raw.R should probably go under inst/scripts (see here), or be removed.

Thanks for this, removed

  • [x] UpSetR is only being used by mosaicDataUpSet.R; consider putting it under Suggests: rather than depending on it (see here).

fixed

  • [x] Please add a NEWS file to keep track of version-wise changes (see here).

added

  • [x] In the README, please add Bioc installation instructions using BiocManager::install().

added!

Please let us know if there are any further issues to fix, thanks again

shazanfar avatar Jul 02 '24 06:07 shazanfar

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

bioc-issue-bot avatar Jul 02 '24 07:07 bioc-issue-bot

Dear Package contributor,

This is the automated single package builder at bioconductor.org.

Your package has been built on the Bioconductor Single Package Builder.

Congratulations! The package built without errors or warnings on all platforms.

Please see the build report for more details.

The following are build products from R CMD build on the Single Package Builder: macOS 12.7.1 Monterey: StabMap_0.99.3.tar.gz Linux (Ubuntu 22.04.3 LTS): StabMap_0.99.3.tar.gz

Links above active for 21 days.

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

bioc-issue-bot avatar Jul 02 '24 07:07 bioc-issue-bot

Thanks, getting close; few outstanding comments, some of which I didn't catch before... from most to least "severe", but all minor:

  • [ ] related to the next point, scater is a rather heavy dependency when considering it is being used only for calculatePCA(); could this be omitted in favor of stats::prcomp?

  • [ ] not sufficiently familiar with the details to judge, but is scran::modelGeneVar() a requirement, or could users in principle pass a subset of features selected for previously? In the latter case, scran should go under Suggests: as it is only used for feature selection in stabMap, which could be done by other means (your call!).

  • [ ] classifyEmbedding() currently initializes an empty list and appends results, which is inefficient and should be avoided (see here); please pre-allocate and instead (e.g., train_k could be done in one line using replicate, and the rest using l/mapply or similar)... also anywhere else where applicable.

  • [ ] again, not (yet) a requirement, but I'd very much encourage more thorough unit testing, i.e., spending a day to cover as much of the package as possible, not just testing that a function runs (documentation examples already do this), but testing failure for unexpected inputs (e.g., the ones mentioned above), any edge-cases you can think of, various argument input combinations, output structure (dimensions, names, content, etc.) - anything you can come up with, really... proper unit testing is crucial for long-term maintenance, and also makes it easier on developers themselves!

  • [ ] for consistency (& guidelines)... (test-)classifyEmbedding.R:
    1:nrow(.) -> seq_len(nrow(.)), 1:length(.) -> seq_along(.)

HelenaLC avatar Jul 15 '24 08:07 HelenaLC

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

bioc-issue-bot avatar Aug 01 '24 02:08 bioc-issue-bot

Dear Package contributor,

This is the automated single package builder at bioconductor.org.

Your package has been built on the Bioconductor Single Package Builder.

Congratulations! The package built without errors or warnings on all platforms.

Please see the build report for more details.

The following are build products from R CMD build on the Single Package Builder: macOS 12.7.1 Monterey: StabMap_0.99.4.tar.gz Linux (Ubuntu 22.04.3 LTS): StabMap_0.99.4.tar.gz

Links above active for 21 days.

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

bioc-issue-bot avatar Aug 01 '24 02:08 bioc-issue-bot

Thanks for these comments Helena, please see responses below and let me know your thoughts,

  • [X] related to the next point, scater is a rather heavy dependency when considering it is being used only for calculatePCA(); could this be omitted in favor of stats::prcomp?

This is a good point! Instead of replacing with stats::prcomp, we have replaced it with BiocSingular::runPCA. Since scater package takes from BiocSingular this means that the results are the same up-to-rotations. As a bit of a bonus we can pass on the parallel BPPARAM over as well. As a result of this, the scater dependency is now removed (moved to Suggests for the vignette), and we have added the BiocSingular and BiocParallel dependencies.

  • [X] not sufficiently familiar with the details to judge, but is scran::modelGeneVar() a requirement, or could users in principle pass a subset of features selected for previously? In the latter case, scran should go under Suggests: as it is only used for feature selection in stabMap, which could be done by other means (your call!).

Yes, scran is now in Suggests:, and the feature selection step within stabMap function (needed when maxFeatures argument is used) has been moved to its own function selectFeatures

  • [X] classifyEmbedding() currently initializes an empty list and appends results, which is inefficient and should be avoided (see here); please pre-allocate and instead (e.g., train_k could be done in one line using replicate, and the rest using l/mapply or similar)... also anywhere else where applicable.

Fixed, added preallocation of the list object

  • [X] again, not (yet) a requirement, but I'd very much encourage more thorough unit testing, i.e., spending a day to cover as much of the package as possible, not just testing that a function runs (documentation examples already do this), but testing failure for unexpected inputs (e.g., the ones mentioned above), any edge-cases you can think of, various argument input combinations, output structure (dimensions, names, content, etc.) - anything you can come up with, really... proper unit testing is crucial for long-term maintenance, and also makes it easier on developers themselves!

Thanks for this, we have added error and warning unit tests along with the consistency of expected outputs from the previous tests that were in place.

  • [X] for consistency (& guidelines)... (test-)classifyEmbedding.R: 1:nrow(.) -> seq_len(nrow(.)), 1:length(.) -> seq_along(.)

Thanks! fixed

shazanfar avatar Aug 01 '24 02:08 shazanfar

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.

bioc-issue-bot avatar Aug 01 '24 09:08 bioc-issue-bot

The default branch of your GitHub repository has been added to Bioconductor's git repository as branch devel.

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/shazanfar.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("StabMap"). The package 'landing page' will be created at

https://bioconductor.org/packages/StabMap

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.

lshep avatar Aug 05 '24 14:08 lshep