<#2061 Add gedi/price test data: chr19+chr22 Ribo-...
# test-data
g
#2061 Add gedi/price test data: chr19+chr22 Ribo-seq cohort Pull request opened by pinin4fjords Summary Test fixture set for nf-core/modules#11693 (`gedi/price`) under
data/genomics/homo_sapiens/riboseq_expression/price/
. PRICE's Bayesian model needs a much higher candidate-ORF count than the existing chr20 fixtures provide for its expectation-maximisation to converge. This PR adds a minimised chr19+chr22 cohort that gives PRICE enough signal to call ORFs in CI. PRICE output on this fixture set: 380 ORF rows (377-line
orfs.tsv
including header and metadata). Files | File | Size | Notes | | ------------------------------------------------- | ----------------- | ------------------------------------------------------------------------------ | | Homo_sapiens.GRCh38_chr19_22.pc_exon_masked.fa.gz | 3.43 MB | chr19+chr22 primary assembly, hard-masked outside protein-coding exons | | Homo_sapiens.GRCh38.111_chr19_22.pc.gtf.gz | 1.66 MB | chr19+chr22 protein-coding-gene-only, lean attributes | | 4x bams/SRX1178088{5,6,7,8}.chr19_22.ds50.bam | 1.06-1.52 MB each | 4-sample Ribo-seq cohort, 50% downsample, filtered to protein-coding gene loci | | 4x .bai | ~90 KB each | | | README.md | < 4 KB | derivation recipe | Each file is < 4 MB. Total: 10.88 MB across 11 files (down from 19.68 MB across 14 files in an earlier revision; see force-push history). Why these sizes — empirical justification These fixtures are at the floor of what makes PRICE produce non-empty output. Every dimension was minimised iteratively against a real
gedi -e Price
invocation. Probes that didn't make it: | Variant | Result | | ------------------------------------------------------ | --------------------------------------------------------------------------- | | chr20 alone, 2-sample cohort (existing fixtures) | ~235 candidate ORFs → NoiseModel.computeMeanSpline crashes during inference | | chr20 alone, 6-sample cohort | reaches inference, produces 0 ORFs | | chr19 alone, 6-sample [@ds50](https://github.com/ds50) | 0 ORFs (PRICE estimates model but finds nothing) | | chr22 alone, 6-sample [@ds50](https://github.com/ds50) | 0 ORFs | | chr19+chr22, 3-sample [@ds50](https://github.com/ds50) | Index 0 out of bounds for length 0 in PriceOrfInference | | chr19+chr22, 2-sample [@ds50](https://github.com/ds50) | same crash | | chr19+chr22 4-sample, CDS-only FASTA mask | PRICE crashes because GTF UTRs reference N positions in the masked FASTA | | chr19+chr22 4-sample, ds30 | 0 ORFs | | chr19+chr22 4-sample, ds50 (this PR) | 380 ORFs ✓ | The empirical floor along each axis: • 2 chromosomes are needed. Neither chr19 nor chr22 alone produces ORFs at any downsample level (insufficient candidate ORFs per chromosome). • 4 samples are needed. 3-sample and 2-sample cohorts crash PRICE's noise-model inference. • Protein-coding-exon masking, not CDS-only. UTR regions in the GTF must reference real sequence (not `N`s) or PRICE crashes. • 50% downsample is the floor. 30% downsample produces 0 ORFs. Could we go smaller? Three avenues considered and rejected: 1. One chromosome with deeper coverage. Both chr19 and chr22 alone failed at any cohort/downsample tried; PRICE needs the candidate-ORF count from two chromosomes. 2. More aggressive FASTA masking (CDS-only). Crashes PRICE because UTRs in the GTF dereference to
N
positions. 3. Smaller cohort (≤3 samples). Crashes PRICE's noise model. The 3.43 MB FASTA is the largest file in the set. It's chr19+chr22 protein-coding exons of GRCh38 primary assembly with everything outside those regions hard-masked; this is the most aggressive masking PRICE tolerates while still producing ORFs. Source Original BAMs:
SRX1178088{5,6,7,8}.Aligned.sortedByCoord.out.bam
from a full-scale nf-core/riboseq
test_full
run. Same upstream sample identifiers as the existing chr20 fixtures in this branch. Test plan •
modules/nf-core/gedi/price/tests/main.nf.test
in nf-core/modules#11693 consumes these fixtures via
<http://raw.githubusercontent.com|raw.githubusercontent.com>
URLs pinned to this PR's branch; URLs to be updated to
modules
after this PR merges •
nf-core modules test --profile docker gedi/price
produces 380-ORF
orfs.tsv
with two-pass snapshot stability nf-core/test-datasets
Review on #2061 Add gedi/price test data: chr19+chr22 Ribo-seq cohort Review approved by luisas on pinin4fjords's pull request nf-core/test-datasets