Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

TENxIO #2753

Closed
10 tasks done
LiNk-NY opened this issue Aug 24, 2022 · 25 comments
Closed
10 tasks done

TENxIO #2753

LiNk-NY opened this issue Aug 24, 2022 · 25 comments
Assignees
Labels
3a. accepted will be ingested into Bioconductor daily builder for distribution OK

Comments

@LiNk-NY
Copy link

LiNk-NY commented Aug 24, 2022

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

Confirm the following by editing each check box to '[x]'

  • I understand that by submitting my package to Bioconductor,
    the package source and all review commentary are visible to the
    general public.

  • I have read the Bioconductor Package Submission
    instructions. My package is consistent with the Bioconductor
    Package Guidelines.

  • I understand Bioconductor Package Naming Policy and acknowledge
    Bioconductor may retain use of package name.

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

  • My package addresses statistical or bioinformatic issues related
    to the analysis and comprehension of high throughput genomic data.

  • I am committed to the long-term maintenance of my package. This
    includes monitoring the support site for issues that users may
    have, subscribing to the bioc-devel mailing list to stay aware
    of developments in the Bioconductor community, responding promptly
    to requests for updates from the Core team in response to changes in
    R or underlying software.

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

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

  • The 'devel' branch for new packages and features.
  • The stable 'release' branch, made available every six
    months, for bug fixes.
  • 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.

@bioc-issue-bot
Copy link
Collaborator

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 bioc-issue-bot added the 1. awaiting moderation submitted and waiting clearance to access resources label Aug 24, 2022
@PeteHaitch
Copy link

PeteHaitch commented Aug 25, 2022

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

@LTLA
Copy link

LTLA commented Aug 25, 2022

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.

@LiNk-NY
Copy link
Author

LiNk-NY commented Aug 25, 2022

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

@drighelli
Copy link

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

@vjcitn vjcitn added the pre-check passed pre-review performed and ready to be added to git label Sep 11, 2022
@bioc-issue-bot
Copy link
Collaborator

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 bioc-issue-bot added 2. review in progress assign a reviewer and a more thorough review of package code and documentation taking place and removed 1. awaiting moderation submitted and waiting clearance to access resources pre-check passed pre-review performed and ready to be added to git labels Sep 12, 2022
@bioc-issue-bot
Copy link
Collaborator

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
Copy link
Collaborator

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

@bioc-issue-bot
Copy link
Collaborator

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 bioc-issue-bot added OK and removed ERROR labels Sep 16, 2022
@PeteHaitch
Copy link

PeteHaitch commented Oct 4, 2022

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.

@LiNk-NY
Copy link
Author

LiNk-NY commented Oct 6, 2022

Hi Pete, @PeteHaitch

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

Best,
Marcel


Required

  • 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:

  • 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

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

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

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

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

  • 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().

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.

  • 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?

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.

  • 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?)

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

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

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

@bioc-issue-bot
Copy link
Collaborator

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

@bioc-issue-bot
Copy link
Collaborator

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.

@lmweber
Copy link

lmweber commented Oct 6, 2022

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 drighelli/SpatialExperiment#100

Tagging @drighelli @HelenaLC @drisso @stephaniehicks FYI

@PeteHaitch
Copy link

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

@LiNk-NY
Copy link
Author

LiNk-NY commented Oct 18, 2022

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.

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

  • 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.
  • 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.' ....) .

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

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

@bioc-issue-bot
Copy link
Collaborator

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

@bioc-issue-bot
Copy link
Collaborator

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 bioc-issue-bot added ERROR and removed OK labels Oct 18, 2022
@bioc-issue-bot
Copy link
Collaborator

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

@bioc-issue-bot
Copy link
Collaborator

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 bioc-issue-bot added OK and removed ERROR labels Oct 18, 2022
@PeteHaitch
Copy link

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 TENxIO #2753 (comment))
  • The ?TENxIO documentation still implies that the import,TENxMTX-method will return a bare dgCMatrix.

Thank you for your contribution.

@PeteHaitch PeteHaitch added 3a. accepted will be ingested into Bioconductor daily builder for distribution and removed 2. review in progress assign a reviewer and a more thorough review of package code and documentation taking place labels Oct 20, 2022
@bioc-issue-bot
Copy link
Collaborator

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

Thank you for contributing to Bioconductor!

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

@lshep
Copy link
Contributor

lshep commented Oct 21, 2022

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 lshep closed this as completed Oct 21, 2022
@LiNk-NY
Copy link
Author

LiNk-NY commented Oct 21, 2022

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.

  • 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!

@bioc-issue-bot
Copy link
Collaborator

cannot build unless issue is open and has the
'pre-review' label or '2. review in progress' label,
or is closed and has the 'TESTING' label.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
3a. accepted will be ingested into Bioconductor daily builder for distribution OK
Projects
None yet
Development

No branches or pull requests

8 participants