omicau
New to this · No stats background needed

Not a statistician? Start here

ℹ omicau in three sentences You give omicau one table of numbers per data type (say RNA and protein) plus a column saying what each sample is (tumor vs. normal, responder vs. non-responder, a measured value). It checks whether combining those data types predicts that outcome better than the single best one alone, and whether the apparent signal is real or an artifact of how the data was collected. It hands back a one-page verdict in plain words, colour-coded from ✓ trust to ▲ don't.

The one figure to read

Open report.html and read the executive summary tab first — nothing else. It has three parts, top to bottom:

  • The answer strip — three questions, one plain answer each: Does combining layers help? · Is the data trustworthy? · What should you do next?
  • The verdict — one paragraph naming the best model, its score, and whether combining actually beat using one data type alone.
  • The run report card — a pass / caution / fail checklist telling you how far to trust the run before you trust any number in it.

If the report card shows a fail, stop and read why — a number sitting above a failed check is not a result. Every term on the page has an you can hover for a plain definition.

What this does not tell you

⚠ Do not conclude A good score means the data carries predictive signal for this outcome under cross-validation — nothing more. It is not a prediction about any individual, not a diagnosis, and not a clinical decision. It does not say which genes or proteins cause the outcome (the feature ranking is indicative, not causal). And a result is only as trustworthy as the report card allows — a wide confidence interval or a flagged batch effect means "not proven," not "proven."

Ready for more? Reading the report walks through every panel; Is my result trustworthy? is the full trust checklist.

Multi-omics audit · Fusion benchmarking

Leakage-safe multi-omics audit and fusion benchmarking

omicau ingests one numeric matrix per omic layer plus a clinical endpoint, then audits the data and benchmarks how well those layers combine to predict the endpoint. It emits a self-contained interactive HTML dashboard alongside machine-readable JSON and CSV, and runs fully offline.

✓ Validated on real data Re-run and checked against the literature on 8 public datasets across model and non-model organisms (human, mouse, zebrafish, yeast, Arabidopsis) and every task type — e.g. TCGA-BRCA subtype AUROC 0.953, overall-survival C-index 0.66, CCLE SOX10 R² 0.72 — with the CI-aware leakage gate correctly refusing to certify the n≪p perfect scores. See the benchmark table →
ℹ Who is this for Clinicians / PIs: start at Reading the report — omicau answers three questions in plain language and tells you how far to trust the result. Bioinformaticians: start at How it works or Quick start.
omicau executive-summary dashboard
Figure 1 — the executive summary: the three-question answer strip, the clinical verdict, and the run report card.

What omicau answers

Before anyone builds a model on a multi-omic dataset, omicau answers three questions about the data itself:

  1. Does combining omic layers actually help, or does one layer already carry the signal?
  2. Is the apparent signal trustworthy, or an artifact of batch effects, outcome-linked missing data, or information leakage in the cross-validation?
  3. What should you do next — adopt the fusion model, prefer a single layer, distrust a confounded layer, or re-check the splits?

It makes no patient predictions and issues no diagnosis. Under leakage-safe, group-aware cross-validation it benchmarks classical and neural fusion with group-level bootstrap 95% confidence intervals, tests each layer's marginal contribution with a corrected resampled t-test, measures cross-layer redundancy, benchmarks negative controls to prove the pipeline does not leak, and locks provenance with a value-level SHA-256 hash.

Installation

omicau is on PyPI — one line installs it. Python ≥ 3.10; every option below gives the same omicau command.

pip / pipx simplest

pipx install omicau            # isolated CLI install — recommended for a tool
pip install omicau             # or into your current environment
pip install "omicau[all]"      # + every cross-platform runtime feature
ℹ pipx vs pippipx keeps omicau in its own isolated environment (nothing to conflict with your other packages); plain pip works too. The base install is flawless on Windows, macOS, and Linux — only the optional extras touch the network or a platform-specific dependency.
⚠ Debian / Ubuntu 24.04+The system Python is "externally managed" (PEP 668), so pip install omicau into it errors with externally-managed-environment. Install with pipx instead: sudo apt install -y pipx && pipx ensurepath && pipx install omicau (then restart the shell). Or use a virtual environment. apt install python3-omicau does not exist — omicau ships via PyPI/conda, not apt.
ℹ Linux torch sizeOn Linux, pip/pipx pull PyTorch's default CUDA build (~2.5 GB) — slow and unnecessary on a CPU-only box (e.g. WSL). For a small CPU-only install (~200 MB), install torch from the CPU index first, then omicau reuses it: pip install torch --index-url https://download.pytorch.org/whl/cpu then pip install omicau. conda gets the CPU build automatically via environment.yml.

conda / mamba

ℹ Handles PyTorch for youconda installs the scientific stack (including CPU PyTorch) as prebuilt binaries — no compiler step, no CUDA download. Once the conda-forge feedstock lands, conda install -c conda-forge omicau will work directly.
git clone https://github.com/tunabirgun/omicau.git && cd omicau
conda env create -f environment.yml     # or: mamba env create -f environment.yml
conda activate omicau

From source development

git clone https://github.com/tunabirgun/omicau.git && cd omicau
pip install ".[all,dev]"

Optional extras — combine freely: omicau[x] from PyPI, .[x] from a checkout, or (on a pipx install) pipx inject omicau <deps>: [llm] (AI verdict: Claude / ChatGPT / Gemini / local), [data] (remote data hubs), [ui] (no-code web UI), [cptac] (CPTAC hub; needs a build toolchain), [all] (every cross-platform feature), [dev] (tests). omicau's error messages print the exact install command for your environment.

Core dependencies: numpy, pandas, scipy, scikit-learn, torch, plotly, click, jinja2, tqdm. Releases are automatic: bumping the version in pyproject.toml and merging to main publishes to PyPI via OIDC (no stored token), and conda-forge auto-follows PyPI.

Quick start

ℹ In plain termsFour commands take you from a built-in synthetic dataset to a verified dashboard. Nothing leaves your machine.
omicau check-env                                 # CPU/GPU + dependency status
omicau bootstrap --dataset mock --out-dir demo   # write a synthetic dataset + config
omicau run --config demo/config.json --cores 8   # full audit -> demo/run/report.html
omicau verify --config demo/config.json          # recompute the provenance hash

Open demo/run/report.html for the dashboard. demo/run/audit.json is the full machine-readable state; model_metrics.csv, modality_ledger.csv, and missingness_tests.csv are flat exports; MODEL_CARD.md is a research-use-only model card.

The mock dataset is offline and the recommended starting template — it writes a runnable config.json and example CSVs with deliberately redundant, batch-confounded, and pure-noise layers, so the diagnostics have something to flag. Add --task regression for a regression mock.

Bring your own data

ℹ In plain termsEvery omic layer is one table: sample identifiers in the header row and first column, numbers in the body, blanks (or NA) for missing. You do not need to normalize, scale, or impute first — omicau aligns the files and does all scaling inside cross-validation so nothing leaks.

Provide one file per modality, one clinical table, and a small config that names them (paths resolve relative to the config). Ingestion is forgiving: delimiter and orientation are auto-detected (samples × features or features × samples), sample names are fuzzily matched across files, and common NA tokens, European decimals, and ±inf are healed. Missing values stay masked — never imputed at ingest.

Omics layerValue typeFeature idNote
RNA-seq / expressionlog2 TPM/FPKM/CPM (prefer log)gene / Ensembl / Entrezlog-transform heavy-tailed counts first
Proteomicsnormalized abundance (log2)UniProt / genemissing is MNAR-informative; do not impute
DNA methylationbeta [0,1] or M-valuesprobe (cg…) / geneone convention per matrix
Metabolomicspeak area / concentration (often log)RefMet / HMDB / namebelow-detection stays blank
Copy numberlog2 ratio or GISTIC −2…2geneone convention per matrix
miRNAlog-normalized expressionmiRBase (hsa-miR-…)same shape as RNA-seq
Somatic mutationbinary 0/1 or countgenenear-constant columns dropped

The clinical table is one row per sample: a sample-id column, the target, and optional group (e.g. patient id, for leakage-safe splitting) and batch columns. A single modality is allowed — cross-modality comparisons are simply skipped. The feature-id examples above are human, but any organism's identifiers work unchanged — see Model & non-model organisms.

{
  "run_name": "my_study", "output_dir": "run",
  "modalities": [
    {"name": "rna",     "path": "rna.csv"},
    {"name": "protein", "path": "protein.csv"}
  ],
  "clinical": {"path": "clinical.csv", "target": "outcome",
               "sample_id": "sample_id", "group": "patient_id",
               "batch": "batch", "task": "auto"},
  "cv": {"n_splits": 5, "seed": 42, "n_bootstrap": 1000}
}

Model & non-model organisms

ℹ In plain termsomicau makes no assumptions about biology. It reads your tables as numbers with row and column labels — it never looks up a gene, a probe, or a species. Mouse, zebrafish, yeast, Arabidopsis, a crop, livestock, or a non-model organism with no reference at all: if you can write a samples × features matrix and a column saying what each sample is, omicau runs on it unchanged.

Feature IDs are yours to name

Feature identifiers are treated as opaque strings — Zm00001d027230, FBgn0000490, AT1G01010, an OTU id, a peak m/z, or a de-novo transcript name all work identically to a human gene symbol. Nothing is mapped, matched to a reference, or validated against a species. Only sample names are matched across your files (to line the tables up); feature names are carried through verbatim.

Sample-name normalization is off by default

ℹ Your ids are kept verbatimBy default omicau does not alter your sample names beyond trimming stray whitespace — case is preserved and no suffix is stripped, so ids like WT_rep3, Mouse-12, KO-3, Col0-rep1, Sample-01A, or at1g01010 all pass through unchanged and match across your files exactly as written.
⚠ Human TCGA barcodesIf your samples are raw TCGA aliquot barcodes and you want several aliquots of one patient collapsed to that patient (e.g. TCGA-AB-2802-03A-...TCGA-AB-2802), opt into the TCGA preset — it uppercases and trims the aliquot suffix:
"normalization": {"preset": "tcga"}
The tcga data hub sets this automatically; you only need it for hand-built configs on raw barcodes.

Grouping and batch: the pseudoreplication guard

The most important columns for animal and plant work are group and batch in the clinical table. They stop the same thing that patient-id grouping stops in a clinical cohort: samples that aren't independent leaking optimistic scores.

  • group — the unit that must never be split across training and testing. Set it to whatever your replicates share: the animal id when you have several tissues or timepoints per animal, or the litter / cage / plant / plot when that is the unit you actually randomized. omicau keeps every sample from one group entirely in train or entirely in test.
  • batch — the nuisance structure to watch for: sequencing run, extraction day, plate, growth chamber. omicau flags a data type only when its variance tracks the batch and the batch tracks the outcome.

Cage can be either: use it as group if you treated whole cages, as batch if cages are just where animals were housed.

Settinggroup =batch =Typical target
Mouse, tissues per animalanimal idsequencing rungenotype / treatment
Mouse, cage-randomizedcage / litterprocessing daydiet / exposure
Zebrafish clutchclutchplate / runmorphant vs. control
Yeast strainscolony / independent culturegrowth batchcondition / phenotype
Arabidopsisplant / accessiongrowth chamberecotype / stress
Crop field trialplotfield block / harvest dayyield class / line
Livestockanimal idfarm / batchbreed / trait

A minimal mouse config differs from the human one only in the column names it points at:

{
  "run_name": "mouse_liver", "output_dir": "run",
  "organism": "Mus musculus",
  "modalities": [
    {"name": "rna",     "path": "rna.csv"},
    {"name": "protein", "path": "protein.csv"}
  ],
  "clinical": {"path": "clinical.csv", "target": "genotype",
               "sample_id": "sample", "group": "animal_id",
               "batch": "seq_run", "task": "classification"},
  "cv": {"n_splits": 5, "seed": 42, "n_bootstrap": 1000}
}
✓ Small-n honestyAnimal and plant studies are often small. omicau resamples whole groups to build its confidence intervals and its default cross-validation needs at least five groups, so with only a handful of animals the intervals come out wide and the audit will honestly certify little. That is the correct answer for a small cohort, not a limitation to work around — read the confidence interval, not the point score, and treat a wide one as "not yet enough data."

To try a real non-human dataset in one command, use the cross-organism data hub: omicau bootstrap --dataset expression_atlas --out-dir d (defaults to a mouse experiment from EMBL-EBI Expression Atlas).

The optional no-code UI

omicau is a CLI tool first. For non-coders there is an opt-in local web UI — a wizard to upload files, map columns, and run the audit without a config file:

pip install ".[ui]"
omicau ui        # opens a browser wizard on 127.0.0.1

It binds 127.0.0.1 behind a one-time token, opens a browser, and walks through: drop files → confirm the auto-guessed omic role and orientation → map the clinical columns (each dropdown shows its live consequence, e.g. class balance or the leakage implication of the grouping) → check cross-file alignment → run the identical pipeline → read the report in-page.

✓ On deviceAll data stays on the machine — nothing is uploaded. The UI only builds the config and shows the result; it never re-implements the science, so the CLI and UI always agree.
omicau UI — clinical column mapping with live consequences
Figure 2 — the wizard's clinical-mapping step: each column choice shows its live consequence (class balance, the leakage meaning of the patient group).

AI plain-language verdict optional

omicau always writes a deterministic, rule-based summary of the audit. On top of that you can ask an AI model to turn the numbers into a short plain-English verdict — naming the best fusion model, whether combining layers helped, which layers to trust, and what to do next. This is optional and additive: skip it and nothing changes; the built-in summary and every figure are still produced.

✓ Only summary statistics leave the machineThe model receives the audit's numeric diagnostics (scores, confidence intervals, batch/missingness flags) — never your raw matrices, sample IDs, or clinical values. Choose a local model and even those summary numbers stay on your computer. Your API key is held in memory for the single run only: it is never written to the config, the report, the provenance hash, any log, or disk, and it is scrubbed from any error message.

Pick a provider

The same audit; you choose who writes the prose. Cloud models need an API key you paste once; a local model needs nothing but the server address.

ChoiceProviderDefault modelGet a key
ClaudeAnthropicclaude-sonnet-5console.anthropic.com → API Keys
ChatGPTOpenAIgpt-5.5platform.openai.com → API keys
GeminiGooglegemini-3.5-flashaistudio.google.com → Get API key
LocalOllama / LM Studio / vLLMyour choice (e.g. llama3.1)none — runs offline

The model id is a free-text field prefilled with a sensible default — paste any model your account or local server supports.

In the no-code UI

On the Options step, tick “Add an AI plain-English verdict”, pick a service, and either paste your key (cloud) or confirm the server address (local). Run the audit as usual; the verdict appears in the report next to the rule-based summary.

Easiest path: a local model, no key, fully offline

ℹ For non-codersYou do not need an account or a credit card. Install one small app, download one model, and omicau will write the verdict on your own machine — nothing leaves your computer.
  1. Install Ollama (Windows / macOS / Linux) and open it.
  2. In a terminal, download a model once: ollama pull llama3.1
  3. In omicau's Options step, choose “Local model on this computer”. The server address http://localhost:11434/v1 is prefilled. Leave the model as llama3.1 (or whatever you pulled).
  4. Run the audit. The verdict is generated locally.

From the CLI / config

The UI and CLI produce identical results. In config.json, add an llm block; the key is read from a named environment variable (never stored in the file):

"llm": {
  "enabled": true,
  "provider": "anthropic",              // anthropic | openai | gemini | local
  "model": "claude-sonnet-5",
  "api_key_env": "ANTHROPIC_API_KEY",   // env-var NAME — never the key itself
  "base_url": null                       // set for local, e.g. http://localhost:11434/v1
}
export ANTHROPIC_API_KEY=sk-...      # cloud providers read the named env var
omicau run --config config.json      # local models need no key
pip install ".[llm]"                  # installs the anthropic + openai SDKs
ℹ Graceful fallbackIf the provider SDK is not installed, the key is missing, or the model refuses or errors, omicau silently falls back to its deterministic rule-based summary — the audit never fails because of the optional verdict.

Reading the report

The dashboard has two tabs, both driven by the same audit.json. Executive summary answers the three questions in plain language and states a verdict and a trust checklist — read this first. Research detail holds the numbers behind those answers.

The answer strip

Three questions, one answer each: Does combining layers help? · Is the data trustworthy? · What should you do next? Under it, the clinical verdict is one plain paragraph naming the best fusion model, its headline score, whether fusion beat the best single layer, which layers carry independent signal, and which to treat with caution.

The run report card

A short pass / caution / fail checklist telling you how far to trust the run itself, before you trust any score in it:

  • ✓ pass Control baselines at chance — a shuffled target is not predictable, so no target/pipeline leakage.
  • ✓ pass Samples keyed to independent subjects — a group id keeps each subject's samples wholly in train or test, so repeated samples can't leak; a caution here means no group column was set.
  • △ caution Batch confounding / missingness — a layer whose batch is confounded with the outcome, or missingness linked to the outcome.
  • ▲ fail Leakage flagged — a control beat chance; investigate the splits before trusting any score.
omicau research-detail dashboard with confidence intervals and calibration
Figure 3 — research detail: cross-modal performance with 95% CI error bars, probability calibration, subgroup performance, redundancy, and feature attribution.

Is my result trustworthy?

Read the result only as far as these allow:

CheckTrust whenDiscount when
Control baselinesall near chance (no target/pipeline leakage)a control is significantly above chance
Groupingsamples keyed to independent subjects (group id set)no group column, but repeated samples per subject exist
Confidence intervalthe 95% CI is narrow and clears chancethe CI is wide or overlaps chance
Calibrationthe reliability curve tracks the diagonallarge Brier/ECE — probabilities ≠ risks
Batch confoundingno layer flagged batch-confoundeda layer is confounded with the outcome
Subgroupsthe per-site gap's 95% CI reaches a negligible differencethe gap CI excludes a negligible difference
⚠ Not a diagnosisA good score is evidence that the data carries predictive signal for the endpoint under cross-validation — not that any individual can be classified, and never a clinical decision.

How it works

ℹ In plain termsomicau tries three ways of combining your data types — glue the columns together, let a neural network blend them, or train a small model on each type and combine the answers — and reports which one your dataset actually prefers. Every scaling and feature-picking step happens inside the training data only, so the test scores can't be secretly inflated. It also asks, for each data type, "how much does this one add once we already have the others?" and "do any two mostly repeat each other?"

The whole pipeline is designed to not fool you. Preprocessing (median-impute → variance-filter → standardize → feature selection) is fitted inside each training fold only; cross-validation is group-aware (multiple samples from one patient never split across train and test).

Fusion across the integration axis

omicau benchmarks three integration regimes so you can see which a dataset wants:

  • Early — feature concatenation, per estimator (logistic/ridge, random forest, gradient boosting).
  • Intermediate — a masked global-pooling neural network that ignores missing features per sample (no artificial variance injected).
  • Late — stacking: a meta-learner cross-validated over the single-modality out-of-fold predictions (leakage-safe by construction).

Each layer's marginal gain — how much it adds beyond the others — is tested with the Nadeau–Bengio corrected resampled t-test (k-fold train sets overlap, so a naive paired t-test has inflated Type-I error). A layer is only badged predictive (adds signal) when that gain clears both an effect-size floor and the significance test — a positive but non-significant gain reads "not additive", so a noisy gain is never shown as an established contribution. Cross-layer redundancy is the linear CKA; a layer highly aligned with a stronger one is flagged redundant.

Validation

ℹ In plain termsomicau was re-run end-to-end on eight public datasets — human tumours, cell lines, mouse, zebrafish, yeast, and a plant — covering classification, regression, and survival, and every score was checked against the published finding. The point isn't just the headline number; it's that the honesty machinery (shuffled controls, confidence intervals, the leakage gate) behaves correctly on real data.
OrganismTarget · layersnMetricScore95% CILeakage gate
Human (BRCA)PAM50 subtype · RNA+CNV493AUROC0.9530.94–0.96clean
Human (BRCA)PAM50 subtype · RNA956AUROC0.9880.98–0.99clean
Human (BRCA)Overall survival · RNA+CNV499C-index0.6560.55–0.76clean
Cell linesSOX10 dependency · expression11030.7230.66–0.77clean
MouseDlx3-KO genotype · RNA12AUROC0.7780.46–1.00clean (wide CI)
ZebrafishIL-KO genotype · RNA20AUROC1.000flagged (n≪p)
YeastNaCl osmostress · RNA15AUROC1.000clean
ArabidopsisBotrytis infection · RNA12AUROC1.000flagged (n≪p)

Each score matches the literature — PAM50 subtypes are transcriptionally defined (Parker 2009; TCGA 2012), expression predicts SOX10 dependency in melanoma lineage (DepMap), the Dlx3 knockout is a moderate signature so 0.778 with a wide CI at n=12 is the honest read (Duverger 2014), and the yeast osmostress and Arabidopsis defense programs are large real responses (Babazadeh 2017; Liu 2015). Where n ≪ features (zebrafish, Arabidopsis), a perfect AUROC is a small-sample artifact: the shuffled-target control also beats chance, so omicau flags leakage and refuses to certify the score rather than reporting a misleading 1.000. That refusal — not the headline number — is the point of the tool.

Uncertainty & calibration

ℹ In plain termsA single score is never the whole story. The confidence interval is the range the score would plausibly fall in on new samples — a narrow band that clears chance means a solid result; a wide band overlapping chance means "not proven." Calibration asks whether a predicted 70% risk really happens about 70% of the time. Feature attribution ranks which inputs mattered most, but it is a hint, not proof of cause — correlated inputs can trade places in the ranking.
  • Confidence intervals — every model's primary metric carries a group-level bootstrap 95% CI (resampling whole patient groups). The per-fold spread is shown only as "fold dispersion," since correlated folds bias it low — often several-fold narrower than the true CI.
  • Calibration (binary classification) — a reliability curve, Brier score, and ECE, flagging that class_weight="balanced" miscalibrates probabilities by construction.
  • Feature attribution — leakage-safe permutation importance on held-out folds, reported as mean ±SD across folds. It is unconditional and biased under feature collinearity (Hooker 2021; Strobl 2008), so the ranking is indicative, not causal.

Data hygiene & generalization

ℹ In plain termsThese checks look for ways the data could fool a model. A batch effect is a technical signature of when or where samples were run that a model can mistake for real biology — only flagged when it also tracks the outcome. Missingness bias is when which values are missing is itself a clue to the outcome, faking a signal. The control baselines are the same models trained on scrambled labels: they should score no better than a coin-flip, and an alarm fires if they don't. Subgroups checks the score isn't propped up by one site while failing another.
  • Missingness bias — Kruskal-Wallis / Spearman / chi-square tests (BH-corrected) for missingness associated with the outcome (possible MNAR).
  • Batch & confounding — PCA silhouette + ANOVA η² for batch structure, plus a chi-square/Cramér's V (categorical) or ANOVA/η² (continuous) test for batch–outcome confounding. A layer is called batch-confounded only when its variance is batch-structured and batch is confounded with the outcome (an orthogonal batch effect is harmless).
  • Control baselines — shuffled-target / shuffled-feature / random-noise runs; the leakage alarm fires when a control's CI lower bound clears chance. These catch target/pipeline leakage; group leakage from a mis-set group column is surfaced separately as a grouping-status check.
  • Per-site / subgroup performance — the best model re-scored within each site/subgroup, with the max-minus-min gap and each stratum reported with a bootstrap 95% CI (strata below n=20 shown but not scored), so a disparity is only called out when its interval excludes a negligible difference.
  • Cross-site stress test (opt-in) — folds blocked on batch (leave-one-batch-out) for an honest new-batch estimate + optimism gap.

Reproducibility & provenance

✓ Reproducible by designEvery stochastic step is seeded; a value-level SHA-256 hash of the aligned matrices, sample index, and target is written to audit.json and re-checkable with omicau verify (exit 1 on any drift). audit.json also stamps the versions of the packages that drive the numbers — numpy, scikit-learn, scipy, pandas, plotly, jinja2, torch — so a result ties to the exact stack. A DOME methods block and a MODEL_CARD.md are emitted for governance.
omicau verify --config config.json --expected <hash>   # exit 1 on mismatch
omicau verify --config config.json --audit run/audit.json

Data hubs

Optional clients pull public cohorts (verified live). The primary workflow remains your own data.

ℹ Finding a valid identifierBrowse the source, copy an id, pass it to bootstrap. Expression Atlas (any organism): the E-… accession at ebi.ac.uk/gxa/experiments, with --target set to one of its listed experimental factors. TCGA: a study id at cbioportal.org/datasets. Metabolomics Workbench: a ST0000xx id. CCLE: any gene symbol. Pick a target with at least two well-populated groups; omit --target for a sensible default.
ClientSourceModalities → target
tcgacBioPortal (no auth)mRNA + copy-number + clinical
ccleDepMap 24Q4 (figshare)expression → CRISPR dependency
xenaUCSC Xenamulti-omics + phenotype
openpbtapublic S3fusion matrix + histologies
metabolomicsMetabolomics Workbenchmetabolites + study factors
omicau bootstrap --dataset xena --out-dir d --preset brca --target PAM50Call_RNAseq

CLI & configuration

CommandPurpose
omicau check-envreport CPU/GPU + dependency status
omicau bootstrap --dataset … --out-dir …assemble a dataset + runnable config
omicau run --config … [--cores N] [--deterministic]run the full audit → dashboard + assets
omicau verify --config … [--expected H] [--audit …]recompute / check the provenance hash
omicau uilaunch the optional local web UI

Key config knobs: cv.n_splits, cv.n_bootstrap, cv.batch_blocked, compute.deterministic, neural.enabled, llm.enabled. Configs may be JSON or TOML; YAML additionally needs pip install omicau[yaml].

Research use only

⚠ Not a diagnostic deviceomicau audits data for predictive signal and data hygiene. It is not a diagnostic device: it does not diagnose disease, recommend treatment, or assess an individual patient's risk. Use its output to judge data quality and the value of each omic layer for research — not for clinical decisions.

omicau · github.com/tunabirgun/omicau · part of the Build with Claude: Life Sciences hackathon (Anthropic × Gladstone Institutes).