Warning
Why this lecture comes last is exactly why it should come first. Most groups think about data submission after the manuscript is in revision. By then, sample-level metadata is buried in lab notebooks across multiple students, ontology terms have to be reverse-engineered, and you need to chase three former rotation students for their consent forms. Plan submission at experimental design.
| Principle | One-line definition | What it means for scRNA-seq |
|---|---|---|
| Findable | Data + metadata have a persistent identifier searchable in a registry | Deposit in a public repository → get a stable ID (GSE, PRJNA, EGAS, …) |
| Accessible | Anyone (or anyone authorized) can retrieve the data via an open protocol | The raw FASTQs, the count matrices, AND the metadata are downloadable — by humans and by code |
| Interoperable | Data uses shared vocabularies so different datasets combine cleanly | Cell types in Cell Ontology terms, tissues in Uberon, diseases in MONDO / Disease Ontology |
| Reusable | Provenance + clear licence + sufficient metadata for reanalysis | Anyone can reproduce your analysis from your raw data + your scripts + your metadata |
Note
FAIR ≠ open. FAIR data can be access-controlled (e.g. patient genomes in a controlled-access archive). The “A” requires that the protocol for access is open and standardized — not necessarily that the data itself is.
PRJNA######E-MTAB-####dcp_uuid (UUID4)The two major mirrored archives are:
They mirror each other for raw sequence data, so you submit to one and the other indexes it within ~24 hours. Most labs submit to NCBI; consortium-scale projects more often submit to EBI.
Submission hierarchy
PRJNA######) — the study as a whole. One per paper.SAMN########) — each biological sample. Tissue, treatment, donor metadata lives here.SRR#######) — the raw sequencing reads (FASTQs, BAMs).GSE######) — the processed data: counts matrices, normalized files, expression metadata. GEO records pull SRA + BioSample IDs in.For an scRNA-seq study you typically create all four.
Beyond the generic raw-archive (SRA / ENA), you should also deposit in a single-cell–aware repository so the data is queryable as scRNA-seq:
| Repository | Run by | What it accepts | Strengths |
|---|---|---|---|
| CELLxGENE Discover | CZI | AnnData (.h5ad) with required metadata |
Browseable atlas, in-browser visualization, schema-validated |
| Human Cell Atlas Data Portal | HCA Consortium | Raw + processed, full provenance graph | Strict QC, integrated atlas |
| Single Cell Expression Atlas | EBI | Counts + author annotations | Curated, queryable per-gene across studies |
| Single Cell Portal | Broad Institute | Loose; raw + processed | Easy upload, less curation |
Tip
For most published scRNA-seq studies in 2026 the recommended workflow is: raw FASTQs to SRA + BioProject; processed data to GEO; AnnData with cell-type metadata to CELLxGENE. The triple-deposit looks redundant but each repository serves a different audience (raw-data reanalysers, traditional bench biologists, single-cell-tool users).
A practical minimum for an scRNA-seq submission:
| Field | Why | Source / vocabulary |
|---|---|---|
donor_id |
Match cells to biological replicates | study-internal, anonymized |
tissue |
Anatomy | Uberon (UBERON:0002048 = lung) |
cell_type (per cell) |
Interpretation | Cell Ontology (CL:0000236 = B cell) |
disease |
Condition | MONDO (MONDO:0005180 = Parkinson disease) or PATO:0000461 (normal) |
assay |
Platform | EFO (EFO:0009922 = 10x 3’ v3) |
organism |
Species | NCBI Taxonomy (NCBITaxon:9606 = human) |
development_stage |
Age | HsapDv for human, MmusDv for mouse |
sex |
Phenotype | PATO:0000383 (female) / PATO:0000384 (male) / unknown |
self_reported_ethnicity |
Ancestry | HANCESTRO ontology |
is_primary_data |
Re-use flag | Boolean |
suspension_type |
Cell vs nucleus | cell / nucleus (CELLxGENE schema enum) |
This is roughly the CELLxGENE schema v5.0 — the most demanding of the major repositories, and also the most reusable. Meeting CELLxGENE’s bar gets you GEO + HCA “for free”.
Tip
Look up ontology terms with OLS — Ontology Lookup Service at EBI. Search “B cell” → it returns CL:0000236. The ID is what goes in your metadata; the human-readable label is for display.
| Layer | Format | Why |
|---|---|---|
| Raw reads | .fastq.gz (paired or single-end) |
Universally supported |
| Aligned reads | .bam + .bai |
Optional — useful for re-alignment |
| Per-cell counts | .h5 (10x), .mtx + barcodes.tsv + features.tsv |
Cell Ranger output |
| Annotated object | .h5ad (AnnData) preferred; .rds (Seurat) accepted by some |
CELLxGENE / scverse-native |
| Metadata sheet | .csv / .tsv (also embedded in .h5ad via .obs) |
Sample-level + per-cell |
| Analysis code | git repo (Zenodo for archival) | Reproducibility |
Warning
Seurat .rds files are not future-proof. They lock the data to the Seurat version that wrote them. For long-term archival use AnnData (.h5ad) — it’s a versioned, language-agnostic HDF5-based format readable by Scanpy, Seurat 5, and anndata-rs.
The tutorial (Module 17) uses a two-step bridge via SeuratDisk:
SeuratDisk may fail on Seurat v5’s Assay5 class — check the tutorial’s error notescellxgene-schema validate ifnb_for_submission.h5ad to confirm all required columns are present and all ontology IDs are recognizedEnd-to-end scRNA-seq submission workflow
.fastq.gz to SRA with sample → BioSample linksTip
Tutorial 17 has a runnable template for this — start with it now, even before you have data, and adapt for your study.
UBERON:0002048 — passes for GEO but fails CELLxGENE / HCAis_primary_data flag. If you reanalyzed someone else’s published data and submit it, mark it as derivativecell_type column makes the dataset effectively unreusableWarning
The cost of doing FAIR is paid up-front during the project. The payoff is paid back over the rest of your career and the lifetime of the data. Skipping it feels efficient and is not.
Note
colnames(ifnb@meta.data) reveals what metadata is already in the object — QC metrics, condition (stim), cluster assignments, cell-type labels. What is missing: species, tissue ontology, assay type, per-cell donor ID. This gap is the whole point of the tutorial. A dataset with rich per-cell labels but no sample-level metadata is only half-FAIR.
is_primary_data — set to FALSE if you are re-depositing someone else’s data. Omitting this breaks atlas-level de-duplication.condition field. IFN-β stimulation is an experimental treatment (encode in a custom treatment column), not a disease (disease_ontology_term_id = "PATO:0000461" for both CTRL and STIM)..h5ad) is the format-of-record; .rds is convenient but not archivalifnb_annotated_final.rdsSingle Cell RNA-seq Workshop · Lecture 17