XeniumIO
Update the following URL to point to the GitHub repository of the package you wish to submit to Bioconductor
- Repository: https://github.com/waldronlab/XeniumIO
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.
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: XeniumIO
Type: Package
Title: Import and represent Xenium data from the 10X Xenium Analyzer
Version: 0.99.0
Authors@R: c(
person("Marcel", "Ramos", , "[email protected]", c("aut", "cre"),
c(ORCID = "0000-0002-3242-0582")
),
person("Dario", "Righelli", role = "ctb"),
person("Estella", "Dong", role = "ctb")
)
Description: The package allows users to readily import spatial data
obtain from the 10X Xenium Analyzer pipeline. Supported formats include
'parquet', 'h5', and 'mtx' files. The package mainly represents data
as SpatialExperiment objects.
License: Artistic-2.0
Depends: TENxIO
Imports:
BiocBaseUtils,
BiocGenerics,
BiocIO,
jsonlite,
methods,
S4Vectors,
SingleCellExperiment,
SpatialExperiment,
SummarizedExperiment,
VisiumIO
Suggests:
arrow,
BiocStyle,
knitr,
rmarkdown,
tinytest
biocViews: Software, Infrastructure, DataImport, SingleCell, Spatial
VignetteBuilder: knitr
Encoding: UTF-8
Roxygen: list(markdown = TRUE)
RoxygenNote: 7.3.2
BugReports: https://github.com/waldronlab/XeniumIO/issues
URL: https://github.com/waldronlab/XeniumIO
Collate:
'XeniumFile.R'
'TENxXenium-class.R'
'XeniumIO-package.R'
'utilities.R'
Date: 2024-10-23
Your package has been added to git.bioconductor.org to continue the pre-review process. A build report will be posted shortly. Please fix any ERROR and WARNING in the build report before a reviewer is assigned or provide a justification on why you feel the ERROR or WARNING should be granted an exception.
IMPORTANT: Please read this documentation for setting up remotes to push to git.bioconductor.org. All changes should be pushed to git.bioconductor.org moving forward. It is required to push a version bump to git.bioconductor.org to trigger a new build report.
Bioconductor utilized your github ssh-keys for git.bioconductor.org access. To manage keys and future access you may want to active your Bioconductor Git Credentials Account
Dear Package contributor,
This is the automated single package builder at bioconductor.org.
Your package has been built on the Bioconductor Single Package Builder.
On one or more platforms, the build results were: "ERROR". This may mean there is a problem with the package that you need to fix. Or it may mean that there is a problem with the build system itself.
Please see the build report for more details.
The following are build products from R CMD build on the Single Package Builder: Linux (Ubuntu 24.04.1 LTS): XeniumIO_0.99.0.tar.gz
Links above active for 21 days.
Remember: if you submitted your package after July 7th, 2020,
when making changes to your repository push to
[email protected]:packages/XeniumIO to trigger a new build.
A quick tutorial for setting up remotes and pushing to upstream can be found here.
A reviewer has been assigned to your package for an indepth review. Please respond accordingly to any further comments from the reviewer.
Hi Marcel! Cool stuff, thanks. Everything's nicely coded of course, so not much to review, but here are my two cents:
-
In the DESCRIPTION
Description:line 13: "obtain" should be "obtained" -
Currently, nothing is being run in the vignette (file sizes)? 10x has recently made available an artifical lightweight dataset (12MB) here; just wondering whether it'd be worth to include at least this as a runnable example? Maybe also useful for unit testing?
-
While being a
SpatialExperimentco-developer, I wonder whether it'd be preferred to give users the option to get the data as aSingleCellExperimentinstead, and onlySuggest:ingSpatialExperimentin the DESCRIPTION. Because (i) this addsmagickto the dependency stack, and (ii) being there are no images, an SCE will do just fine for many users/downstream tasks. Just a suggestion... -
Somewhat related,
TENxXenium()currently defaults to realizing data from .parquet into memory. Per my understanding, one of the perks of usingarrowis not do this, but instead work with aTablethat allowsdplyr-style ops. E.g., one could filter for a subset of genes (.parquet = molecules) or cell types (.parquet = boundaries) before realizing. Any way to expose an argument that would let the user control this? I usually don't realize these, just stash the pointer, and realize what I need when I need it.
Hi Helena, @HelenaLC
- In the DESCRIPTION
Description:line 13: "obtain" should be "obtained"
Done.
- Currently, nothing is being run in the vignette (file sizes)? 10x has recently made available an artifical lightweight dataset (12MB) here; just wondering whether it'd be worth to include at least this as a runnable example? Maybe also useful for unit testing?
I'm still trying to figure out where to host this data. For now, I made the examples runnable in the vignette and function examples by downloading directly from 10X. Vince suggested hosting on OSN and downloading from there as an option that I will look into. I am not aware of any experiment data packages that provide this example data from 10X. There are some that have Xenium data but their data was pre-processed.
- While being a
SpatialExperimentco-developer, I wonder whether it'd be preferred to give users the option to get the data as aSingleCellExperimentinstead, and onlySuggest:ingSpatialExperimentin the DESCRIPTION. Because (i) this addsmagickto the dependency stack, and (ii) being there are no images, an SCE will do just fine for many users/downstream tasks. Just a suggestion...
There are some benefits of only using magick when necessary (and moved to Suggests) and perhaps this should be handled in the SpatialExperiment package (@drighelli).
I chose to use SpatialExperiment because the components match the data type closely. FWIW, the user also has the option to do as(spe, "SingleCellExperiment") so creating an import method that returns SingleCellExperiment may be more work than what it is worth.
- Somewhat related,
TENxXenium()currently defaults to realizing data from .parquet into memory. Per my understanding, one of the perks of usingarrowis not do this, but instead work with aTablethat allowsdplyr-style ops. E.g., one could filter for a subset of genes (.parquet = molecules) or cell types (.parquet = boundaries) before realizing. Any way to expose an argument that would let the user control this? I usually don't realize these, just stash the pointer, and realize what I need when I need it.
This would be nice to have but currently, the SpatialExperiment constructor does not handle Table classes in the colData and these get coerced to DFrame by the constructor further down the line.
Received a valid push on git.bioconductor.org; starting a build for commit id: e6ac63b6ea0bc526a5f440cc0e2b4e86038e8f76
Dear Package contributor,
This is the automated single package builder at bioconductor.org.
Your package has been built on the Bioconductor Single Package Builder.
On one or more platforms, the build results were: "ERROR". This may mean there is a problem with the package that you need to fix. Or it may mean that there is a problem with the build system itself.
Please see the build report for more details.
The following are build products from R CMD build on the Single Package Builder: Linux (Ubuntu 24.04.1 LTS): XeniumIO_0.99.3.tar.gz
Links above active for 21 days.
Remember: if you submitted your package after July 7th, 2020,
when making changes to your repository push to
[email protected]:packages/XeniumIO to trigger a new build.
A quick tutorial for setting up remotes and pushing to upstream can be found here.
Received a valid push on git.bioconductor.org; starting a build for commit id: 0fe98eb899e46670f15fc86fce17237d8a492f9f
Dear Package contributor,
This is the automated single package builder at bioconductor.org.
Your package has been built on the Bioconductor Single Package Builder.
Congratulations! The package built without errors or warnings on all platforms.
Please see the build report for more details.
The following are build products from R CMD build on the Single Package Builder: Linux (Ubuntu 24.04.1 LTS): XeniumIO_0.99.4.tar.gz
Links above active for 21 days.
Remember: if you submitted your package after July 7th, 2020,
when making changes to your repository push to
[email protected]:packages/XeniumIO to trigger a new build.
A quick tutorial for setting up remotes and pushing to upstream can be found here.
sorry to jump in this, but thanks @LiNk-NY for pointing this out, indeed this is a pending issue in SpatialExperiment that we need to solve.
Suggesting the magick package is something that I'd be happy to let it take place in the next release
wget --no-check-certificate https://mghp.osn.xsede.org/bir190004-bucket01/BiocXenDemo/Xenium_V1_human_Breast_2fov_outs.zip
will get one of the slim Xenium outputs (mentioned as lightweight by Helena above), substitute 'Lung' for 'Breast' for a second example
Received a valid push on git.bioconductor.org; starting a build for commit id: 9bcc803184a84951bf20e83008509e42ca1fe408
Dear Package contributor,
This is the automated single package builder at bioconductor.org.
Your package has been built on the Bioconductor Single Package Builder.
Congratulations! The package built without errors or warnings on all platforms.
Please see the build report for more details.
The following are build products from R CMD build on the Single Package Builder: Linux (Ubuntu 24.04.1 LTS): XeniumIO_0.99.5.tar.gz
Links above active for 21 days.
Remember: if you submitted your package after July 7th, 2020,
when making changes to your repository push to
[email protected]:packages/XeniumIO to trigger a new build.
A quick tutorial for setting up remotes and pushing to upstream can be found here.
Update : With the help from Vince and Alex, I uploaded the demo data to https://mghp.osn.xsede.org/bir190004-bucket01/BiocXenDemo%2FXenium_Prime_MultiCellSeg_Mouse_Ileum_tiny_outs.zip (seen at https://mghp.osn.xsede.org/bir190004-bucket01/index.html#BiocXenDemo/) and changed the URLs in the package to point to that. Note that IMO the suggested dataset is a bit too big to use in the examples.
Merry Christmas, happy new year, and sorry for the delay! All good to me now to accept, just two thoughts: I had a hard time parsing the TENxXenium/import example/vignette code chunk at lines 148+ (code style-wise), but maybe that's just me... And, it'd be nice if users had control over main/altExps. I couldn't figure out where exactly this is determined, maybe I'm missing something? Specifically, in the example, this is likely not what one would like to start out with:
> mainExpName(spe)
[1] "Deprecated Codeword"
> altExpNames(spe)
[1] "Gene Expression" "Genomic Control"
[3] "Negative Control Codeword" "Negative Control Probe"
[5] "Unassigned Codeword"
Received a valid push on git.bioconductor.org; starting a build for commit id: eb3528de02b64f86eae82abb39c31903cc9b94cb
Dear Package contributor,
This is the automated single package builder at bioconductor.org.
Your package has been built on the Bioconductor Single Package Builder.
Congratulations! The package built without errors or warnings on all platforms.
Please see the build report for more details.
The following are build products from R CMD build on the Single Package Builder: Linux (Ubuntu 24.04.1 LTS): XeniumIO_0.99.6.tar.gz
Links above active for 21 days.
Remember: if you submitted your package after July 7th, 2020,
when making changes to your repository push to
[email protected]:packages/XeniumIO to trigger a new build.
A quick tutorial for setting up remotes and pushing to upstream can be found here.
Hi Helena, @HelenaLC
Sorry for the delay in getting back to you. I have updated that section in the vignette to include more explanatory text.
As for the mainExpName and altExpNames, they are taken from the Type column in the features.tsv.gz data.
table(import(TENxTSV("cell_feature_matrix/features.tsv.gz"))[["Type"]])
Deprecated Codeword Gene Expression Genomic Control Negative Control Codeword
8 5006 21 609
Negative Control Probe Unassigned Codeword
40 8096
The default currently takes the most common feature (Unassigned Codeword in this case) and makes that the mainExpName.
-Marcel
No worries. Alright, I'm accepting now, because this is a design choice... I'd still be in favor of either/or
- exposing a
mainExpargument (inimport()?) that gives control over what to do, stating that, by default, the "most frequent" is taken - typically, this won't make sense because there are many more blank code words than RNA targets, unless the data is very high plex (currently only CosMx) - perhaps mentioning in the vignette something like
swapAltExp(spe, "Gene Expression")to altermain/altExppost reading (I have been using SCE for a decade and had to google that function because I didn't know about it :D)
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.
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.
Hi @HelenaLC
Thank you for bringing those issues up!
One can add a ref = "Gene Expression" input to the import function. I have updated the examples in the R functions and vignettes to reflect this. FWIW, the ref argument comes from the splitAltExps function.
I also added a note to avoid using swapAltExp because it converts the SpatialExperiment into a SingleCellExperiment. Subsequently forcing the conversion back to a SpatialExperiment leads to a loss of the spatialCoords data.
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.
Sorry, I totally missed that argument- should I reopen briefly for the build to go thru?
I think it should be fine to add to Bioc-devel. No need to re-build IMO.
Thanks a lot for all your efforts with building import infrastructure for these data!!
The default branch of your GitHub repository has been added to Bioconductor's git repository as branch devel.
To use the git.bioconductor.org repository, we need an 'ssh' key to associate with your github user name. If your GitHub account already has ssh public keys (https://github.com/LiNk-NY.keys is not empty), then no further steps are required. Otherwise, do the following:
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("XeniumIO"). The package 'landing page' will be created at
https://bioconductor.org/packages/XeniumIO
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.