Skip to content

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.