Contributions icon indicating copy to clipboard operation
Contributions copied to clipboard

TENxIO

Open LiNk-NY opened this issue 1 year ago • 5 comments

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

  • Repository: https://github.com/waldronlab/TENxIO

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.

LiNk-NY avatar Aug 24 '22 23:08 LiNk-NY

Hi @LiNk-NY

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: TENxIO
Type: Package
Title: Import methods for 10X Genomics files
Version: 0.99.3
Authors@R:
  person(
    "Marcel", "Ramos", , "[email protected]",
    c("aut", "cre"), c(ORCID = "0000-0002-3242-0582")
  )
Depends: R (>= 4.2.0), SingleCellExperiment, SummarizedExperiment
Imports:
  BiocBaseUtils,
  BiocGenerics,
  BiocIO,
  GenomeInfoDb,
  GenomicRanges,
  Matrix,
  MatrixGenerics,
  methods,
  RCurl,
  readr,
  R.utils,
  S4Vectors,
  utils
Suggests:
  BiocStyle,
  ExperimentHub,
  HDF5Array,
  knitr,
  RaggedExperiment,
  rhdf5,
  rmarkdown,
  Rsamtools,
  tinytest
Description: Provides a structured S4 approach to importing data files from
  the 10X pipelines. It mainly supports Single Cell Multiome ATAC + Gene
  Expresssion data among other data types. The main Bioconductor data
  representations used are SingleCellExperiment and RaggedExperiment.
biocViews: Software, Infrastructure, DataImport, SingleCell
VignetteBuilder: knitr
License: Artistic-2.0
Encoding: UTF-8
Roxygen: list(markdown = TRUE)
RoxygenNote: 7.2.1
BugReports: https://github.com/waldronlab/TENxIO/issues
URL: https://github.com/waldronlab/TENxIO
Collate: 
    'TENxFile-class.R'
    'TENxFileList-class.R'
    'TENxFragments-class.R'
    'TENxH5-class.R'
    'TENxIO-package.R'
    'TENxMTX-class.R'
    'TENxPeaks-class.R'
    'utils.R'

bioc-issue-bot avatar Aug 24 '22 23:08 bioc-issue-bot

I've not looked at the package closely, but has the design and implications of this package been discussed/planned with the DropletUtils and SpatialExperiment authors, which already have DropletUtils::read10xCounts(), DropletUtils::read10xMolInfo(), and SpatialExperiment::read10xVisium()? CC: @ltla, @drighelli

PeteHaitch avatar Aug 25 '22 00:08 PeteHaitch

For DropletUtils: I have wanted to split the 10X-specific methods into a separate package, so as to avoid having to deal with the minutiae of keeping up with Cellranger. If this package can provide drop-in replacements for the various 10X processing functions (read10xCounts being the most obvious candidate, but also the various molecule info-reading files as well), then I would not be opposed to deprecating those functions in DropletUtils and pointing to this package. (cc @jonathangriffiths)

For SpatialExperiment: my 2c would be that it would be nice to distinguish between the SpatialExperiment data structure, which is intended to be technology-agnostic; and the Visium-specific methods for reading in such a structure, which could conceivably live in another package. The benefit would be that we achieve a clearly defined interface between the data structure and a specific technology; the downside is that it becomes harder for them to co-evolve.

LTLA avatar Aug 25 '22 06:08 LTLA

Hi @PeteHaitch and @LTLA !

Dario @drighelli had pointed me to the functionality in https://github.com/drighelli/read10xMultiome which should be covered by this package. I can also work with Dario to support 10X Visium data or have this supported in another package.

I haven't discussed with Aaron @LTLA but I'd be happy to and provide drop-in replacement functionality. I also agree with Aaron RE: SpatialExperiment in that the infrastructure and data specifications should be kept separate.

Best, Marcel

LiNk-NY avatar Aug 25 '22 14:08 LiNk-NY

Thanks for directing me to this conversation, I also think that could be good to have common IO functionalities for 10x outputs in a common package.

Btw, the main author of the read10xVisium function is @HelenaLC, so I think it's good to involve her in this discussion.

Dario

drighelli avatar Aug 29 '22 10:08 drighelli

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 avatar Sep 12 '22 15:09 bioc-issue-bot

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 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 [email protected]:packages/TENxIO to trigger a new build. A quick tutorial for setting up remotes and pushing to upstream can be found here.

bioc-issue-bot avatar Sep 12 '22 15:09 bioc-issue-bot

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

bioc-issue-bot avatar Sep 16 '22 16:09 bioc-issue-bot

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 [email protected]:packages/TENxIO to trigger a new build. A quick tutorial for setting up remotes and pushing to upstream can be found here.

bioc-issue-bot avatar Sep 16 '22 16:09 bioc-issue-bot

Hi @LiNk-NY,

Thank you for submitting TENxIO to Bioconductor. The package is already in reasonably good shape.

However, I do think TENxIO requires comparison to existing Bioconductor solutions for importing 10x Genomics files into R, namely DropletUtils and some of the functionality in SpatialExperiment. The package name sort of suggests that TENxIO is the solution for importing 10x files, but in my testing it was limited to certain types of 10x files and it wasn't clear to me which ones are supported. It would be preferable to have a canonical/preferred Bioconductor package and methods to address this topic rather than multiple packages with overlapping and slightly different approaches.

For acceptance into Bioconductor, there are a number of Required points, as well as Recommended points, that I would ask you to first please address. Would you please provide line-by-line comments to my initial review so that I know what changes I'm looking for in my re-review.

Cheers, Pete

Required

  • [ ] Please be more precise about which 10x H5 files are supported. I tried a few examples and encountered problems. For example:
suppressPackageStartupMessages(library(DropletUtils))
suppressPackageStartupMessages(library(DropletTestFiles))
suppressPackageStartupMessages(library(TENxIO))

path <- getTestFile(
  "tenx-3.1.0-5k_pbmc_protein_v3/1.0.0/filtered.h5", 
  prefix = TRUE)
#> snapshotDate(): 2022-10-03
#> see ?DropletTestFiles and browseVignettes('DropletTestFiles') for documentation
#> loading from cache

sce1 <- read10xCounts(path, type = "HDF5")
sce2 <- import(TENxH5(path))
#> Warning: File extension is not 'h5'; import may fail
#> Error in rhdf5::h5read(path(x), paste0(group, x@ranges), list(rows), s3 = remote): Object 'matrix/features/interval' does not exist in this HDF5 file.

Created on 2022-10-04 with reprex v2.0.2

Session info
sessioninfo::session_info()
#> ─ Session info ───────────────────────────────────────────────────────────────
#>  setting  value
#>  version  R version 4.2.1 (2022-06-23)
#>  os       macOS Big Sur ... 10.16
#>  system   x86_64, darwin17.0
#>  ui       X11
#>  language (EN)
#>  collate  en_AU.UTF-8
#>  ctype    en_AU.UTF-8
#>  tz       Australia/Melbourne
#>  date     2022-10-04
#>  pandoc   2.18 @ /Applications/RStudio.app/Contents/MacOS/quarto/bin/tools/ (via rmarkdown)
#> 
#> ─ Packages ───────────────────────────────────────────────────────────────────
#>  package                * version  date (UTC) lib source
#>  AnnotationDbi            1.59.1   2022-05-19 [1] Bioconductor
#>  AnnotationHub            3.5.2    2022-09-27 [1] Bioconductor
#>  assertthat               0.2.1    2019-03-21 [1] CRAN (R 4.2.0)
#>  beachmat                 2.13.4   2022-06-21 [1] Bioconductor
#>  Biobase                * 2.57.1   2022-05-19 [1] Bioconductor
#>  BiocBaseUtils            0.99.12  2022-09-02 [1] Bioconductor
#>  BiocFileCache            2.5.0    2022-04-26 [1] Bioconductor
#>  BiocGenerics           * 0.43.4   2022-09-11 [1] Bioconductor
#>  BiocIO                   1.7.1    2022-05-06 [1] Bioconductor
#>  BiocManager              1.30.18  2022-05-18 [1] CRAN (R 4.2.0)
#>  BiocParallel             1.31.12  2022-08-03 [1] Bioconductor
#>  BiocVersion              3.16.0   2022-04-26 [1] Bioconductor
#>  Biostrings               2.65.6   2022-09-09 [1] Bioconductor
#>  bit                      4.0.4    2020-08-04 [1] CRAN (R 4.2.0)
#>  bit64                    4.0.5    2020-08-30 [1] CRAN (R 4.2.0)
#>  bitops                   1.0-7    2021-04-24 [1] CRAN (R 4.2.0)
#>  blob                     1.2.3    2022-04-10 [1] CRAN (R 4.2.0)
#>  cachem                   1.0.6    2021-08-19 [1] CRAN (R 4.2.0)
#>  cli                      3.4.1    2022-09-23 [1] CRAN (R 4.2.1)
#>  codetools                0.2-18   2020-11-04 [1] CRAN (R 4.2.1)
#>  crayon                   1.5.2    2022-09-29 [1] CRAN (R 4.2.1)
#>  curl                     4.3.2    2021-06-23 [1] CRAN (R 4.2.0)
#>  DBI                      1.1.3    2022-06-18 [1] CRAN (R 4.2.0)
#>  dbplyr                   2.2.1    2022-06-27 [1] CRAN (R 4.2.0)
#>  DelayedArray             0.23.2   2022-09-15 [1] Bioconductor
#>  DelayedMatrixStats       1.19.1   2022-09-27 [1] Bioconductor
#>  digest                   0.6.29   2021-12-01 [1] CRAN (R 4.2.0)
#>  dplyr                    1.0.10   2022-09-01 [1] CRAN (R 4.2.0)
#>  dqrng                    0.3.0    2021-05-01 [1] CRAN (R 4.2.0)
#>  DropletTestFiles       * 1.7.0    2022-04-27 [1] Bioconductor
#>  DropletUtils           * 1.17.3   2022-09-22 [1] Bioconductor
#>  edgeR                    3.39.6   2022-08-08 [1] Bioconductor
#>  ellipsis                 0.3.2    2021-04-29 [1] CRAN (R 4.2.0)
#>  evaluate                 0.16     2022-08-09 [1] CRAN (R 4.2.0)
#>  ExperimentHub            2.5.0    2022-04-26 [1] Bioconductor
#>  fansi                    1.0.3    2022-03-24 [1] CRAN (R 4.2.0)
#>  fastmap                  1.1.0    2021-01-25 [1] CRAN (R 4.2.0)
#>  filelock                 1.0.2    2018-10-05 [1] CRAN (R 4.2.0)
#>  fs                       1.5.2    2021-12-08 [1] CRAN (R 4.2.0)
#>  generics                 0.1.3    2022-07-05 [1] CRAN (R 4.2.0)
#>  GenomeInfoDb           * 1.33.7   2022-09-07 [1] Bioconductor
#>  GenomeInfoDbData         1.2.9    2022-09-30 [1] Bioconductor
#>  GenomicRanges          * 1.49.1   2022-08-18 [1] Bioconductor
#>  glue                     1.6.2    2022-02-24 [1] CRAN (R 4.2.0)
#>  HDF5Array                1.25.2   2022-08-03 [1] Bioconductor
#>  highr                    0.9      2021-04-16 [1] CRAN (R 4.2.0)
#>  hms                      1.1.2    2022-08-19 [1] CRAN (R 4.2.0)
#>  htmltools                0.5.3    2022-07-18 [1] CRAN (R 4.2.0)
#>  httpuv                   1.6.6    2022-09-08 [1] CRAN (R 4.2.0)
#>  httr                     1.4.4    2022-08-17 [1] CRAN (R 4.2.0)
#>  interactiveDisplayBase   1.35.0   2022-04-26 [1] Bioconductor
#>  IRanges                * 2.31.2   2022-08-18 [1] Bioconductor
#>  KEGGREST                 1.37.3   2022-07-10 [1] Bioconductor
#>  knitr                    1.40     2022-08-24 [1] CRAN (R 4.2.0)
#>  later                    1.3.0    2021-08-18 [1] CRAN (R 4.2.0)
#>  lattice                  0.20-45  2021-09-22 [1] CRAN (R 4.2.1)
#>  lifecycle                1.0.2    2022-09-09 [1] CRAN (R 4.2.0)
#>  limma                    3.53.10  2022-09-26 [1] Bioconductor
#>  locfit                   1.5-9.6  2022-07-11 [1] CRAN (R 4.2.0)
#>  magrittr                 2.0.3    2022-03-30 [1] CRAN (R 4.2.0)
#>  Matrix                   1.5-1    2022-09-13 [1] CRAN (R 4.2.0)
#>  MatrixGenerics         * 1.9.1    2022-06-24 [1] Bioconductor
#>  matrixStats            * 0.62.0   2022-04-19 [1] CRAN (R 4.2.0)
#>  memoise                  2.0.1    2021-11-26 [1] CRAN (R 4.2.0)
#>  mime                     0.12     2021-09-28 [1] CRAN (R 4.2.0)
#>  pillar                   1.8.1    2022-08-19 [1] CRAN (R 4.2.0)
#>  pkgconfig                2.0.3    2019-09-22 [1] CRAN (R 4.2.0)
#>  png                      0.1-7    2013-12-03 [1] CRAN (R 4.2.0)
#>  promises                 1.2.0.1  2021-02-11 [1] CRAN (R 4.2.0)
#>  purrr                    0.3.4    2020-04-17 [1] CRAN (R 4.2.0)
#>  R.cache                  0.16.0   2022-07-21 [1] CRAN (R 4.2.0)
#>  R.methodsS3              1.8.2    2022-06-13 [1] CRAN (R 4.2.0)
#>  R.oo                     1.25.0   2022-06-12 [1] CRAN (R 4.2.0)
#>  R.utils                  2.12.0   2022-06-28 [1] CRAN (R 4.2.0)
#>  R6                       2.5.1    2021-08-19 [1] CRAN (R 4.2.0)
#>  rappdirs                 0.3.3    2021-01-31 [1] CRAN (R 4.2.0)
#>  Rcpp                     1.0.9    2022-07-08 [1] CRAN (R 4.2.0)
#>  RCurl                    1.98-1.9 2022-10-03 [1] CRAN (R 4.2.1)
#>  readr                    2.1.3    2022-10-01 [1] CRAN (R 4.2.1)
#>  reprex                   2.0.2    2022-08-17 [1] CRAN (R 4.2.0)
#>  rhdf5                    2.41.1   2022-06-21 [1] Bioconductor
#>  rhdf5filters             1.9.0    2022-04-26 [1] Bioconductor
#>  Rhdf5lib                 1.19.2   2022-05-13 [1] Bioconductor
#>  rlang                    1.0.6    2022-09-24 [1] CRAN (R 4.2.1)
#>  rmarkdown                2.16     2022-08-24 [1] CRAN (R 4.2.0)
#>  RSQLite                  2.2.17   2022-09-10 [1] CRAN (R 4.2.0)
#>  rstudioapi               0.14     2022-08-22 [1] CRAN (R 4.2.0)
#>  S4Vectors              * 0.35.4   2022-09-18 [1] Bioconductor
#>  scuttle                  1.7.4    2022-08-23 [1] Bioconductor
#>  sessioninfo              1.2.2    2021-12-06 [1] CRAN (R 4.2.0)
#>  shiny                    1.7.2    2022-07-19 [1] CRAN (R 4.2.0)
#>  SingleCellExperiment   * 1.19.1   2022-09-30 [1] Bioconductor
#>  sparseMatrixStats        1.9.0    2022-04-26 [1] Bioconductor
#>  stringi                  1.7.8    2022-07-11 [1] CRAN (R 4.2.0)
#>  stringr                  1.4.1    2022-08-20 [1] CRAN (R 4.2.0)
#>  styler                   1.7.0    2022-03-13 [1] CRAN (R 4.2.0)
#>  SummarizedExperiment   * 1.27.3   2022-09-15 [1] Bioconductor
#>  TENxIO                 * 0.99.4   2022-10-03 [1] Bioconductor
#>  tibble                   3.1.8    2022-07-22 [1] CRAN (R 4.2.0)
#>  tidyselect               1.1.2    2022-02-21 [1] CRAN (R 4.2.0)
#>  tzdb                     0.3.0    2022-03-28 [1] CRAN (R 4.2.0)
#>  utf8                     1.2.2    2021-07-24 [1] CRAN (R 4.2.0)
#>  vctrs                    0.4.2    2022-09-29 [1] CRAN (R 4.2.1)
#>  withr                    2.5.0    2022-03-03 [1] CRAN (R 4.2.0)
#>  xfun                     0.33     2022-09-12 [1] CRAN (R 4.2.0)
#>  xtable                   1.8-4    2019-04-21 [1] CRAN (R 4.2.0)
#>  XVector                  0.37.1   2022-08-25 [1] Bioconductor
#>  yaml                     2.3.5    2022-02-21 [1] CRAN (R 4.2.0)
#>  zlibbioc                 1.43.0   2022-04-26 [1] Bioconductor
#> 
#>  [1] /Library/Frameworks/R.framework/Versions/4.2/Resources/library
#> 
#> ──────────────────────────────────────────────────────────────────────────────
  • [ ] Related to the above, the lack of support for importing version 2 TENxH5 files (which are used in the vignette) seems like it should be addressed prior to an initial release; is it realistic to add support for these prior to the next release?
suppressPackageStartupMessages(library(TENxIO))

hub <- ExperimentHub::ExperimentHub()
#> snapshotDate(): 2022-10-03
fname <- hub[["EH1039"]]
#> see ?TENxBrainData and browseVignettes('TENxBrainData') for documentation
#> loading from cache

con <- TENxFile(fname, extension = "h5", group = "mm10", version = "2")
#> Warning: 'group' not in known 10X groups: matrix, outs

import(con)
#> Error in import(con): Version 2 not supported yet.

Created on 2022-10-04 with reprex v2.0.2

Session info
sessioninfo::session_info()
#> ─ Session info ───────────────────────────────────────────────────────────────
#>  setting  value
#>  version  R version 4.2.1 (2022-06-23)
#>  os       macOS Big Sur ... 10.16
#>  system   x86_64, darwin17.0
#>  ui       X11
#>  language (EN)
#>  collate  en_AU.UTF-8
#>  ctype    en_AU.UTF-8
#>  tz       Australia/Melbourne
#>  date     2022-10-04
#>  pandoc   2.18 @ /Applications/RStudio.app/Contents/MacOS/quarto/bin/tools/ (via rmarkdown)
#> 
#> ─ Packages ───────────────────────────────────────────────────────────────────
#>  package                * version  date (UTC) lib source
#>  AnnotationDbi            1.59.1   2022-05-19 [1] Bioconductor
#>  AnnotationHub            3.5.2    2022-09-27 [1] Bioconductor
#>  assertthat               0.2.1    2019-03-21 [1] CRAN (R 4.2.0)
#>  Biobase                * 2.57.1   2022-05-19 [1] Bioconductor
#>  BiocBaseUtils            0.99.12  2022-09-02 [1] Bioconductor
#>  BiocFileCache            2.5.0    2022-04-26 [1] Bioconductor
#>  BiocGenerics           * 0.43.4   2022-09-11 [1] Bioconductor
#>  BiocIO                   1.7.1    2022-05-06 [1] Bioconductor
#>  BiocManager              1.30.18  2022-05-18 [1] CRAN (R 4.2.0)
#>  BiocVersion              3.16.0   2022-04-26 [1] Bioconductor
#>  Biostrings               2.65.6   2022-09-09 [1] Bioconductor
#>  bit                      4.0.4    2020-08-04 [1] CRAN (R 4.2.0)
#>  bit64                    4.0.5    2020-08-30 [1] CRAN (R 4.2.0)
#>  bitops                   1.0-7    2021-04-24 [1] CRAN (R 4.2.0)
#>  blob                     1.2.3    2022-04-10 [1] CRAN (R 4.2.0)
#>  cachem                   1.0.6    2021-08-19 [1] CRAN (R 4.2.0)
#>  cli                      3.4.1    2022-09-23 [1] CRAN (R 4.2.1)
#>  crayon                   1.5.2    2022-09-29 [1] CRAN (R 4.2.1)
#>  curl                     4.3.2    2021-06-23 [1] CRAN (R 4.2.0)
#>  DBI                      1.1.3    2022-06-18 [1] CRAN (R 4.2.0)
#>  dbplyr                   2.2.1    2022-06-27 [1] CRAN (R 4.2.0)
#>  DelayedArray           * 0.23.2   2022-09-15 [1] Bioconductor
#>  digest                   0.6.29   2021-12-01 [1] CRAN (R 4.2.0)
#>  dplyr                    1.0.10   2022-09-01 [1] CRAN (R 4.2.0)
#>  ellipsis                 0.3.2    2021-04-29 [1] CRAN (R 4.2.0)
#>  evaluate                 0.16     2022-08-09 [1] CRAN (R 4.2.0)
#>  ExperimentHub            2.5.0    2022-04-26 [1] Bioconductor
#>  fansi                    1.0.3    2022-03-24 [1] CRAN (R 4.2.0)
#>  fastmap                  1.1.0    2021-01-25 [1] CRAN (R 4.2.0)
#>  filelock                 1.0.2    2018-10-05 [1] CRAN (R 4.2.0)
#>  fs                       1.5.2    2021-12-08 [1] CRAN (R 4.2.0)
#>  generics                 0.1.3    2022-07-05 [1] CRAN (R 4.2.0)
#>  GenomeInfoDb           * 1.33.7   2022-09-07 [1] Bioconductor
#>  GenomeInfoDbData         1.2.9    2022-09-30 [1] Bioconductor
#>  GenomicRanges          * 1.49.1   2022-08-18 [1] Bioconductor
#>  glue                     1.6.2    2022-02-24 [1] CRAN (R 4.2.0)
#>  HDF5Array              * 1.25.2   2022-08-03 [1] Bioconductor
#>  highr                    0.9      2021-04-16 [1] CRAN (R 4.2.0)
#>  hms                      1.1.2    2022-08-19 [1] CRAN (R 4.2.0)
#>  htmltools                0.5.3    2022-07-18 [1] CRAN (R 4.2.0)
#>  httpuv                   1.6.6    2022-09-08 [1] CRAN (R 4.2.0)
#>  httr                     1.4.4    2022-08-17 [1] CRAN (R 4.2.0)
#>  interactiveDisplayBase   1.35.0   2022-04-26 [1] Bioconductor
#>  IRanges                * 2.31.2   2022-08-18 [1] Bioconductor
#>  KEGGREST                 1.37.3   2022-07-10 [1] Bioconductor
#>  knitr                    1.40     2022-08-24 [1] CRAN (R 4.2.0)
#>  later                    1.3.0    2021-08-18 [1] CRAN (R 4.2.0)
#>  lattice                  0.20-45  2021-09-22 [1] CRAN (R 4.2.1)
#>  lifecycle                1.0.2    2022-09-09 [1] CRAN (R 4.2.0)
#>  magrittr                 2.0.3    2022-03-30 [1] CRAN (R 4.2.0)
#>  Matrix                 * 1.5-1    2022-09-13 [1] CRAN (R 4.2.0)
#>  MatrixGenerics         * 1.9.1    2022-06-24 [1] Bioconductor
#>  matrixStats            * 0.62.0   2022-04-19 [1] CRAN (R 4.2.0)
#>  memoise                  2.0.1    2021-11-26 [1] CRAN (R 4.2.0)
#>  mime                     0.12     2021-09-28 [1] CRAN (R 4.2.0)
#>  pillar                   1.8.1    2022-08-19 [1] CRAN (R 4.2.0)
#>  pkgconfig                2.0.3    2019-09-22 [1] CRAN (R 4.2.0)
#>  png                      0.1-7    2013-12-03 [1] CRAN (R 4.2.0)
#>  promises                 1.2.0.1  2021-02-11 [1] CRAN (R 4.2.0)
#>  purrr                    0.3.4    2020-04-17 [1] CRAN (R 4.2.0)
#>  R.cache                  0.16.0   2022-07-21 [1] CRAN (R 4.2.0)
#>  R.methodsS3              1.8.2    2022-06-13 [1] CRAN (R 4.2.0)
#>  R.oo                     1.25.0   2022-06-12 [1] CRAN (R 4.2.0)
#>  R.utils                  2.12.0   2022-06-28 [1] CRAN (R 4.2.0)
#>  R6                       2.5.1    2021-08-19 [1] CRAN (R 4.2.0)
#>  rappdirs                 0.3.3    2021-01-31 [1] CRAN (R 4.2.0)
#>  Rcpp                     1.0.9    2022-07-08 [1] CRAN (R 4.2.0)
#>  RCurl                    1.98-1.9 2022-10-03 [1] CRAN (R 4.2.1)
#>  readr                    2.1.3    2022-10-01 [1] CRAN (R 4.2.1)
#>  reprex                   2.0.2    2022-08-17 [1] CRAN (R 4.2.0)
#>  rhdf5                  * 2.41.1   2022-06-21 [1] Bioconductor
#>  rhdf5filters             1.9.0    2022-04-26 [1] Bioconductor
#>  Rhdf5lib                 1.19.2   2022-05-13 [1] Bioconductor
#>  rlang                    1.0.6    2022-09-24 [1] CRAN (R 4.2.1)
#>  rmarkdown                2.16     2022-08-24 [1] CRAN (R 4.2.0)
#>  RSQLite                  2.2.17   2022-09-10 [1] CRAN (R 4.2.0)
#>  rstudioapi               0.14     2022-08-22 [1] CRAN (R 4.2.0)
#>  S4Vectors              * 0.35.4   2022-09-18 [1] Bioconductor
#>  sessioninfo              1.2.2    2021-12-06 [1] CRAN (R 4.2.0)
#>  shiny                    1.7.2    2022-07-19 [1] CRAN (R 4.2.0)
#>  SingleCellExperiment   * 1.19.1   2022-09-30 [1] Bioconductor
#>  stringi                  1.7.8    2022-07-11 [1] CRAN (R 4.2.0)
#>  stringr                  1.4.1    2022-08-20 [1] CRAN (R 4.2.0)
#>  styler                   1.7.0    2022-03-13 [1] CRAN (R 4.2.0)
#>  SummarizedExperiment   * 1.27.3   2022-09-15 [1] Bioconductor
#>  TENxBrainData          * 1.17.0   2022-04-27 [1] Bioconductor
#>  TENxIO                 * 0.99.4   2022-10-03 [1] Bioconductor
#>  tibble                   3.1.8    2022-07-22 [1] CRAN (R 4.2.0)
#>  tidyselect               1.1.2    2022-02-21 [1] CRAN (R 4.2.0)
#>  tzdb                     0.3.0    2022-03-28 [1] CRAN (R 4.2.0)
#>  utf8                     1.2.2    2021-07-24 [1] CRAN (R 4.2.0)
#>  vctrs                    0.4.2    2022-09-29 [1] CRAN (R 4.2.1)
#>  withr                    2.5.0    2022-03-03 [1] CRAN (R 4.2.0)
#>  xfun                     0.33     2022-09-12 [1] CRAN (R 4.2.0)
#>  xtable                   1.8-4    2019-04-21 [1] CRAN (R 4.2.0)
#>  XVector                  0.37.1   2022-08-25 [1] Bioconductor
#>  yaml                     2.3.5    2022-02-21 [1] CRAN (R 4.2.0)
#>  zlibbioc                 1.43.0   2022-04-26 [1] Bioconductor
#> 
#>  [1] /Library/Frameworks/R.framework/Versions/4.2/Resources/library
#> 
#> ──────────────────────────────────────────────────────────────────────────────
  • [ ] What about other 10x file types, such as those from Visium (where currently a user would typically import using SpatialExperiment::read10xVisium())? Is it intended that TENxIO is used for these files?
  • [ ] In light of the above, I think the package name might need some adjustment to better reflect the package's scope (i.e. what types of 10x Genomics files the package supports). This package documentation and vignette also needs to review/compare this package to other packages with similar functionality or scope (e.g., DropletUtils, SpatialExperiment::read10xVisium(), there may be others).
  • [ ] R CMD check errors for me (macOS Intel). The specific error is a lack of support for S3 VFD in Rhdf5lib (see below). This may be specific to my system but have you checked TENxIO on this platform? In any case, I think this should be handled gracefully by the underlying function (and its tests).
suppressPackageStartupMessages(library(TENxIO))

pbmc_url <-
  "https://raw.githubusercontent.com/waldronlab/TENxIO/devel/inst/extdata/10k_pbmc_ATACv2_f_bc_ex.h5"

remoteh5 <- TENxFile(pbmc_url)
#> Error in H5Pset_fapl_ros3(fapl, s3credentials): Rhdf5lib was not compiled with support for the S3 VFD

Rhdf5lib::pkgconfig()
#> "/Library/Frameworks/R.framework/Versions/4.2/Resources/library/Rhdf5lib/lib/libhdf5_cpp.a" "/Library/Frameworks/R.framework/Versions/4.2/Resources/library/Rhdf5lib/lib/libhdf5.a" -L"/Library/Frameworks/R.framework/Versions/4.2/Resources/library/Rhdf5lib/lib" -lsz -laec -lz -ldl -lm

Created on 2022-10-04 with reprex v2.0.2

Session info
sessioninfo::session_info()
#> ─ Session info ───────────────────────────────────────────────────────────────
#>  setting  value
#>  version  R version 4.2.1 (2022-06-23)
#>  os       macOS Big Sur ... 10.16
#>  system   x86_64, darwin17.0
#>  ui       X11
#>  language (EN)
#>  collate  en_AU.UTF-8
#>  ctype    en_AU.UTF-8
#>  tz       Australia/Melbourne
#>  date     2022-10-04
#>  pandoc   2.18 @ /Applications/RStudio.app/Contents/MacOS/quarto/bin/tools/ (via rmarkdown)
#> 
#> ─ Packages ───────────────────────────────────────────────────────────────────
#>  package              * version  date (UTC) lib source
#>  Biobase              * 2.57.1   2022-05-19 [1] Bioconductor
#>  BiocBaseUtils          0.99.12  2022-09-02 [1] Bioconductor
#>  BiocGenerics         * 0.43.4   2022-09-11 [1] Bioconductor
#>  BiocIO                 1.7.1    2022-05-06 [1] Bioconductor
#>  bitops                 1.0-7    2021-04-24 [1] CRAN (R 4.2.0)
#>  cli                    3.4.1    2022-09-23 [1] CRAN (R 4.2.1)
#>  DelayedArray           0.23.2   2022-09-15 [1] Bioconductor
#>  digest                 0.6.29   2021-12-01 [1] CRAN (R 4.2.0)
#>  ellipsis               0.3.2    2021-04-29 [1] CRAN (R 4.2.0)
#>  evaluate               0.16     2022-08-09 [1] CRAN (R 4.2.0)
#>  fansi                  1.0.3    2022-03-24 [1] CRAN (R 4.2.0)
#>  fastmap                1.1.0    2021-01-25 [1] CRAN (R 4.2.0)
#>  fs                     1.5.2    2021-12-08 [1] CRAN (R 4.2.0)
#>  GenomeInfoDb         * 1.33.7   2022-09-07 [1] Bioconductor
#>  GenomeInfoDbData       1.2.9    2022-09-30 [1] Bioconductor
#>  GenomicRanges        * 1.49.1   2022-08-18 [1] Bioconductor
#>  glue                   1.6.2    2022-02-24 [1] CRAN (R 4.2.0)
#>  highr                  0.9      2021-04-16 [1] CRAN (R 4.2.0)
#>  hms                    1.1.2    2022-08-19 [1] CRAN (R 4.2.0)
#>  htmltools              0.5.3    2022-07-18 [1] CRAN (R 4.2.0)
#>  IRanges              * 2.31.2   2022-08-18 [1] Bioconductor
#>  knitr                  1.40     2022-08-24 [1] CRAN (R 4.2.0)
#>  lattice                0.20-45  2021-09-22 [1] CRAN (R 4.2.1)
#>  lifecycle              1.0.2    2022-09-09 [1] CRAN (R 4.2.0)
#>  magrittr               2.0.3    2022-03-30 [1] CRAN (R 4.2.0)
#>  Matrix                 1.5-1    2022-09-13 [1] CRAN (R 4.2.0)
#>  MatrixGenerics       * 1.9.1    2022-06-24 [1] Bioconductor
#>  matrixStats          * 0.62.0   2022-04-19 [1] CRAN (R 4.2.0)
#>  pillar                 1.8.1    2022-08-19 [1] CRAN (R 4.2.0)
#>  pkgconfig              2.0.3    2019-09-22 [1] CRAN (R 4.2.0)
#>  purrr                  0.3.4    2020-04-17 [1] CRAN (R 4.2.0)
#>  R.cache                0.16.0   2022-07-21 [1] CRAN (R 4.2.0)
#>  R.methodsS3            1.8.2    2022-06-13 [1] CRAN (R 4.2.0)
#>  R.oo                   1.25.0   2022-06-12 [1] CRAN (R 4.2.0)
#>  R.utils                2.12.0   2022-06-28 [1] CRAN (R 4.2.0)
#>  R6                     2.5.1    2021-08-19 [1] CRAN (R 4.2.0)
#>  RCurl                  1.98-1.9 2022-10-03 [1] CRAN (R 4.2.1)
#>  readr                  2.1.3    2022-10-01 [1] CRAN (R 4.2.1)
#>  reprex                 2.0.2    2022-08-17 [1] CRAN (R 4.2.0)
#>  rhdf5                  2.41.1   2022-06-21 [1] Bioconductor
#>  rhdf5filters           1.9.0    2022-04-26 [1] Bioconductor
#>  Rhdf5lib               1.19.2   2022-05-13 [1] Bioconductor
#>  rlang                  1.0.6    2022-09-24 [1] CRAN (R 4.2.1)
#>  rmarkdown              2.16     2022-08-24 [1] CRAN (R 4.2.0)
#>  rstudioapi             0.14     2022-08-22 [1] CRAN (R 4.2.0)
#>  S4Vectors            * 0.35.4   2022-09-18 [1] Bioconductor
#>  sessioninfo            1.2.2    2021-12-06 [1] CRAN (R 4.2.0)
#>  SingleCellExperiment * 1.19.1   2022-09-30 [1] Bioconductor
#>  stringi                1.7.8    2022-07-11 [1] CRAN (R 4.2.0)
#>  stringr                1.4.1    2022-08-20 [1] CRAN (R 4.2.0)
#>  styler                 1.7.0    2022-03-13 [1] CRAN (R 4.2.0)
#>  SummarizedExperiment * 1.27.3   2022-09-15 [1] Bioconductor
#>  TENxIO               * 0.99.4   2022-10-03 [1] Bioconductor
#>  tibble                 3.1.8    2022-07-22 [1] CRAN (R 4.2.0)
#>  tzdb                   0.3.0    2022-03-28 [1] CRAN (R 4.2.0)
#>  utf8                   1.2.2    2021-07-24 [1] CRAN (R 4.2.0)
#>  vctrs                  0.4.2    2022-09-29 [1] CRAN (R 4.2.1)
#>  withr                  2.5.0    2022-03-03 [1] CRAN (R 4.2.0)
#>  xfun                   0.33     2022-09-12 [1] CRAN (R 4.2.0)
#>  XVector                0.37.1   2022-08-25 [1] Bioconductor
#>  yaml                   2.3.5    2022-02-21 [1] CRAN (R 4.2.0)
#>  zlibbioc               1.43.0   2022-04-26 [1] Bioconductor
#> 
#>  [1] /Library/Frameworks/R.framework/Versions/4.2/Resources/library
#> 
#> ──────────────────────────────────────────────────────────────────────────────
  • [ ] Please use a smaller .h5 file in the vignette and documentation (rather than EH1039). I think it's a bit unreasonable to require a 3.9 GB download to run the example on TENxFile man page (and also used in the vignette).
  • [ ] Please clarify the return value of the import,TENxMTX-method; it currently returns a SummarizedExperiment, but the ?TENxMTX and ?TENxIO documentation seems to imply it will return a bare dgCMatrix.
  • [ ] import() on a TENxMTX produces notes as(<dgTMatrix>, "dgCMatrix") is deprecated since Matrix 1.5-0; do as(., "CsparseMatrix") instead; please address this by following the recommended fix of the Matrix authors.
  • [ ] import,TENxFileList-method will likely fail for older 10x tarballs (version 2) because the file names in 10x tarballs vary with version (e.g., features.tsv.gz (v3) vs. genes.tsv.gz (v2)). This should be gracefully handled or support added for older versions..
  • [ ] BiocCheck::BiocCheck() recommends Avoid system() ; use system2().
  • [ ] Please add an 'Introduction' section to the vignette.

Recommended

  • [ ] Strongly recommend testing TENxIO functionality using some of the example files included in DropletTestFiles (perhaps adding additional example files as necessary, e.g., from the 10x multiome or ATAC-seq kits). For example, see how these are implemeted as 'long tests' in DropletUtils.
  • [ ] What does this warning mean and should it be occurring?
suppressPackageStartupMessages(library(TENxIO))

hub <- ExperimentHub::ExperimentHub()
#> snapshotDate(): 2022-10-03
fname <- hub[["EH1039"]]
#> see ?TENxBrainData and browseVignettes('TENxBrainData') for documentation
#> loading from cache
TENxFile(fname, extension = "h5", group = "mm10", version = "2")
#> Warning: 'group' not in known 10X groups: matrix, outs
#> TENxH5 object 
#> resource: /Users/Peter/Library/Caches/org.R-project.R/R/ExperimentHub/48e4b14df09_1039 
#> projection: SingleCellExperiment 
#> dim: 27998 1306127 
#> rownames: ENSMUSG00000051951 ENSMUSG00000089699 ... ENSMUSG00000096730 ENSMUSG00000095742 
#> rowData names(3): ID Symbol Type 
#>   Type: ENSMUSG00000025900 ENSMUSG00000025902 ... ENSMUSG00000102343 ENSMUSG00000109048 
#> colnames: AAACCTGAGATAGGAG-1 AAACCTGAGCGGCTTC-1 ... TTTGTCAGTTAAAGTG-133 TTTGTCATCTGAAAGA-133
Session info
sessioninfo::session_info()
#> ─ Session info ───────────────────────────────────────────────────────────────
#>  setting  value
#>  version  R version 4.2.1 (2022-06-23)
#>  os       macOS Big Sur ... 10.16
#>  system   x86_64, darwin17.0
#>  ui       X11
#>  language (EN)
#>  collate  en_AU.UTF-8
#>  ctype    en_AU.UTF-8
#>  tz       Australia/Melbourne
#>  date     2022-10-04
#>  pandoc   2.18 @ /Applications/RStudio.app/Contents/MacOS/quarto/bin/tools/ (via rmarkdown)
#> 
#> ─ Packages ───────────────────────────────────────────────────────────────────
#>  package                * version  date (UTC) lib source
#>  AnnotationDbi            1.59.1   2022-05-19 [1] Bioconductor
#>  AnnotationHub            3.5.2    2022-09-27 [1] Bioconductor
#>  assertthat               0.2.1    2019-03-21 [1] CRAN (R 4.2.0)
#>  Biobase                * 2.57.1   2022-05-19 [1] Bioconductor
#>  BiocBaseUtils            0.99.12  2022-09-02 [1] Bioconductor
#>  BiocFileCache            2.5.0    2022-04-26 [1] Bioconductor
#>  BiocGenerics           * 0.43.4   2022-09-11 [1] Bioconductor
#>  BiocIO                   1.7.1    2022-05-06 [1] Bioconductor
#>  BiocManager              1.30.18  2022-05-18 [1] CRAN (R 4.2.0)
#>  BiocVersion              3.16.0   2022-04-26 [1] Bioconductor
#>  Biostrings               2.65.6   2022-09-09 [1] Bioconductor
#>  bit                      4.0.4    2020-08-04 [1] CRAN (R 4.2.0)
#>  bit64                    4.0.5    2020-08-30 [1] CRAN (R 4.2.0)
#>  bitops                   1.0-7    2021-04-24 [1] CRAN (R 4.2.0)
#>  blob                     1.2.3    2022-04-10 [1] CRAN (R 4.2.0)
#>  cachem                   1.0.6    2021-08-19 [1] CRAN (R 4.2.0)
#>  cli                      3.4.1    2022-09-23 [1] CRAN (R 4.2.1)
#>  crayon                   1.5.2    2022-09-29 [1] CRAN (R 4.2.1)
#>  curl                     4.3.2    2021-06-23 [1] CRAN (R 4.2.0)
#>  DBI                      1.1.3    2022-06-18 [1] CRAN (R 4.2.0)
#>  dbplyr                   2.2.1    2022-06-27 [1] CRAN (R 4.2.0)
#>  DelayedArray           * 0.23.2   2022-09-15 [1] Bioconductor
#>  digest                   0.6.29   2021-12-01 [1] CRAN (R 4.2.0)
#>  dplyr                    1.0.10   2022-09-01 [1] CRAN (R 4.2.0)
#>  ellipsis                 0.3.2    2021-04-29 [1] CRAN (R 4.2.0)
#>  evaluate                 0.16     2022-08-09 [1] CRAN (R 4.2.0)
#>  ExperimentHub            2.5.0    2022-04-26 [1] Bioconductor
#>  fansi                    1.0.3    2022-03-24 [1] CRAN (R 4.2.0)
#>  fastmap                  1.1.0    2021-01-25 [1] CRAN (R 4.2.0)
#>  filelock                 1.0.2    2018-10-05 [1] CRAN (R 4.2.0)
#>  fs                       1.5.2    2021-12-08 [1] CRAN (R 4.2.0)
#>  generics                 0.1.3    2022-07-05 [1] CRAN (R 4.2.0)
#>  GenomeInfoDb           * 1.33.7   2022-09-07 [1] Bioconductor
#>  GenomeInfoDbData         1.2.9    2022-09-30 [1] Bioconductor
#>  GenomicRanges          * 1.49.1   2022-08-18 [1] Bioconductor
#>  glue                     1.6.2    2022-02-24 [1] CRAN (R 4.2.0)
#>  HDF5Array              * 1.25.2   2022-08-03 [1] Bioconductor
#>  highr                    0.9      2021-04-16 [1] CRAN (R 4.2.0)
#>  hms                      1.1.2    2022-08-19 [1] CRAN (R 4.2.0)
#>  htmltools                0.5.3    2022-07-18 [1] CRAN (R 4.2.0)
#>  httpuv                   1.6.6    2022-09-08 [1] CRAN (R 4.2.0)
#>  httr                     1.4.4    2022-08-17 [1] CRAN (R 4.2.0)
#>  interactiveDisplayBase   1.35.0   2022-04-26 [1] Bioconductor
#>  IRanges                * 2.31.2   2022-08-18 [1] Bioconductor
#>  KEGGREST                 1.37.3   2022-07-10 [1] Bioconductor
#>  knitr                    1.40     2022-08-24 [1] CRAN (R 4.2.0)
#>  later                    1.3.0    2021-08-18 [1] CRAN (R 4.2.0)
#>  lattice                  0.20-45  2021-09-22 [1] CRAN (R 4.2.1)
#>  lifecycle                1.0.2    2022-09-09 [1] CRAN (R 4.2.0)
#>  magrittr                 2.0.3    2022-03-30 [1] CRAN (R 4.2.0)
#>  Matrix                 * 1.5-1    2022-09-13 [1] CRAN (R 4.2.0)
#>  MatrixGenerics         * 1.9.1    2022-06-24 [1] Bioconductor
#>  matrixStats            * 0.62.0   2022-04-19 [1] CRAN (R 4.2.0)
#>  memoise                  2.0.1    2021-11-26 [1] CRAN (R 4.2.0)
#>  mime                     0.12     2021-09-28 [1] CRAN (R 4.2.0)
#>  pillar                   1.8.1    2022-08-19 [1] CRAN (R 4.2.0)
#>  pkgconfig                2.0.3    2019-09-22 [1] CRAN (R 4.2.0)
#>  png                      0.1-7    2013-12-03 [1] CRAN (R 4.2.0)
#>  promises                 1.2.0.1  2021-02-11 [1] CRAN (R 4.2.0)
#>  purrr                    0.3.4    2020-04-17 [1] CRAN (R 4.2.0)
#>  R.cache                  0.16.0   2022-07-21 [1] CRAN (R 4.2.0)
#>  R.methodsS3              1.8.2    2022-06-13 [1] CRAN (R 4.2.0)
#>  R.oo                     1.25.0   2022-06-12 [1] CRAN (R 4.2.0)
#>  R.utils                  2.12.0   2022-06-28 [1] CRAN (R 4.2.0)
#>  R6                       2.5.1    2021-08-19 [1] CRAN (R 4.2.0)
#>  rappdirs                 0.3.3    2021-01-31 [1] CRAN (R 4.2.0)
#>  Rcpp                     1.0.9    2022-07-08 [1] CRAN (R 4.2.0)
#>  RCurl                    1.98-1.9 2022-10-03 [1] CRAN (R 4.2.1)
#>  readr                    2.1.3    2022-10-01 [1] CRAN (R 4.2.1)
#>  reprex                   2.0.2    2022-08-17 [1] CRAN (R 4.2.0)
#>  rhdf5                  * 2.41.1   2022-06-21 [1] Bioconductor
#>  rhdf5filters             1.9.0    2022-04-26 [1] Bioconductor
#>  Rhdf5lib                 1.19.2   2022-05-13 [1] Bioconductor
#>  rlang                    1.0.6    2022-09-24 [1] CRAN (R 4.2.1)
#>  rmarkdown                2.16     2022-08-24 [1] CRAN (R 4.2.0)
#>  RSQLite                  2.2.17   2022-09-10 [1] CRAN (R 4.2.0)
#>  rstudioapi               0.14     2022-08-22 [1] CRAN (R 4.2.0)
#>  S4Vectors              * 0.35.4   2022-09-18 [1] Bioconductor
#>  sessioninfo              1.2.2    2021-12-06 [1] CRAN (R 4.2.0)
#>  shiny                    1.7.2    2022-07-19 [1] CRAN (R 4.2.0)
#>  SingleCellExperiment   * 1.19.1   2022-09-30 [1] Bioconductor
#>  stringi                  1.7.8    2022-07-11 [1] CRAN (R 4.2.0)
#>  stringr                  1.4.1    2022-08-20 [1] CRAN (R 4.2.0)
#>  styler                   1.7.0    2022-03-13 [1] CRAN (R 4.2.0)
#>  SummarizedExperiment   * 1.27.3   2022-09-15 [1] Bioconductor
#>  TENxBrainData          * 1.17.0   2022-04-27 [1] Bioconductor
#>  TENxIO                 * 0.99.4   2022-10-03 [1] Bioconductor
#>  tibble                   3.1.8    2022-07-22 [1] CRAN (R 4.2.0)
#>  tidyselect               1.1.2    2022-02-21 [1] CRAN (R 4.2.0)
#>  tzdb                     0.3.0    2022-03-28 [1] CRAN (R 4.2.0)
#>  utf8                     1.2.2    2021-07-24 [1] CRAN (R 4.2.0)
#>  vctrs                    0.4.2    2022-09-29 [1] CRAN (R 4.2.1)
#>  withr                    2.5.0    2022-03-03 [1] CRAN (R 4.2.0)
#>  xfun                     0.33     2022-09-12 [1] CRAN (R 4.2.0)
#>  xtable                   1.8-4    2019-04-21 [1] CRAN (R 4.2.0)
#>  XVector                  0.37.1   2022-08-25 [1] Bioconductor
#>  yaml                     2.3.5    2022-02-21 [1] CRAN (R 4.2.0)
#>  zlibbioc                 1.43.0   2022-04-26 [1] Bioconductor
#> 
#>  [1] /Library/Frameworks/R.framework/Versions/4.2/Resources/library
#> 
#> ──────────────────────────────────────────────────────────────────────────────
  • [ ] In the vignette there's a note, "Future versions of the package could support alternative representations to SingleCellExperiment"; what does this mean?
  • [ ] Recommend running spelling::spell_check_package().
  • [ ] Initially, I didn't have the RaggedExperiment package installed, and so when trying import(tfr) (from the vignette) I received the error: Error: Install 'RaggedExperiment' to use 'import'; you might consider providing instructions for installing this package using BiocManager::install() (I'm not sure if Bioconductor has a standardised approach to notify users of such installation issues?)
  • [ ] Why roi instead of which for TENxFragments()? My understanding is that this argument gets passed to the which argument of the ScanBamParam object, so it might make sense to use the same argument name.
  • [ ] help("TENxH5-class", "TENxIO") refers to x as a SummarizedExperiment object but it's a TENxH5 object isn't it?
  • [ ] In DESCRIPTION, Collate should be Collates.

PeteHaitch avatar Oct 04 '22 02:10 PeteHaitch

Hi Pete, @PeteHaitch

Thank you for the comprehensive review. Please see my responses below.

Best, Marcel


Required

  • [x] Please be more precise about which 10x H5 files are supported. I tried a few examples and encountered problems. For example:

I've added support for files without 'interval' information. You can now read this in with:

  • [x] Related to the above, the lack of support for importing version 2 TENxH5 files (which are used in the vignette) seems like it should be addressed prior to an initial release; is it realistic to add support for these prior to the next release?

Support for version 2 is added. It will import a plain SingleCellExperiment.

Session info

  • [x] What about other 10x file types, such as those from Visium (where currently a user would typically import using SpatialExperiment::read10xVisium())? Is it intended that TENxIO is used for these files?

I will let Dario @drighelli or Helena @HelenaLC comment here. They are welcomed to contribute to the package. I would rather not duplicate code already in SpatialExperiment and it is a good idea to separate the I/O operations specific to the technology from the data structure implementation.

  • [x] In light of the above, I think the package name might need some adjustment to better reflect the package's scope (i.e. what types of 10x Genomics files the package supports). This package documentation and vignette also needs to review/compare this package to other packages with similar functionality or scope (e.g., DropletUtils, SpatialExperiment::read10xVisium(), there may be others).

I have added a note in the Introduction detailing the scope of the package.

  • [x] R CMD check errors for me (macOS Intel). The specific error is a lack of support for S3 VFD in Rhdf5lib (see below). This may be specific to my system but have you checked TENxIO on this platform? In any case, I think this should be handled gracefully by the underlying function (and its tests).

I do not have access to a Mac. I think the BBS is configured properly with this support. Once accepted, I will take a look at the build report. Thanks for bringing this up.

  • [x] Please use a smaller .h5 file in the vignette and documentation (rather than EH1039). I think it's a bit unreasonable to require a 3.9 GB download to run the example on TENxFile man page (and also used in the vignette).

The builders should have it in memory but I have made this chunk eval=FALSE and added a note for anyone running this that it is a big file.

  • [x] Please clarify the return value of the import,TENxMTX-method; it currently returns a SummarizedExperiment, but the ?TENxMTX and ?TENxIO documentation seems to imply it will return a bare dgCMatrix.
  • [x] import() on a TENxMTX produces notes as(<dgTMatrix>, "dgCMatrix") is deprecated since Matrix 1.5-0; do as(., "CsparseMatrix") instead; please address this by following the recommended fix of the Matrix authors.
  • [x] import,TENxFileList-method will likely fail for older 10x tarballs (version 2) because the file names in 10x tarballs vary with version (e.g., features.tsv.gz (v3) vs. genes.tsv.gz (v2)). This should be gracefully handled or support added for older versions..
  • [x] BiocCheck::BiocCheck() recommends Avoid system() ; use system2().

It looks like it's finding these calls in the inst/scripts directory. That check should be restricted to only files in the R folder.

  • [x] Please add an 'Introduction' section to the vignette.

Recommended

  • [x] Strongly recommend testing TENxIO functionality using some of the example files included in DropletTestFiles (perhaps adding additional example files as necessary, e.g., from the 10x multiome or ATAC-seq kits). For example, see how these are implemeted as 'long tests' in DropletUtils.
  • [x] What does this warning mean and should it be occurring?

This warning is for files that don't have a file extension, namely those in ExperimentHub. It is just a warning so that the user is aware that they are attempting to import files that may potentially fail.

  • [x] In the vignette there's a note, "Future versions of the package could support alternative representations to SingleCellExperiment"; what does this mean?
  • [x] Recommend running spelling::spell_check_package().
  • [x] Initially, I didn't have the RaggedExperiment package installed, and so when trying import(tfr) (from the vignette) I received the error: Error: Install 'RaggedExperiment' to use 'import'; you might consider providing instructions for installing this package using BiocManager::install() (I'm not sure if Bioconductor has a standardised approach to notify users of such installation issues?)

There is no standardized approach but using BiocManager is understood. I've added a BiocManager style error message for convenience.

  • [x] Why roi instead of which for TENxFragments()? My understanding is that this argument gets passed to the which argument of the ScanBamParam object, so it might make sense to use the same argument name.
  • [x] help("TENxH5-class", "TENxIO") refers to x as a SummarizedExperiment object but it's a TENxH5 object isn't it?
  • [x] In DESCRIPTION, Collate should be Collates.

AFAIK, Collate is the field described in Writing R Extensions and auto-generated by roxygen2

LiNk-NY avatar Oct 06 '22 15:10 LiNk-NY

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

bioc-issue-bot avatar Oct 06 '22 15:10 bioc-issue-bot

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 [email protected]:packages/TENxIO to trigger a new build. A quick tutorial for setting up remotes and pushing to upstream can be found here.

bioc-issue-bot avatar Oct 06 '22 15:10 bioc-issue-bot

Hi all, following up here regarding some of the discussion above. Is the plan to essentially move DropletUtils::read10xCounts() and SpatialExperiment::read10xVisium() into this package instead?

I think this could make sense, since it would make a clearer distinction between the underlying data structure and loader / helper functions.

This could also be a good opportunity to resolve some outstanding inconsistencies we currently have in SpatialExperiment between default column names in SCE and SPE objects, mentioned in https://github.com/drighelli/SpatialExperiment/issues/100

Tagging @drighelli @HelenaLC @drisso @stephaniehicks FYI

lmweber avatar Oct 06 '22 18:10 lmweber

Hi @LiNk-NY,

Thank you for making the above changes. There are still a few issues that I think require further changes or that I noticed following your recent changes.

Regarding the integration/subsuming of functionality of DropletUtils/SpatialExperiment: with the release deadline so soon I think this will have to be done over subsequent release cycles and in a progressive and backwards-compatible way.

Thanks, Pete

Required

  • [ ] The 'Introduction' of the vignette is still too vague about which 10X files are supported. Please think of a new user wanting to know whether this package or another BioC package is suitable for their files. Something like a table that summarises the 10x assays (3' and 5' scRNA-seq, scATAC-seq, multiome, Visium, etc.) and file types and which packages support which assays and file types. The table in 'Supported Formats' is close, but lacks assay details and comparisons to existing solutions.
  • [ ] Some behaviour of TENxH5() and import,TENxH5,ANY,ANY-method requires better documentation:
    • [ ] The ranges = NA_character trick for reading in a 10X H5 file without 'interval' information is mentioned in the vignette but not in the man pages.
    • [ ] import,TENxH5,ANY,ANY-method applies SingleCellExperiment::splitAltExperiment() but this is undocumented.
    • [ ] Do import() methods in the package also apply SingleCellExperiment::splitAltExperiment()? If so, please document.
suppressPackageStartupMessages(library(DropletUtils))
suppressPackageStartupMessages(library(DropletTestFiles))
suppressPackageStartupMessages(library(TENxIO))

path <- getTestFile(
  "tenx-3.1.0-5k_pbmc_protein_v3/1.0.0/filtered.h5", 
  prefix = TRUE)
#> snapshotDate(): 2022-10-03
#> see ?DropletTestFiles and browseVignettes('DropletTestFiles') for documentation
#> loading from cache

# import() itnernally applies SingleCellExperiment::splitAltExperiment().
sce <- import(TENxH5(path, ranges = NA_character_))
#> Warning: File extension is not 'h5'; import may fail
sce
#> class: SingleCellExperiment 
#> dim: 33538 5247 
#> metadata(0):
#> assays(1): counts
#> rownames(33538): ENSG00000243485 ENSG00000237613 ... ENSG00000277475
#>   ENSG00000268674
#> rowData names(0):
#> colnames(5247): AAACCCAAGAGACAAG-1 AAACCCAAGGCCTAGA-1 ...
#>   TTTGTTGCATTGCCGG-1 TTTGTTGGTCCGGCAT-1
#> colData names(0):
#> reducedDimNames(0):
#> mainExpName: Gene Expression
#> altExpNames(1): Antibody Capture

Created on 2022-10-11 with reprex v2.0.2

Session info
sessioninfo::session_info()
#> ─ Session info ───────────────────────────────────────────────────────────────
#>  setting  value
#>  version  R version 4.2.1 (2022-06-23)
#>  os       macOS Big Sur ... 10.16
#>  system   x86_64, darwin17.0
#>  ui       X11
#>  language (EN)
#>  collate  en_AU.UTF-8
#>  ctype    en_AU.UTF-8
#>  tz       Australia/Melbourne
#>  date     2022-10-11
#>  pandoc   2.18 @ /Applications/RStudio.app/Contents/MacOS/quarto/bin/tools/ (via rmarkdown)
#> 
#> ─ Packages ───────────────────────────────────────────────────────────────────
#>  package                * version  date (UTC) lib source
#>  AnnotationDbi            1.59.1   2022-05-19 [1] Bioconductor
#>  AnnotationHub            3.5.2    2022-09-27 [1] Bioconductor
#>  assertthat               0.2.1    2019-03-21 [1] CRAN (R 4.2.0)
#>  beachmat                 2.13.4   2022-06-21 [1] Bioconductor
#>  Biobase                * 2.57.1   2022-05-19 [1] Bioconductor
#>  BiocBaseUtils            0.99.12  2022-09-02 [1] Bioconductor
#>  BiocFileCache            2.5.2    2022-10-06 [1] Bioconductor
#>  BiocGenerics           * 0.43.4   2022-09-11 [1] Bioconductor
#>  BiocIO                   1.7.1    2022-05-06 [1] Bioconductor
#>  BiocManager              1.30.18  2022-05-18 [1] CRAN (R 4.2.0)
#>  BiocParallel             1.31.12  2022-08-03 [1] Bioconductor
#>  BiocVersion              3.16.0   2022-04-26 [1] Bioconductor
#>  Biostrings               2.65.6   2022-09-09 [1] Bioconductor
#>  bit                      4.0.4    2020-08-04 [1] CRAN (R 4.2.0)
#>  bit64                    4.0.5    2020-08-30 [1] CRAN (R 4.2.0)
#>  bitops                   1.0-7    2021-04-24 [1] CRAN (R 4.2.0)
#>  blob                     1.2.3    2022-04-10 [1] CRAN (R 4.2.0)
#>  cachem                   1.0.6    2021-08-19 [1] CRAN (R 4.2.0)
#>  cli                      3.4.1    2022-09-23 [1] CRAN (R 4.2.1)
#>  codetools                0.2-18   2020-11-04 [1] CRAN (R 4.2.1)
#>  crayon                   1.5.2    2022-09-29 [1] CRAN (R 4.2.1)
#>  curl                     4.3.3    2022-10-06 [1] CRAN (R 4.2.0)
#>  DBI                      1.1.3    2022-06-18 [1] CRAN (R 4.2.0)
#>  dbplyr                   2.2.1    2022-06-27 [1] CRAN (R 4.2.0)
#>  DelayedArray             0.23.2   2022-09-15 [1] Bioconductor
#>  DelayedMatrixStats       1.19.1   2022-09-27 [1] Bioconductor
#>  digest                   0.6.29   2021-12-01 [1] CRAN (R 4.2.0)
#>  dplyr                    1.0.10   2022-09-01 [1] CRAN (R 4.2.0)
#>  dqrng                    0.3.0    2021-05-01 [1] CRAN (R 4.2.0)
#>  DropletTestFiles       * 1.7.0    2022-04-27 [1] Bioconductor
#>  DropletUtils           * 1.17.3   2022-09-22 [1] Bioconductor
#>  edgeR                    3.39.6   2022-08-08 [1] Bioconductor
#>  ellipsis                 0.3.2    2021-04-29 [1] CRAN (R 4.2.0)
#>  evaluate                 0.17     2022-10-07 [1] CRAN (R 4.2.1)
#>  ExperimentHub            2.5.0    2022-04-26 [1] Bioconductor
#>  fansi                    1.0.3    2022-03-24 [1] CRAN (R 4.2.0)
#>  fastmap                  1.1.0    2021-01-25 [1] CRAN (R 4.2.0)
#>  filelock                 1.0.2    2018-10-05 [1] CRAN (R 4.2.0)
#>  fs                       1.5.2    2021-12-08 [1] CRAN (R 4.2.0)
#>  generics                 0.1.3    2022-07-05 [1] CRAN (R 4.2.0)
#>  GenomeInfoDb           * 1.33.7   2022-09-07 [1] Bioconductor
#>  GenomeInfoDbData         1.2.9    2022-09-30 [1] Bioconductor
#>  GenomicRanges          * 1.49.1   2022-08-18 [1] Bioconductor
#>  glue                     1.6.2    2022-02-24 [1] CRAN (R 4.2.0)
#>  HDF5Array                1.25.2   2022-08-03 [1] Bioconductor
#>  highr                    0.9      2021-04-16 [1] CRAN (R 4.2.0)
#>  hms                      1.1.2    2022-08-19 [1] CRAN (R 4.2.0)
#>  htmltools                0.5.3    2022-07-18 [1] CRAN (R 4.2.0)
#>  httpuv                   1.6.6    2022-09-08 [1] CRAN (R 4.2.0)
#>  httr                     1.4.4    2022-08-17 [1] CRAN (R 4.2.0)
#>  interactiveDisplayBase   1.35.0   2022-04-26 [1] Bioconductor
#>  IRanges                * 2.31.2   2022-08-18 [1] Bioconductor
#>  KEGGREST                 1.37.3   2022-07-10 [1] Bioconductor
#>  knitr                    1.40     2022-08-24 [1] CRAN (R 4.2.0)
#>  later                    1.3.0    2021-08-18 [1] CRAN (R 4.2.0)
#>  lattice                  0.20-45  2021-09-22 [1] CRAN (R 4.2.1)
#>  lifecycle                1.0.3    2022-10-07 [1] CRAN (R 4.2.1)
#>  limma                    3.53.10  2022-09-26 [1] Bioconductor
#>  locfit                   1.5-9.6  2022-07-11 [1] CRAN (R 4.2.0)
#>  magrittr                 2.0.3    2022-03-30 [1] CRAN (R 4.2.0)
#>  Matrix                   1.5-1    2022-09-13 [1] CRAN (R 4.2.0)
#>  MatrixGenerics         * 1.9.1    2022-06-24 [1] Bioconductor
#>  matrixStats            * 0.62.0   2022-04-19 [1] CRAN (R 4.2.0)
#>  memoise                  2.0.1    2021-11-26 [1] CRAN (R 4.2.0)
#>  mime                     0.12     2021-09-28 [1] CRAN (R 4.2.0)
#>  pillar                   1.8.1    2022-08-19 [1] CRAN (R 4.2.0)
#>  pkgconfig                2.0.3    2019-09-22 [1] CRAN (R 4.2.0)
#>  png                      0.1-7    2013-12-03 [1] CRAN (R 4.2.0)
#>  promises                 1.2.0.1  2021-02-11 [1] CRAN (R 4.2.0)
#>  purrr                    0.3.5    2022-10-06 [1] CRAN (R 4.2.0)
#>  R.cache                  0.16.0   2022-07-21 [1] CRAN (R 4.2.0)
#>  R.methodsS3              1.8.2    2022-06-13 [1] CRAN (R 4.2.0)
#>  R.oo                     1.25.0   2022-06-12 [1] CRAN (R 4.2.0)
#>  R.utils                  2.12.0   2022-06-28 [1] CRAN (R 4.2.0)
#>  R6                       2.5.1    2021-08-19 [1] CRAN (R 4.2.0)
#>  rappdirs                 0.3.3    2021-01-31 [1] CRAN (R 4.2.0)
#>  Rcpp                     1.0.9    2022-07-08 [1] CRAN (R 4.2.0)
#>  RCurl                    1.98-1.9 2022-10-03 [1] CRAN (R 4.2.1)
#>  readr                    2.1.3    2022-10-01 [1] CRAN (R 4.2.1)
#>  reprex                   2.0.2    2022-08-17 [1] CRAN (R 4.2.0)
#>  rhdf5                    2.41.1   2022-06-21 [1] Bioconductor
#>  rhdf5filters             1.9.0    2022-04-26 [1] Bioconductor
#>  Rhdf5lib                 1.19.2   2022-05-13 [1] Bioconductor
#>  rlang                    1.0.6    2022-09-24 [1] CRAN (R 4.2.1)
#>  rmarkdown                2.17     2022-10-07 [1] CRAN (R 4.2.1)
#>  RSQLite                  2.2.18   2022-10-04 [1] CRAN (R 4.2.1)
#>  rstudioapi               0.14     2022-08-22 [1] CRAN (R 4.2.0)
#>  S4Vectors              * 0.35.4   2022-09-18 [1] Bioconductor
#>  scuttle                  1.7.4    2022-08-23 [1] Bioconductor
#>  sessioninfo              1.2.2    2021-12-06 [1] CRAN (R 4.2.0)
#>  shiny                    1.7.2    2022-07-19 [1] CRAN (R 4.2.0)
#>  SingleCellExperiment   * 1.19.1   2022-09-30 [1] Bioconductor
#>  sparseMatrixStats        1.9.0    2022-04-26 [1] Bioconductor
#>  stringi                  1.7.8    2022-07-11 [1] CRAN (R 4.2.0)
#>  stringr                  1.4.1    2022-08-20 [1] CRAN (R 4.2.0)
#>  styler                   1.7.0    2022-03-13 [1] CRAN (R 4.2.0)
#>  SummarizedExperiment   * 1.27.3   2022-09-15 [1] Bioconductor
#>  TENxIO                 * 0.99.5   2022-10-10 [1] Bioconductor
#>  tibble                   3.1.8    2022-07-22 [1] CRAN (R 4.2.0)
#>  tidyselect               1.1.2    2022-02-21 [1] CRAN (R 4.2.0)
#>  tzdb                     0.3.0    2022-03-28 [1] CRAN (R 4.2.0)
#>  utf8                     1.2.2    2021-07-24 [1] CRAN (R 4.2.0)
#>  vctrs                    0.4.2    2022-09-29 [1] CRAN (R 4.2.1)
#>  withr                    2.5.0    2022-03-03 [1] CRAN (R 4.2.0)
#>  xfun                     0.33     2022-09-12 [1] CRAN (R 4.2.0)
#>  xtable                   1.8-4    2019-04-21 [1] CRAN (R 4.2.0)
#>  XVector                  0.37.1   2022-08-25 [1] Bioconductor
#>  yaml                     2.3.5    2022-02-21 [1] CRAN (R 4.2.0)
#>  zlibbioc                 1.43.0   2022-04-26 [1] Bioconductor
#> 
#>  [1] /Library/Frameworks/R.framework/Versions/4.2/Resources/library
#> 
#> ──────────────────────────────────────────────────────────────────────────────
  • [ ] The ?TENxIO documentation (and the table in the vignette and README) still implies that the import,TENxMTX-method will return a bare dgCMatrix.
  • [ ] Please add your note of explanation to the vignette about why this gives a warning (along the lines of what you replied to me, 'This warning is for files that don't have a file extension, namely those in ExperimentHub. It is just a warning so that the user is aware that they are attempting to import files that may potentially fail.' ....) .
suppressPackageStartupMessages(library(TENxIO))

hub <- ExperimentHub::ExperimentHub()
#> snapshotDate(): 2022-10-03
fname <- hub[["EH1039"]]
#> see ?TENxBrainData and browseVignettes('TENxBrainData') for documentation
#> loading from cache

TENxFile(fname, extension = "h5", group = "mm10", version = "2")
#> Warning: 'group' not in known 10X groups: matrix, outs
#> TENxH5 object 
#> resource: /Users/Peter/Library/Caches/org.R-project.R/R/ExperimentHub/48e4b14df09_1039 
#> projection: SingleCellExperiment 
#> dim: 27998 1306127 
#> rownames: ENSMUSG00000051951 ENSMUSG00000089699 ... ENSMUSG00000096730 ENSMUSG00000095742 
#> rowData names(3): ID Symbol Type 
#>   Type: ENSMUSG00000025900 ENSMUSG00000025902 ... ENSMUSG00000102343 ENSMUSG00000109048 
#> colnames: AAACCTGAGATAGGAG-1 AAACCTGAGCGGCTTC-1 ... TTTGTCAGTTAAAGTG-133 TTTGTCATCTGAAAGA-133

Created on 2022-10-11 with reprex v2.0.2

Session info
sessioninfo::session_info()
#> ─ Session info ───────────────────────────────────────────────────────────────
#>  setting  value
#>  version  R version 4.2.1 (2022-06-23)
#>  os       macOS Big Sur ... 10.16
#>  system   x86_64, darwin17.0
#>  ui       X11
#>  language (EN)
#>  collate  en_AU.UTF-8
#>  ctype    en_AU.UTF-8
#>  tz       Australia/Melbourne
#>  date     2022-10-11
#>  pandoc   2.18 @ /Applications/RStudio.app/Contents/MacOS/quarto/bin/tools/ (via rmarkdown)
#> 
#> ─ Packages ───────────────────────────────────────────────────────────────────
#>  package                * version  date (UTC) lib source
#>  AnnotationDbi            1.59.1   2022-05-19 [1] Bioconductor
#>  AnnotationHub            3.5.2    2022-09-27 [1] Bioconductor
#>  assertthat               0.2.1    2019-03-21 [1] CRAN (R 4.2.0)
#>  Biobase                * 2.57.1   2022-05-19 [1] Bioconductor
#>  BiocBaseUtils            0.99.12  2022-09-02 [1] Bioconductor
#>  BiocFileCache            2.5.2    2022-10-06 [1] Bioconductor
#>  BiocGenerics           * 0.43.4   2022-09-11 [1] Bioconductor
#>  BiocIO                   1.7.1    2022-05-06 [1] Bioconductor
#>  BiocManager              1.30.18  2022-05-18 [1] CRAN (R 4.2.0)
#>  BiocVersion              3.16.0   2022-04-26 [1] Bioconductor
#>  Biostrings               2.65.6   2022-09-09 [1] Bioconductor
#>  bit                      4.0.4    2020-08-04 [1] CRAN (R 4.2.0)
#>  bit64                    4.0.5    2020-08-30 [1] CRAN (R 4.2.0)
#>  bitops                   1.0-7    2021-04-24 [1] CRAN (R 4.2.0)
#>  blob                     1.2.3    2022-04-10 [1] CRAN (R 4.2.0)
#>  cachem                   1.0.6    2021-08-19 [1] CRAN (R 4.2.0)
#>  cli                      3.4.1    2022-09-23 [1] CRAN (R 4.2.1)
#>  crayon                   1.5.2    2022-09-29 [1] CRAN (R 4.2.1)
#>  curl                     4.3.3    2022-10-06 [1] CRAN (R 4.2.0)
#>  DBI                      1.1.3    2022-06-18 [1] CRAN (R 4.2.0)
#>  dbplyr                   2.2.1    2022-06-27 [1] CRAN (R 4.2.0)
#>  DelayedArray           * 0.23.2   2022-09-15 [1] Bioconductor
#>  digest                   0.6.29   2021-12-01 [1] CRAN (R 4.2.0)
#>  dplyr                    1.0.10   2022-09-01 [1] CRAN (R 4.2.0)
#>  ellipsis                 0.3.2    2021-04-29 [1] CRAN (R 4.2.0)
#>  evaluate                 0.17     2022-10-07 [1] CRAN (R 4.2.1)
#>  ExperimentHub            2.5.0    2022-04-26 [1] Bioconductor
#>  fansi                    1.0.3    2022-03-24 [1] CRAN (R 4.2.0)
#>  fastmap                  1.1.0    2021-01-25 [1] CRAN (R 4.2.0)
#>  filelock                 1.0.2    2018-10-05 [1] CRAN (R 4.2.0)
#>  fs                       1.5.2    2021-12-08 [1] CRAN (R 4.2.0)
#>  generics                 0.1.3    2022-07-05 [1] CRAN (R 4.2.0)
#>  GenomeInfoDb           * 1.33.7   2022-09-07 [1] Bioconductor
#>  GenomeInfoDbData         1.2.9    2022-09-30 [1] Bioconductor
#>  GenomicRanges          * 1.49.1   2022-08-18 [1] Bioconductor
#>  glue                     1.6.2    2022-02-24 [1] CRAN (R 4.2.0)
#>  HDF5Array              * 1.25.2   2022-08-03 [1] Bioconductor
#>  highr                    0.9      2021-04-16 [1] CRAN (R 4.2.0)
#>  hms                      1.1.2    2022-08-19 [1] CRAN (R 4.2.0)
#>  htmltools                0.5.3    2022-07-18 [1] CRAN (R 4.2.0)
#>  httpuv                   1.6.6    2022-09-08 [1] CRAN (R 4.2.0)
#>  httr                     1.4.4    2022-08-17 [1] CRAN (R 4.2.0)
#>  interactiveDisplayBase   1.35.0   2022-04-26 [1] Bioconductor
#>  IRanges                * 2.31.2   2022-08-18 [1] Bioconductor
#>  KEGGREST                 1.37.3   2022-07-10 [1] Bioconductor
#>  knitr                    1.40     2022-08-24 [1] CRAN (R 4.2.0)
#>  later                    1.3.0    2021-08-18 [1] CRAN (R 4.2.0)
#>  lattice                  0.20-45  2021-09-22 [1] CRAN (R 4.2.1)
#>  lifecycle                1.0.3    2022-10-07 [1] CRAN (R 4.2.1)
#>  magrittr                 2.0.3    2022-03-30 [1] CRAN (R 4.2.0)
#>  Matrix                 * 1.5-1    2022-09-13 [1] CRAN (R 4.2.0)
#>  MatrixGenerics         * 1.9.1    2022-06-24 [1] Bioconductor
#>  matrixStats            * 0.62.0   2022-04-19 [1] CRAN (R 4.2.0)
#>  memoise                  2.0.1    2021-11-26 [1] CRAN (R 4.2.0)
#>  mime                     0.12     2021-09-28 [1] CRAN (R 4.2.0)
#>  pillar                   1.8.1    2022-08-19 [1] CRAN (R 4.2.0)
#>  pkgconfig                2.0.3    2019-09-22 [1] CRAN (R 4.2.0)
#>  png                      0.1-7    2013-12-03 [1] CRAN (R 4.2.0)
#>  promises                 1.2.0.1  2021-02-11 [1] CRAN (R 4.2.0)
#>  purrr                    0.3.5    2022-10-06 [1] CRAN (R 4.2.0)
#>  R.cache                  0.16.0   2022-07-21 [1] CRAN (R 4.2.0)
#>  R.methodsS3              1.8.2    2022-06-13 [1] CRAN (R 4.2.0)
#>  R.oo                     1.25.0   2022-06-12 [1] CRAN (R 4.2.0)
#>  R.utils                  2.12.0   2022-06-28 [1] CRAN (R 4.2.0)
#>  R6                       2.5.1    2021-08-19 [1] CRAN (R 4.2.0)
#>  rappdirs                 0.3.3    2021-01-31 [1] CRAN (R 4.2.0)
#>  Rcpp                     1.0.9    2022-07-08 [1] CRAN (R 4.2.0)
#>  RCurl                    1.98-1.9 2022-10-03 [1] CRAN (R 4.2.1)
#>  readr                    2.1.3    2022-10-01 [1] CRAN (R 4.2.1)
#>  reprex                   2.0.2    2022-08-17 [1] CRAN (R 4.2.0)
#>  rhdf5                  * 2.41.1   2022-06-21 [1] Bioconductor
#>  rhdf5filters             1.9.0    2022-04-26 [1] Bioconductor
#>  Rhdf5lib                 1.19.2   2022-05-13 [1] Bioconductor
#>  rlang                    1.0.6    2022-09-24 [1] CRAN (R 4.2.1)
#>  rmarkdown                2.17     2022-10-07 [1] CRAN (R 4.2.1)
#>  RSQLite                  2.2.18   2022-10-04 [1] CRAN (R 4.2.1)
#>  rstudioapi               0.14     2022-08-22 [1] CRAN (R 4.2.0)
#>  S4Vectors              * 0.35.4   2022-09-18 [1] Bioconductor
#>  sessioninfo              1.2.2    2021-12-06 [1] CRAN (R 4.2.0)
#>  shiny                    1.7.2    2022-07-19 [1] CRAN (R 4.2.0)
#>  SingleCellExperiment   * 1.19.1   2022-09-30 [1] Bioconductor
#>  stringi                  1.7.8    2022-07-11 [1] CRAN (R 4.2.0)
#>  stringr                  1.4.1    2022-08-20 [1] CRAN (R 4.2.0)
#>  styler                   1.7.0    2022-03-13 [1] CRAN (R 4.2.0)
#>  SummarizedExperiment   * 1.27.3   2022-09-15 [1] Bioconductor
#>  TENxBrainData          * 1.17.0   2022-04-27 [1] Bioconductor
#>  TENxIO                 * 0.99.5   2022-10-10 [1] Bioconductor
#>  tibble                   3.1.8    2022-07-22 [1] CRAN (R 4.2.0)
#>  tidyselect               1.1.2    2022-02-21 [1] CRAN (R 4.2.0)
#>  tzdb                     0.3.0    2022-03-28 [1] CRAN (R 4.2.0)
#>  utf8                     1.2.2    2021-07-24 [1] CRAN (R 4.2.0)
#>  vctrs                    0.4.2    2022-09-29 [1] CRAN (R 4.2.1)
#>  withr                    2.5.0    2022-03-03 [1] CRAN (R 4.2.0)
#>  xfun                     0.33     2022-09-12 [1] CRAN (R 4.2.0)
#>  xtable                   1.8-4    2019-04-21 [1] CRAN (R 4.2.0)
#>  XVector                  0.37.1   2022-08-25 [1] Bioconductor
#>  yaml                     2.3.5    2022-02-21 [1] CRAN (R 4.2.0)
#>  zlibbioc                 1.43.0   2022-04-26 [1] Bioconductor
#> 
#>  [1] /Library/Frameworks/R.framework/Versions/4.2/Resources/library
#> 
#> ──────────────────────────────────────────────────────────────────────────────

Recommended

  • [ ] Strongly recommend testing TENxIO functionality using some of the example files included in DropletTestFiles (perhaps adding additional example files as necessary, e.g., from the 10x multiome or ATAC-seq kits). For example, see how these are implemeted as 'long tests' in DropletUtils. Correct data import is a critical step of any workflow, so it needs to be widely tested. AFAICT DropletTestFiles provides a great set of example files for adding such tests in TENxIO (e.g., it's how I identified limitations of prior versions of TENxIO).

PeteHaitch avatar Oct 10 '22 23:10 PeteHaitch

Required

  • [x] The 'Introduction' of the vignette is still too vague about which 10X files are supported. Please think of a new user wanting to know whether this package or another BioC package is suitable for their files. Something like a table that summarises the 10x assays (3' and 5' scRNA-seq, scATAC-seq, multiome, Visium, etc.) and file types and which packages support which assays and file types. The table in 'Supported Formats' is close, but lacks assay details and comparisons to existing solutions.

I've added more information about the experiments that are covered based on the listings in the 10X website.

  • [x] Some behaviour of TENxH5() and import,TENxH5,ANY,ANY-method requires better documentation
    • [x] The ranges = NA_character trick for reading in a 10X H5 file without 'interval' information is mentioned in the vignette but not in the man pages.
    • [x] import,TENxH5,ANY,ANY-method applies SingleCellExperiment::splitAltExperiment() but this is undocumented.
    • [x] Do import() methods in the package also apply SingleCellExperiment::splitAltExperiment()? If so, please document.
  • [x] The ?TENxIO documentation (and the table in the vignette and README) still implies that the import,TENxMTX-method will return a bare dgCMatrix.
  • [x] Please add your note of explanation to the vignette about why this gives a warning (along the lines of what you replied to me, 'This warning is for files that don't have a file extension, namely those in ExperimentHub. It is just a warning so that the user is aware that they are attempting to import files that may potentially fail.' ....) .

Recommended

  • [x] Strongly recommend testing TENxIO functionality using some of the example files included in DropletTestFiles (perhaps adding additional example files as necessary, e.g., from the 10x multiome or ATAC-seq kits). For example, see how these are implemeted as 'long tests' in DropletUtils. Correct data import is a critical step of any workflow, so it needs to be widely tested. AFAICT DropletTestFiles provides a great set of example files for adding such tests in TENxIO (e.g., it's how I identified limitations of prior versions of TENxIO).

Hi Pete, Thank for the feedback. I've implemented some long tests. I will continue to add more unit tests with additional files in the DropletTestFiles package. For now, I've added a few. These help improve the codebase of the package. Thank you!

Best regards, Marcel

LiNk-NY avatar Oct 18 '22 17:10 LiNk-NY

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

bioc-issue-bot avatar Oct 18 '22 17:10 bioc-issue-bot

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 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 [email protected]:packages/TENxIO to trigger a new build. A quick tutorial for setting up remotes and pushing to upstream can be found here.

bioc-issue-bot avatar Oct 18 '22 17:10 bioc-issue-bot

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

bioc-issue-bot avatar Oct 18 '22 18:10 bioc-issue-bot

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 [email protected]:packages/TENxIO to trigger a new build. A quick tutorial for setting up remotes and pushing to upstream can be found here.

bioc-issue-bot avatar Oct 18 '22 18:10 bioc-issue-bot

Thank you for addressing the requested changes and engaging with the review process, @LiNk-NY. I'm happy to accept TENxIO into Bioconductor!

A couple of final things:

  • [ ] Please keep an eye on the builds to see if the lack of support for S3 VFD in Rhdf5lib is a general issue affecting macOS (initially flagged in https://github.com/Bioconductor/Contributions/issues/2753#issuecomment-1266309537)
  • [ ] The ?TENxIO documentation still implies that the import,TENxMTX-method will return a bare dgCMatrix.

Thank you for your contribution.

PeteHaitch avatar Oct 20 '22 22:10 PeteHaitch

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 Oct 20 '22 22:10 bioc-issue-bot

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

https://bioconductor.org/packages/TENxIO

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 Oct 21 '22 11:10 lshep

Thanks Pete! @PeteHaitch

  • [ ] Please keep an eye on the builds to see if the lack of support for S3 VFD in Rhdf5lib is a general issue affecting macOS (initially flagged in TENxIO #2753 (comment))

I will keep an eye out.

  • [x] The ?TENxIO documentation still implies that the import,TENxMTX-method will return a bare dgCMatrix.

Ah, I see the file now. It was in TENxIO-package.R. Thanks again!

LiNk-NY avatar Oct 21 '22 14:10 LiNk-NY