Skip to content
Merged
Show file tree
Hide file tree
Changes from 89 commits
Commits
Show all changes
91 commits
Select commit Hold shift + click to select a range
69b3632
Merge pull request #434 from AlexsLemonade/allyhawkins/merged-changelog
allyhawkins Jul 25, 2025
6767d8c
see if i can turn on spell check
sjspielman Aug 12, 2025
4276815
Update sce_file_contents
sjspielman Aug 12, 2025
ec86ac2
Update merged_contents, and reorder in sce_file_contents
sjspielman Aug 12, 2025
8080cd5
add doublets processing
sjspielman Aug 12, 2025
5eeaa62
Merge pull request #442 from AlexsLemonade/sjspielman/turn-on-manuscr…
sjspielman Aug 12, 2025
50a6311
Merge branch 'the-manuscript' into sjspielman/436-437-doublets
sjspielman Aug 12, 2025
b2d0312
Update docs/sce_file_contents.md
sjspielman Aug 12, 2025
e4ecfeb
Merge pull request #443 from AlexsLemonade/sjspielman/436-437-doublets
sjspielman Aug 12, 2025
0500e74
#438: update ADT filtering language
sjspielman Aug 13, 2025
46d1266
#439: clarify normalization approach
sjspielman Aug 13, 2025
bacfbe6
Add faq section about mudata, and fix typo readh5ad -> read_h5ad whil…
sjspielman Aug 13, 2025
57b56a4
also add into getting_started
sjspielman Aug 13, 2025
7681dfb
MuData to dictionary
sjspielman Aug 13, 2025
773e734
Merge pull request #444 from AlexsLemonade/sjspielman/438-439-doc-upd…
sjspielman Aug 13, 2025
f5b71f6
Merge branch 'the-manuscript' into sjspielman/440-mudata-getting-started
sjspielman Aug 13, 2025
44755d9
Apply suggestions from code review
sjspielman Aug 13, 2025
e266a91
remove code and replace with link in faq
sjspielman Aug 14, 2025
181b1fc
Revert "remove code and replace with link in faq"
sjspielman Aug 14, 2025
45a05fa
general sentence directing to getting started
sjspielman Aug 14, 2025
f24d3e2
Merge pull request #445 from AlexsLemonade/sjspielman/440-mudata-gett…
sjspielman Aug 14, 2025
a44fcdc
explain that some fields are missing due to type conversion
sjspielman Sep 24, 2025
52fe0f3
phrasing tweak and state plainly that singler_results is DF
sjspielman Sep 24, 2025
9add3a2
data frames are ok
sjspielman Sep 24, 2025
97002d4
add inferCNV file contents
sjspielman Sep 25, 2025
1bd6e42
add processing information section
sjspielman Sep 25, 2025
6ae462e
tweaks
sjspielman Sep 25, 2025
dde0636
get rid of those extra 2lines
sjspielman Sep 25, 2025
a5661ab
CNV to dictionary
sjspielman Sep 25, 2025
02a6a46
Apply suggestions from code review
sjspielman Sep 30, 2025
56ff051
text update to link back to cell types
sjspielman Sep 30, 2025
89c87c3
Update docs/sce_file_contents.md
sjspielman Sep 30, 2025
79a5996
Merge pull request #453 from AlexsLemonade/sjspielman/anndata-updated…
sjspielman Sep 30, 2025
d2e1188
Merge branch 'the-manuscript' into sjspielman/infercnv-docs
sjspielman Sep 30, 2025
9505c08
Merge pull request #454 from AlexsLemonade/sjspielman/infercnv-docs
sjspielman Sep 30, 2025
4d18d4e
processing openscpca annotations
allyhawkins Oct 7, 2025
b88a1ee
where to find openscpca annotations
allyhawkins Oct 7, 2025
42c1c14
add openscpca to dictionary
allyhawkins Oct 7, 2025
9282d6b
spell appropriate
allyhawkins Oct 7, 2025
e0d5918
Apply suggestions from code review
allyhawkins Oct 8, 2025
d6eb8b1
account for new split metadata entries
allyhawkins Oct 8, 2025
fa94eb7
add a note about where to find openscpca info
allyhawkins Oct 8, 2025
e312f81
Apply suggestions from code review
allyhawkins Oct 8, 2025
acca2f9
Merge pull request #455 from AlexsLemonade/allyhawkins/openscpca-anno…
allyhawkins Oct 8, 2025
892686a
add infercnv faqs and fix a link
sjspielman Oct 9, 2025
e898f35
more links
sjspielman Oct 9, 2025
029a68f
infercnv to dictionary
sjspielman Oct 9, 2025
22ab3d7
missing a period
sjspielman Oct 9, 2025
67814e7
Update docs/faq.md - end sentence where it should end
sjspielman Oct 9, 2025
fe5783c
Merge pull request #456 from AlexsLemonade/sjspielman/infercnv-faqs
sjspielman Oct 9, 2025
885f9ad
include scimilarity in processing
allyhawkins Oct 16, 2025
a237df9
scimilarity to sce contents
allyhawkins Oct 16, 2025
045492d
add Heimberg to dictionary
allyhawkins Oct 16, 2025
00a632e
Apply suggestions from code review
allyhawkins Oct 16, 2025
0f0ba35
add infercnv options to merged
allyhawkins Oct 16, 2025
feb468a
among not between
allyhawkins Oct 16, 2025
de2d299
link to openscpca and mention consensus at the beginning
allyhawkins Oct 16, 2025
81d57eb
remove a period
allyhawkins Oct 17, 2025
77b08bf
Merge pull request #457 from AlexsLemonade/allyhawkins/document-scimi…
allyhawkins Oct 17, 2025
610453e
use foundation
allyhawkins Oct 17, 2025
80626d8
Merge pull request #458 from AlexsLemonade/allyhawkins/foundation
allyhawkins Oct 17, 2025
1e00476
Add section to download files
jashapiro Oct 23, 2025
0c67f57
Add FAQ entry
jashapiro Oct 23, 2025
f4695c5
Fix a few links and filenames
jashapiro Oct 23, 2025
c15a8c9
update dictionary
jashapiro Oct 23, 2025
7072d7a
Update docs/download_files.md
jashapiro Oct 23, 2025
99a4729
Merge pull request #460 from AlexsLemonade/jashapiro/scpcar
jashapiro Oct 23, 2025
88498bb
add new infercnv metadata fields
allyhawkins Nov 11, 2025
c9698a6
Apply suggestions from code review
allyhawkins Nov 11, 2025
579607d
specify no infercnv on normal
allyhawkins Nov 11, 2025
159129d
Merge pull request #463 from AlexsLemonade/allyhawkins/462-infercnv-b…
allyhawkins Nov 12, 2025
486da83
rewording for consensus methods
allyhawkins Nov 24, 2025
cd17e80
Merge pull request #464 from AlexsLemonade/allyhawkins/reword-consens…
allyhawkins Nov 24, 2025
f6d4983
new feature changelog
allyhawkins Dec 4, 2025
c65a594
neuroblastoma to the dictionary
allyhawkins Dec 4, 2025
fac010d
Apply suggestions from code review
allyhawkins Dec 4, 2025
1a442e8
Merge pull request #469 from AlexsLemonade/allyhawkins/new-features-c…
allyhawkins Dec 4, 2025
9fa777d
just adding in today's date for the release
allyhawkins Dec 4, 2025
b2a2833
Merge pull request #471 from AlexsLemonade/allyhawkins/manuscript-rel…
allyhawkins Dec 4, 2025
9878b93
filtered and processed
allyhawkins Dec 5, 2025
7205cee
temporarily add back the-manuscript
allyhawkins Dec 5, 2025
e19c59a
Merge pull request #472 from AlexsLemonade/allyhawkins/tiny-pr
allyhawkins Dec 5, 2025
9d98100
Merge pull request #470 from AlexsLemonade/the-manuscript
allyhawkins Dec 5, 2025
81e70e3
add missing >
sjspielman Dec 17, 2025
8e7747b
there was another one
sjspielman Dec 17, 2025
447a713
oh boy, caught a few more in the rendered site
sjspielman Dec 17, 2025
638d184
Merge pull request #476 from AlexsLemonade/sjspielman/473-fix-link
sjspielman Dec 17, 2025
08728c0
Merge remote-tracking branch 'origin/main' into allyhawkins/sync-main…
allyhawkins Jan 6, 2026
7f8b351
remove the manuscript
allyhawkins Jan 6, 2026
47a2180
Apply suggestions from code review
allyhawkins Jan 6, 2026
2f91e05
one more space
allyhawkins Jan 6, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion .github/workflows/spell-check.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
name: Spell check Markdown files

# Controls when the action will run.
# Pull requests to master only.
on:
pull_request:
branches:
Expand Down
7 changes: 7 additions & 0 deletions components/dictionary.txt
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ cellhash
cellhashing
CELLxGENE
CHANGELOG
CNV
confounders
CZI
CZI's
Expand Down Expand Up @@ -47,13 +48,15 @@ hashedDrops
HDF
hexamer
HBC
Heimberg
Hemberg
HTO
HTODemux
HTOs
Hippen
HVG
HVGs
inferCNV
intronic
introns
isotype
Expand All @@ -65,12 +68,16 @@ Lun
Marioni
miQC
MLA
MuData
Neuroblastoma
oligo
oligos
OpenScPCA
Pearson
Prasad
pre
preprint
programmatically
pseudocount
pseudogenes
Looney
Expand Down
21 changes: 21 additions & 0 deletions docs/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,27 @@ For more information about `AlexsLemonade/scpca-nf` versions, please see [the re
<!-- PUT THE NEW CHANGELOG ENTRY RIGHT BELOW THIS -->
<!-------------------------------------------------->

## 2025.12.04

All data on the Portal has been updated to include a number of new features.

* Doublet detection was run on all samples using [`scDblFinder`](https://bioconductor.org/packages/release/bioc/html/scDblFinder.html).
No doublets were filtered, but the results from `scDblFinder` are present in the filtered and processed objects.
* Updated cell type annotations
* All samples include cell type annotations obtained from [`SCimilarity`](https://genentech.github.io/scimilarity/), in addition to the existing cell type annotations from `SingleR` and `CellAssign`.
* Consensus cell types have been updated to incorporate `SCimilarity` results.
If two of the three automated methods agree using an ontology-based approach, a consensus cell type is assigned.
* See our {ref}`documentation on cell type annotation<processing_information:cell type annotation>` for more information on these updated cell types.
* Cell types were annotated as part of the ongoing [OpenScPCA project](https://openscpca.readthedocs.io) for `SCPCP000004` (Neuroblastoma) and `SCPCP000015` (Ewing sarcoma).
These cell types are now included in all objects for those samples.
* For more information see our {ref}`documentation on OpenScPCA cell types<processing_information:cell type annotations from the OpenScPCA project>`.
* CNV inference was performed using [`InferCNV`](https://github.com/broadinstitute/infercnv) on all samples with at least 100 non-malignant reference cells, as identified by the consensus cell types.
* See our {ref}`documentation on CNV inference <processing_information:CNV inference>`
* For more information on where to find the inferCNV results in the downloaded objects see {ref}`the single-cell gene expression file contents page<sce_file_contents:singlecellexperiment cell metrics>` and {ref}`the merged object file contents page<merged_objects:singlecellexperiment cell metrics>`.

In addition to these new features, data from the Portal can now be downloaded programmatically using the new [`ScPCAr` package](https://alexslemonade.github.io/ScPCAr).
See an example in {ref}`our documentation <download_files:programmatic downloads from the ScPCA Portal>`.

## 2025.07.25

* Previously, the `cell_id` column in the cell metadata for merged objects was incorrectly formatted.
Expand Down
45 changes: 41 additions & 4 deletions docs/download_files.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,9 @@ Note that multiplexed sample libraries are only available as `SingleCellExperime
See the {ref}`FAQ section about samples and libraries <faq:What is the difference between samples and libraries?>` for more information.

The files shown below will be included with each library (example shown for a library with ID `SCPCL000000`):
- An unfiltered counts file: `SCPCL000000_unfiltered.rds` or `SCPCL00000_unfiltered_rna.h5ad`,
- A filtered counts file: `SCPCL000000_filtered.rds` or `SCPCL00000_filtered_rna.h5ad`,
- A processed counts file: `SCPCL000000_processed.rds` or `SCPCL00000_processed_rna.h5ad`,
- An unfiltered counts file: `SCPCL000000_unfiltered.rds` or `SCPCL000000_unfiltered_rna.h5ad`,
- A filtered counts file: `SCPCL000000_filtered.rds` or `SCPCL000000_filtered_rna.h5ad`,
- A processed counts file: `SCPCL000000_processed.rds` or `SCPCL000000_processed_rna.h5ad`,
- A quality control report: `SCPCL000000_qc.html`,
- A supplemental cell type report: `SCPCL000000_celltype-report.html`

Expand Down Expand Up @@ -188,7 +188,7 @@ This file contains the raw and normalized counts data for cell barcodes that hav
In addition to the counts matrices, the `SingleCellExperiment` or `AnnData` object stored in the file includes the results of dimensionality reduction using both principal component analysis (PCA) and UMAP.

See {ref}`Single-cell gene expression file contents <sce_file_contents:Single-cell gene expression file contents>` for more information about the contents of the `SingleCellExperiment` and `AnnData` objects and the included statistics and metadata.
See also {ref}`Using the provided RDS files in R <faq:how do i use the provided RDS files in r?>` and {ref}`Using the provided H5AD files in Python <faq:how do i use the provided H5AD files in python?>`.
See also {ref}`Getting started with an ScPCA dataset <getting_started:Getting started with an scpca dataset>`.

## QC report

Expand Down Expand Up @@ -325,3 +325,40 @@ The `SCPCP000000_bulk_quant.tsv` file contains a gene by sample matrix (each row
The `SCPCP000000_bulk_metadata.tsv` file contains associated metadata for all samples with bulk RNA-seq data.
This file will contain fields equivalent to those found in the `single-cell_metadata.tsv` related to processing the sample, but will not contain patient or disease specific metadata (e.g. `age`, `sex`, `diagnosis`, `subdiagnosis`, `tissue_location`, or `disease_timing`).
See also {ref}`processing bulk RNA samples <processing_information:Bulk RNA samples>`.

## Programmatic downloads from the ScPCA Portal

We provide an R package, [`ScPCAr`](https://alexslemonade.github.io/ScPCAr/), to facilitate programmatic access to the ScPCA Portal.
This package allows you to search for and download data from the ScPCA Portal directly within R.

An example of basic usage of the `ScPCAr` package follows:

```r
library(ScPCAr)

# First, look at the terms of use
view_terms()

# Get an authentication token for use with the ScPCA Portal
auth_token <- get_auth(email = "[email protected]", agree = TRUE)

# Get the sample metadata for a project
sample_metadata <- get_sample_metadata(project_id = "SCPCP000001")

# Download data for a sample
# this function returns a vector of the downloaded file paths
file_paths <- download_sample(
sample_id = "SCPCS000001",
auth_token = auth_token,
destination = "scpca_data",
format = "sce"
)

# select and read in the processed SingleCellExperiment object
processed_data <- grep("_processed.rds$", file_paths)
sce <- readRDS(processed_data)
```

Please see the [package documentation](https://alexslemonade.github.io/ScPCAr/) for more details about installation and usage.
Source code for the package can be found on [GitHub](https://github.com/AlexsLemonade/ScPCAr).
Information about working with downloaded files can be found in our {ref}`Getting started with an ScPCA dataset <getting_started:Getting started with an scpca dataset>` guide.
53 changes: 50 additions & 3 deletions docs/faq.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,11 +44,11 @@ This download includes H5AD files that can be directly read into Python.

_Note: You will need to install the [`AnnData` package](https://anndata.readthedocs.io/en/latest/index.html) to work with the provided files._

To read in the H5AD files you can use the `readh5ad` function from the `AnnData` package.
To read in the H5AD files you can use the `read_h5ad` function from the `AnnData` package.

```python
import anndata
scpca_sample = anndata.readh5ad(file = "SCPCL000000_processed_rna.h5ad")
scpca_sample = anndata.read_h5ad(file = "SCPCL000000_processed_rna.h5ad")
```

A full description of the contents of the `AnnData` object can be found in the section on {ref}`Components of an AnnData object <sce_file_contents:Components of an anndata object>`.
Expand All @@ -69,6 +69,30 @@ There are two types of samples where `AnnData` objects are not available:
Therefore, we do not currently provide any multiplexed libraries as `AnnData` objects.
- In addition, providing multiplexed data in this form is not compliant with the standards for [CZI's CELLxGENE](https://cellxgene.cziscience.com), which we have tried to match as closely as possible.


## What if I want to use MuData instead of AnnData objects?

[`MuData` objects](https://mudata.readthedocs.io/en/latest/index.html) are Python objects built on top of `AnnData` objects that are specifically used to store multimodal data.
Currently, we provide RNA counts and ADT counts, if present, as separate `AnnData` objects in their own H5AD files, as described in {ref}`the file contents documentation<sce_file_contents:Additional AnnData components for CITE-seq libraries (with ADT tags)>`.
However, these objects can be combined into a `MuData` object if desired for a multimodal analysis.

_Note: You will need to install the [`MuData` package](https://mudata.readthedocs.io/en/latest/index.html) to generate and work with `MuData` objects._

```python
import anndata
import mudata

# Read individual AnnData files
rna_object = anndata.read_h5ad(file = "SCPCL000000_processed_rna.h5ad")
adt_object = anndata.read_h5ad(file = "SCPCL000000_processed_adt.h5ad")

# Combine into a MuData object, using keys "RNA" and "ADT" to distinguish modalities
mdata_object = mudata.MuData({"RNA": rna_object, "ADT": adt_object})
```

For more information on working with `AnnData` objects, see {ref}`Getting started with an ScPCA dataset <getting_started:Getting started with an scpca dataset>`.


## What is the difference between samples and libraries?

A sample ID, labeled as `scpca_sample_id` and indicated by the prefix `SCPCS`, represents a unique tissue that was collected from a participant.
Expand Down Expand Up @@ -132,12 +156,29 @@ You can find the [function for generating a QC report](https://github.com/AlexsL
## Which libraries include cell type annotations?

Most single-cell and single-nuclei RNA-seq libraries available on the portal will have cell type annotations included in the processed `SingleCellExperiment` or `AnnData` object.
For more information on where to find the cell type annotations, refer to section(s) describing {ref}`SingleCellExperiment file contents <sce_file_contents:singlecellexperiment sample metadata>` and/or {ref}`AnnData file contents <sce_file_contents:anndata cell metrics>`.
For more information on where to find the cell type annotations, refer to section(s) describing {ref}`SingleCellExperiment file contents <sce_file_contents:singlecellexperiment cell metrics>` and/or {ref}`AnnData file contents <sce_file_contents:anndata cell metrics>`.
If cell type annotation was performed, a supplemental cell type report (`SCPCL000000_celltype-report.html`) will be included in the download.

Cell type annotation is not performed on samples derived from cell lines.
This means processed objects will not include cell type annotations, and the download will not include a cell type report.

## Which libraries include CNV inferences?

As with cell type annotation, most single-cell and single-nuclei RNA-seq libraries available on the portal will have {ref}`CNV inferences<processing_information:cnv inference>` in the processed `SingleCellExperiment` or `AnnData` object.
For more information on where to find these results, refer to sections describing {ref}`SingleCellExperiment cell metrics <sce_file_contents:singlecellexperiment cell metrics>` and {ref}`SingleCellExperiment metadata <sce_file_contents:singlecellexperiment experiment metadata>`, and/or {ref}`AnnData cell metrics <sce_file_contents:anndata cell metrics>` and {ref}`AnnData metadata <sce_file_contents:anndata experiment metadata>`.

There are several circumstances when CNV results are not available:

* CNV inference is not performed on libraries which do not have enough cells to include in a normal reference, as described in the {ref}`CNV inference processing documentation<processing_information:cnv inference>`
* CNV inference is not performed on libraries derived from cell line samples
* If `inferCNV` experienced a failure while running, there will not be any associated results in the processed objects

## Where can I find the inferCNV heatmap?

For libraries that underwent CNV inference, the [`inferCNV` heatmap depicting expression across genomic regions](https://github.com/broadinstitute/inferCNV/wiki/Interpreting-the-figure) is embedded in the final QC report.
You can directly copy the figure from the QC report file for use in other contexts.


## What if I want to use Seurat instead of Bioconductor?

The RDS files available for download contain [`SingleCellExperiment` objects](http://bioconductor.org/books/3.13/OSCA.intro/the-singlecellexperiment-class.html).
Expand Down Expand Up @@ -249,8 +290,14 @@ Download links expire in 7 days, but you can generate a new link on the ScPCA Po

Download links are only available for projects (i.e., not for downloading individual samples).

## Can I download data from the Portal programmatically?
## Why can't I change the data format in My Dataset?

We provide an R package, [`ScPCAr`](https://alexslemonade.github.io/ScPCAr/), to facilitate programmatic access to the ScPCA Portal.
This package allows you to search for and download data from the ScPCA Portal directly within R.
Please see the [package documentation](https://alexslemonade.github.io/ScPCAr/) for more details about installation and usage.
Source code for the package can be found on [GitHub](https://github.com/AlexsLemonade/ScPCAr).

When creating a {ref}`custom dataset for download<download_files:Custom datasets>` (`My Dataset`), all single-cell sample or project data included must be of the same {ref}`data format<download_options:Data format>`, either `SingleCellExperiment` for use in R or `AnnData` for use in Python.
We currently do not support including both data formats at once in `My Dataset`.
Once a sample or project of a given data format has been added to `My Dataset`, all subsequent single-cell or single-nuclei data added will automatically be in that same format.
Expand Down
21 changes: 19 additions & 2 deletions docs/getting_started.md
Original file line number Diff line number Diff line change
Expand Up @@ -408,7 +408,7 @@ subsetted_adata_merged_object = adata_merged_object[adata_merged_object.obs["lib
```

The merged object additionally contains metadata such as information about sample diagnosis, subdiagnosis, or tissue location that may be useful for subsetting.
A full set of merged object contents which can support subsetting {ref}`is available here<merged_objects:SingleCellExperiment cell metrics>`.
A full set of merged object contents which can support subsetting is available in {ref}`this documentation<merged_objects:merged objects>`.

As one example, to subset a `SingleCellExperiment` merged object to a given diagnosis, use the following R code:

Expand Down Expand Up @@ -489,7 +489,7 @@ Be aware that the processed objects have been filtered to remove low-quality cel
### Filtering cells based on ADT quality control

The `adt_scpca_filter` column indicates which cells should be removed before proceeding with downstream analyses of the ADT data, as determined by [`DropletUtils::CleanTagCounts()`](https://rdrr.io/github/MarioniLab/DropletUtils/man/cleanTagCounts.html).
This process identified cells with high levels of ambient contamination and/or high levels of negative control ADTs (if available).
This process identified low-quality cells as those with either very low or high levels of ambient contamination and/or negative control ADTs (if available).
Cells are labeled either as `"Keep"` (cells to retain) or `"Remove"` (cells to filter out).

To filter cells based on this column in the `SingleCellExperiment` objects, use the following command:
Expand Down Expand Up @@ -520,6 +520,23 @@ Here are some additional resources that can be used for working with ADT counts
- [Integrating with Protein Abundance, Orchestrating Single Cell Analysis](http://bioconductor.org/books/3.15/OSCA.advanced/integrating-with-protein-abundance.html)
- [Seurat vignette on using with multimodal data](https://satijalab.org/seurat/articles/multimodal_vignette.html)

### Using MuData objects for multimodal analysis

It is also possible to combine the given RNA and ADT `AnnData` objects into a single [`MuData` object](https://mudata.readthedocs.io/en/latest/index.html) for multimodal analysis, as shown below.

_Note: You will need to install the [`MuData` package](https://mudata.readthedocs.io/en/latest/index.html) to generate and work with `MuData` objects._

```python
import anndata
import mudata

# Read individual AnnData files
rna_object = anndata.read_h5ad(file = "SCPCL000000_processed_rna.h5ad")
adt_object = anndata.read_h5ad(file = "SCPCL000000_processed_adt.h5ad")

# Combine into a MuData object, using keys "RNA" and "ADT" to distinguish modalities
mdata_object = mudata.MuData({"RNA": rna_object, "ADT": adt_object})
```

## Special considerations for multiplexed samples

Expand Down
Loading