Skip to content

Experiment to run, via the ENA portal

Route id: experiment->run:ena_filereport Provider: EBI ENA portal Direction: SRX/ERX/DRX → SRR/ERR/DRR

curl -s 'https://www.ebi.ac.uk/ena/portal/api/filereport?accession=SRX20810434&result=read_run&fields=run_accession&format=tsv&limit=0'

The second tier of the GEO path. GEO's SOFT file names experiments (SRX), taken from the submitter's record; it never names a run. This route asks ENA which runs each of those experiments holds. result=read_run rows are runs, so an answer here proves the data exists (proves_data_exists). That property is why the route matters. The empty answers are not noise; they are the measurement: some experiments GEO names carry no runs at all.

Measured

Corpus: sample:3000@results-of:gse->experiment:soft_family@reprocessed-gse, a seeded draw of 3,000 of the 308,639 experiments the GSE to experiment soft_family census returned. Surveyed: 2026-10-19.

Resolved 2,963
Empty 37 (1.23%)
Failed 0
Unique runs 4,811

Why this replaced an earlier survey

Until 2026-10-19 this route cited a 2026-09-15 run made with --limit 3000. --limit records its verdicts under the full corpus name, so that evidence read as a census of 308,639 experiments when it covered 3,000 of them: the first 3,000 in the survey's seeded visit order. That was a fair random sample, but its name did not say so, and a second run with a different limit would have recorded itself under the same name and looked comparable. survey run --limit now writes to a throwaway cache for exactly this reason. The old export stays under data/surveys/results-of_gse-to-experiment_soft_family@reprocessed-gse/ and is cited by nothing.

The two draws share no accession, and that is not a coincidence. sample_of and the runner's shuffle use the same seed, and random.sample picks first the elements that shuffle moves to the end, so a seeded sample and a shuffle prefix are disjoint by construction. Each is still a uniform draw. The re-survey is therefore an independent replicate, and it found the same empty count, 37 of 3,000.

Unique runs differ (6,580 against 4,811) because runs per experiment are heavy-tailed: a few experiments with dozens of lane runs move the total a lot. Read run yield from the BioProject to run census, not from here.