binchenlab/GEOMeta
GEOMeta: Large-Scale Human Bulk RNA-seq Dataset with Curated Metadata Overview GEOMeta is a large-scale human bulk RNA-seq dataset derived from the ARCHS4 resource, containing transcript abundance profiles for ~474,000 samples across training, test, and held-out test splits. Each sample is annotated with standardized metadata including sex, organ system, disease category, age group, and experimental setting. Dataset Construction Transcript abundance… See the full description on the dataset page: https://huggingface.co/datasets/binchenlab/GEOMeta.
GEOMeta: Large-Scale Human Bulk RNA-seq Dataset with Curated Metadata
Overview
GEOMeta is a large-scale human bulk RNA-seq dataset derived from the ARCHS4 resource, containing transcript abundance profiles for ~474,000 samples across training, test, and held-out test splits. Each sample is annotated with standardized metadata including sex, organ system, disease category, age group, and experimental setting.
Dataset Construction
Transcript abundance profiles were obtained from the ARCHS4 human reference HDF5 file (human_gene_v2.5.h5). Genes were read in batches of 1,000 per chunk to reduce memory usage, with two known problematic gene index ranges (indices 56,000–58,000) excluded. Gene identifiers (Ensembl ID, gene symbol) and sample annotations (GSM accession, sample name, series ID) were extracted from the same HDF5 file and assembled into an AnnData object.
Curated metadata tables were then merged by GSM accession to add standardized attributes. Duplicate GSM entries were removed (keeping first occurrence).
The script used to generate the AnnData files is provided at data/generate_h5ad.py.
Files
AnnData Structure
.obs (sample-level metadata)
.var (gene-level metadata)
.X
Raw transcript abundance matrix (samples × genes), sparse format. Gene coverage spans 65,186 genes (67,186 total minus the 2,000 excluded problematic indices).
Metadata CSV Columns
Usage
import anndata as ad
adata_train = ad.read_h5ad("data/human_gene_v2.5_train_nhmerged.h5ad")
adata_test = ad.read_h5ad("data/human_gene_v2.5_test_nhmerged.h5ad")
adata_test_2024 = ad.read_h5ad("data/human_gene_v2.5_test_2024_nhmerged.h5ad")
print(adata_train)
# AnnData object with n_obs × n_vars = ~436000 × 65186Source
- ARCHS4: https://maayanlab.cloud/archs4/
- Raw HDF5 file:
human_gene_v2.5.h5(available from ARCHS4)
