RNA-seq 表达量工作流 (rnaseq_expression)¶
插件:
rnaseq_expression状态: 活跃 (2026-06-18)
工作流¶
FASTQ
→ fastp (QC)
→ STAR / HISAT2 (比对)
→ featureCounts (定量)
→ DESeq2 (差异表达)
→ 离线基因符号注释 + GO/Reactome ORA/GSEA(GSEApy,可选)
→ 报告 + 图表
工具链¶
阶段 |
默认工具 |
替代方案 |
类别 |
|---|---|---|---|
QC |
fastp |
FastQC, MultiQC |
qc |
比对 |
STAR |
HISAT2 |
alignment |
定量 |
featureCounts |
Salmon, Kallisto |
expression |
差异表达 |
DESeq2 |
edgeR |
differential_expression |
富集分析 |
ABI 离线富集 + GSEApy |
— |
enrichment |
标准表格¶
表格 |
内容 |
必需 |
|---|---|---|
|
Reads QC 指标 (总 reads, Q30, GC) |
是 |
|
比对率, 唯一/多重比对 reads |
是 |
|
每个基因的原始计数 |
是 |
|
DESeq2 中位数比率归一化计数 |
是 |
|
每个基因的 log2FC, p-value, padj |
是 |
|
带 GTF |
否 |
|
含 overlap gene symbols 的完整 ORA 结果 |
否 |
|
含 leading-edge gene symbols 的完整 preranked GSEA 结果 |
否 |
图表¶
图表 |
文件 |
必需 |
|---|---|---|
QC reads 计数 |
|
是 |
比对率 |
|
是 |
PCA 表达量 |
|
是 |
火山图 |
|
是 |
MA 图 |
|
否 |
Top DEG 热图 |
|
否 |
GO/Reactome ORA + GSEA |
四组 SciPlot PDF/SVG/PNG 图 |
否 |
快速开始¶
# 计划
abi plan --type rnaseq_expression \
--config data/examples/rnaseq_expression/config.yaml \
--outdir results/rnaseq_example
# 干运行
abi dry-run --type rnaseq_expression \
--config data/examples/rnaseq_expression/config.yaml \
--outdir results/rnaseq_example
# 真实执行 (需要 STAR 索引 + GTF 注释)
abi run --type rnaseq_expression \
--config data/examples/rnaseq_expression/config.yaml \
--outdir results/rnaseq_example \
--confirm-execution
# 报告
abi report --type rnaseq_expression \
--result-dir results/rnaseq_example
配置¶
最小配置¶
project_name: "rnaseq_expression_run"
mode: dry_run
threads: 4
outdir: results/rnaseq_expression
input:
sample_sheet: sample_sheet.tsv
alignment:
tool: star
resources:
genome_index: /path/to/star_index
annotation_gtf: /path/to/Homo_sapiens.GRCh37.75.gtf
go_obo: /path/to/go-basic.obo
go_gaf: /path/to/goa_human.gaf.gz
reactome_gmt: /path/to/ReactomePathways.gmt
enrichment:
enabled: true
annotation_release: GRCh37.75
rank_column: stat
permutations: 1000
gsea_fdr: 0.25
seed: 20260727
differential_expression:
comparison: "treatment_vs_control"
alpha: 0.05
enrichment.gsea_fdr 必须位于 (0, 1]。它只筛选 SciPlot 的 GSEA 预览图;
完整 GO 与 Reactome GSEA 表不会截断。
样本表格式¶
sample_id group condition platform read1 read2
sample1 treatment treated rna_seq raw/s1_R1.fastq.gz raw/s1_R2.fastq.gz
sample2 treatment treated rna_seq raw/s2_R1.fastq.gz raw/s2_R2.fastq.gz
sample3 control untreated rna_seq raw/s3_R1.fastq.gz raw/s3_R2.fastq.gz
sample4 control untreated rna_seq raw/s4_R1.fastq.gz raw/s4_R2.fastq.gz
必需列: sample_id, read1, read2。可选: group, condition, platform。
资源需求¶
真实执行需要:
STAR 基因组索引 — 通过
STAR --runMode genomeGenerate构建。GTF 注释 — GENCODE、Ensembl 或 RefSeq 格式。
R + DESeq2 —
BiocManager::install("DESeq2")。可选富集资源 — 本地 GO OBO、人类 GOA GAF 和 Reactome GMT 快照。
可选富集运行时 — 锁定的
rnaseq环境包含 GSEApy 1.3.0;该阶段不访问网络。
所有资源在真实运行后出现在 provenance/resource_manifest.json 中。
已知局限性¶
详见 plugins/rnaseq_expression/limitations.yaml。要点:
RNA-seq 测量的是转录本丰度,而非蛋白质水平。
比对率取决于参考基因组的完整性。
DESeq2 假设大多数基因不差异表达。
低表达基因具有膨胀的 FDR。
参考基因组/注释版本会影响结果。
架构说明¶
此插件是内联实现(没有 _engine/ 子包),遵循与
metatranscriptomics 相同的模式。解析函数存在于插件模块
本身,而非单独的 parsers.py 文件中。
插件生命周期¶
load_config() → build_plan() → run (ExternalExecutor)
→ parse_outputs() (按步骤) → write_report()
解析器分发¶
parse_outputs(tool_id, output_dir, sample_id) 分发:
fastp→_parse_fastp()→qc_summarystar→_parse_star()→alignment_summaryfeaturecounts→_parse_featurecounts()→gene_expressiondeseq2→_parse_deseq2()+_parse_deseq2_normalized()→differential_expression+normalized_expressionrnaseq_enrichment→ 基因符号注释 + 四张完整富集表 + 四张 top-N SciPlot 输入表