TCASIA completeness audit (2026-08-21)
Upstream: OncoHarmony-Network/TCASIA_pipeline @ 06564ff1 · Port:
oxo-flow-tcasia (live-verified).
Two-stage chained Snakemake pipeline: 01_alignment (fastp → STAR 2-pass → sort/index → featureCounts) + 02_as_calling (4 AS callers, all always-on per sample: MAJIQ+Voila, rMATS (--statoff, per-sample PSI only), SUPPA2+Salmon, SplAdder). Plus 2 standalone scripts (validate_config, read_length helper) and a test suite.
Mode matrix (upstream)
| entry | notes |
|---|---|
| workflows/01_alignment/Snakefile | 5 rules + rule all; strandness-agnostic |
| workflows/02_as_calling/Snakefile | 10 rules; all 4 callers unconditional (no caller-selection switch at this commit) |
| scripts/validate_config.py | standalone config gate (--check-files) |
| scripts/read_length.sh | helper feeding read_len |
| tests/run_tests.sh | CI: unit tests + lint + dry-run |
Not supported upstream (verified): single-end, case/control contrast, caller toggling, cluster profiles.
Gap tiers vs the port
P0: nothing missing at the analysis level IF the port carries all 4 AS callers + the alignment stage (per the two-stage porting note in the catalog — verify the port's 17-rule scope covers majiq_build/psi/voila, rmats_run, salmon_quant+suppa chain, spladder_run). Standalone helpers (validate_config --check-files, read_length.sh) = P2 (tooling, absorb or document).
P1: MAJIQ academic license — mandatory config key, passed as --license to all four majiq/voila rules; the key is REQUIRED even to run the other three callers (upstream design quirk). Document: license-free users can run rMATS/SUPPA2/SplAdder only by providing a placeholder — the port must keep the key optional-with-warning or mirror upstream exactly (fidelity decision).
P2: strandness 3-way mapping (rMATS libType verbatim, Salmon ISR/ISF/IU, MAJIQ reverse/forward/none), rmats.extra passthrough, per-tool tunables (fastp/STAR/cstat/minreads/min_tpm/spladder args), threads.
Gates: user-supplied references only (no auto-download) — STAR index, GENCODE v34 GTF/GFF3, SUPPA2 IOE, Salmon index must match one annotation release.
Verdict
The smallest upstream of the batch — two chained workflows, all four AS callers always-on. Main audit question is scope completeness against the 4-caller matrix + the MAJIQ license handling decision.
Re-verification (2026-08-23, 9-mini queue 6/9)
Engine: latest main (post-v0.14.1) · Box: bioinfo-wsx · Mode: real CLI
run, not dry-run · -j 4 --keep-going.
24 succeeded, 10 skipped, 0 failed — real execution. Coverage chain: fastp → STAR alignment → rmats_run (3.0s) → spladder_run (339.5s) → MAJIQ/voila → AS result stats. All 10 skips are condition gates + voila_tsv gating.