Skip to main content

omicsmeta

omicsmeta is an early-stage Python package for harmonizing public omics metadata from GEO, SRA, BioSample, and tabular exports.

The central design choice is to make ontology mapping pluggable. Generic mapping tools such as text2term are useful, but public omics metadata also needs domain-specific preprocessing, field-type detection, confidence-aware routing, and cross-field validation. omicsmeta is intended to provide that pipeline.

Current implementation status:

  • string normalization and biomedical abbreviation expansion
  • heuristic metadata field detection
  • lightweight built-in ontology mapper for common terms
  • optional text2term mapper adapter
  • simple OBO loader and SQLite ontology cache
  • tabular, minimal GEO SOFT, BioSample XML, and SRA XML readers
  • harmonization orchestrator and CLI
  • real GEO SOFT snippet test coverage
  • conservative field routing for ambiguous metadata columns
  • transparent cell-line inference for missing species/tissue/disease fields
  • deduplicated unmapped-term summaries for manual curation
  • sample-wide output tables
  • batch harmonization
  • known-answer benchmark helper and CLI script

Install

Install the published package from PyPI:

python -m pip install omicsmeta

Confirm the command-line interface is available:

omicsmeta --help

For contributor setup from a source checkout, install the development extras:

python -m pip install -e ".[dev,docs]"

Quick Use

Create a small CSV or TSV metadata table:

cat > metadata.tsv <<'EOF'
sample_id,species,tissue,disease,cell line,sex
sample_1,Homo sapiens,lung,NSCLC,A549,female
sample_2,Homo sapiens,breast,breast cancer,MCF-7,female
EOF

Harmonize the file and write reviewable output tables:

omicsmeta harmonize metadata.tsv \
  --output harmonized.tsv \
  --unmapped unmapped.tsv \
  --unmapped-summary-output unmapped_summary.tsv \
  --sample-output samples.tsv \
  --report qc_report.html

Direct GEO fetching is also available:

omicsmeta harmonize \
  --geo-accession GSE123456 \
  --output harmonized.tsv \
  --unmapped unmapped.tsv \
  --unmapped-summary-output unmapped_summary.tsv \
  --sample-output samples.tsv \
  --report qc_report.html

Custom local OBO files can be added to the built-in mapper:

omicsmeta harmonize metadata.tsv \
  --ontology-obo disease_slim.obo \
  --output harmonized.tsv \
  --unmapped unmapped.tsv \
  --unmapped-summary-output unmapped_summary.tsv \
  --sample-output samples.tsv \
  --report qc_report.html

Managed ontology resources can be cached locally:

omicsmeta ontologies list
omicsmeta ontologies download doid uberon cl
omicsmeta ontologies index --resource doid --resource uberon
omicsmeta harmonize metadata.tsv \
  --ontology-resource doid \
  --ontology-resource uberon \
  --output harmonized.tsv \
  --unmapped unmapped.tsv \
  --unmapped-summary-output unmapped_summary.tsv \
  --sample-output samples.tsv \
  --report qc_report.html

Multiple files can be harmonized in one run:

omicsmeta batch \
  --input metadata_a.tsv \
  --input metadata_b.tsv \
  --output harmonized.tsv \
  --unmapped unmapped.tsv \
  --unmapped-summary-output unmapped_summary.tsv \
  --sample-output samples.tsv \
  --report qc_report.html

Known-answer fixtures can be benchmarked:

python scripts/benchmark_mapping.py \
  --input examples/basic/metadata.tsv \
  --truth examples/basic/expected_harmonized.tsv

Run the bundled multi-fixture benchmark suite:

python scripts/benchmark_mapping.py \
  --manifest benchmarks/known_answer_suite.tsv \
  --output-json benchmark_suite.json

Documentation

Maturity

This repository is pre-alpha and not yet JOSS-ready. Version 0.1.0 is published on PyPI for early testing, but the project still needs publication-scale curated benchmarks, external user feedback, and Galaxy Tool Shed validation before submission.

Run tests locally with:

python -m pip install -e ".[dev,docs]"
python -m pytest

Release files for omicsmeta 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for omicsmeta 0.1.1
File Size Uploaded
omicsmeta-0.1.1.tar.gz 49.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for omicsmeta 0.1.1
File Interpreter ABI Platform
omicsmeta-0.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 81.5 kB

Release files / omicsmeta-0.1.1.tar.gz

Download URL omicsmeta-0.1.1.tar.gz
Size 49.7 kB
Tags Source
SHA-256 checksum
How to use checksums
1eb8bcd05f2688c4d3d229f04bbb88f7c1700615df0951acc589658681fd3e08
BLAKE2b-256 checksum
How to use checksums
372fd152018ea8532417003b9f55f7adcbb45a7418e3f93bb15f4929f54fd1ad
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 13, 2026.

Transparency log

Release files / omicsmeta-0.1.1-py3-none-any.whl

Download URL omicsmeta-0.1.1-py3-none-any.whl
Size 31.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c02f8e6a2f6887fec132206335c99f97c9584680c4508a900ce9ed4e9f7d9472
BLAKE2b-256 checksum
How to use checksums
f8353d4d67b860429be2337eb9c4eacbda0823b1d67c8d0b13e1734ca5ac2a7a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 13, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page