从BAM到可视化:用rMATS+rmats2sashimiplot完成可变剪切分析全流程

张开发
2026/4/12 22:38:07 15 分钟阅读

分享文章

从BAM到可视化:用rMATS+rmats2sashimiplot完成可变剪切分析全流程
从BAM到可视化用rMATSrmats2sashimiplot完成可变剪切分析全流程RNA测序技术让我们能够以前所未有的分辨率观察转录组的复杂性。在众多转录后调控机制中可变剪切Alternative Splicing是最富变化的一种——它能让单个基因产生多个功能各异的蛋白质异构体。对于从事癌症、神经退行性疾病等研究的科研人员来说准确识别和可视化差异剪切事件是发表高质量论文的关键步骤。rMATS作为目前最强大的差异剪切分析工具之一配合rmats2sashimiplot可视化组件构成了从原始数据到发表级图形的完整解决方案。本文将手把手带你走通这个流程特别针对实际科研场景中的痛点问题如GFF3文件转换、分组文件编写、RPKM值解读等提供实战解决方案。1. 环境配置与数据准备1.1 系统需求与依赖安装rMATS对计算资源有较高要求建议在至少16GB内存的Linux服务器上运行。以下是使用conda快速搭建环境的方案conda create -n rmats python3.6.12 conda install -c bioconda rmats4.1.2 conda install -c conda-forge gsl对于可视化组件rmats2sashimiplot需要额外配置conda install -c bioconda rmats2sashimiplot conda install -c conda-forge matplotlib3.3.4注意matplotlib 3.4版本可能导致某些绘图异常推荐锁定3.3.4版本1.2 输入文件规范rMATS支持两种输入模式BAM模式适用于已完成比对的数据FASTQ模式需要配合STAR索引进行实时比对对于大多数已有关联组学数据的用户推荐使用BAM模式。需要准备样本分组文件如group1.txt, group2.txt参考基因组GTF文件比对后的BAM文件及其索引典型分组文件格式示例/path/to/control_rep1.bam,/path/to/control_rep2.bam /path/to/treatment_rep1.bam,/path/to/treatment_rep2.bam2. rMATS核心分析流程2.1 基础运行命令使用BAM输入的基本命令结构python rmats.py \ --b1 control_group.txt \ --b2 treatment_group.txt \ --gtf ref_annotation.gtf \ --od output_dir \ --tmp temp_dir \ -t paired \ --readLength 150 \ --nthread 8关键参数说明参数说明推荐值--readLength测序读长根据实验设置--nthread线程数不超过可用CPU核心数--cstat差异剪切阈值0.0001默认--libType链特异性fr-firststrand/fr-secondstrand2.2 结果文件解读rMATS会生成多种AS事件类型的统计文件以SE外显子跳跃为例SE.MATS.JC.txt SE.MATS.JCEC.txt JC.raw.input.SE.txt重要数据列说明IncLevel1/IncLevel2包含率Inclusion Level即包含该外显子的转录本比例IncLevelDifference两组包含率差异PValue/FDR统计显著性提示JC文件仅考虑跨越剪接位点的readsJCEC同时考虑外显体区域reads通常后者灵敏度更高3. 可视化实战技巧3.1 GTF转GFF3的注意事项rmats2sashimiplot需要GFF3格式的注释文件转换时需保留基因结构信息gffread input.gtf -o output.gff3 --keep-genes常见问题处理若出现染色体命名不一致错误添加--keep-attr gene_id选项对于NCBI基因组可能需要先运行sed -i s/^chr// input.gtf去除chr前缀3.2 基础可视化命令针对SE事件的典型绘图命令rmats2sashimiplot \ --b1 control_rep1.bam,control_rep2.bam \ --b2 treatment_rep1.bam,treatment_rep2.bam \ -t SE -e SE.MATS.JC.txt \ --l1 Control --l2 Treatment \ --exon_s 1 --intron_s 5 \ -o sashimi_plots关键参数优化建议--intron_s设置5-10可压缩长内含子显示--min-counts过滤低丰度剪接位点建议≥5--color自定义颜色如#1f77b4,#ff7f0e3.3 高级分组可视化对于复杂实验设计可通过分组文件实现多条件对比。创建grouping.gfControl:1,2 Treatment:3,4相应命令添加--group-info grouping.gf \ --color #1f77b4,#ff7f0e4. 发表级图表优化4.1 RPKM标准化问题rmats2sashimiplot默认使用RPKM标准化可能不适合所有研究。替代方案TPM转换import numpy as np def rpkm_to_tpm(rpkm): return rpkm / np.sum(rpkm) * 1e6使用DESeq2标准化library(DESeq2) dds - DESeqDataSetFromMatrix(countData, colData, design~group) vsd - vst(dds, blindFALSE)4.2 多图排版技巧使用pdfunite合并多个事件的可视化结果pdfunite plot1.pdf plot2.pdf combined.pdf对于期刊投稿建议使用Inkscape调整字体一致性导出600dpi TIFF格式保留矢量图源文件备查4.3 结果整合报告自动化生成分析报告模板from jinja2 import Template report_temp # 差异剪切分析报告 ## 事件统计 - 总AS事件: {{ total_events }} - 显著事件(FDR0.05): {{ sig_events }} ## 顶级事件 {% for event in top_events %} - {{ event.gene }} ({{ event.type }}): ΔPSI{{ event.dpsi|round(2) }}, FDR{{ event.fdr|round(4) }} {% endfor %} 这套流程已成功应用于多个癌症异质性研究项目特别是在处理患者来源异种移植(PDX)模型数据时能够清晰展示治疗前后剪切模式的变化。一个实用建议是对于大型队列研究可以先使用--task prep分步处理样本最后统一进行统计检验这样既保证结果一致性又提高计算效率。

更多文章