CoolFace
Datasetpublic

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.

sourceHugging Faceupdated 4mo agoView on Hugging Face
0likes125downloads
Dataset Card

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

FileDescriptionSamples
data/human_gene_v2.5_train_nhmerged.h5adTraining split~436,000
data/human_gene_v2.5_test_nhmerged.h5adTest split~24,500
data/human_gene_v2.5_test_2024_nhmerged.h5adHeld-out test split (2024 samples)~13,600
data/GEO_HUMAN_500K_training.csvMetadata for training split~436,000
data/GEO_HUMAN_500K_test.csvMetadata for test split~24,500
data/GEO_HUMAN_500K_test_2024.csvMetadata for held-out test split~13,600
data/generate_h5ad.pyScript to reproduce AnnData files from source HDF5

AnnData Structure

.obs (sample-level metadata)

FieldDescription
geo_accessionGSM accession ID
sampleSample name
series_idGSE series ID
genderSex (standardized)
organ_systemOrgan/tissue system
diseaseDisease label (Normal for healthy samples)
ageAge group
Experimental_SettingExperimental context (e.g., In Vitro, In Vivo)
Broad_Disease_CategoryBroad disease category (grouped from disease)

.var (gene-level metadata)

FieldDescription
ensembl_id / ensembl.geneEnsembl gene ID (index)
symbolGene symbol

.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

ColumnDescription
GSE_IDGEO Series accession
GSM_IDGEO Sample accession
yearYear of submission
contact_countrySubmitting country
instrument_modelSequencing platform
RNA_LibraryLibrary type (e.g., mRNA-based)
Exp_SettingExperimental setting
GSE_PertWhether the series involves a perturbation
DiseaseDisease label
OrganOrgan/tissue
GenderSex
Age_GroupAge group

Usage

python
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 × 65186

Source

  • ARCHS4: https://maayanlab.cloud/archs4/
  • Raw HDF5 file: human_gene_v2.5.h5 (available from ARCHS4)