转录组测序选择性剪切分析与可视化

1. 创建小环境

rMATS是常用的选择性剪切(alternative splicing)分析软件。目前最新版是rMATS 4.1.2,已经可以通过conda安装,步骤如下:

1.1 创建rmats小环境
conda create -n rmats -y
1.2 安装rMATS 4.1.2
conda install -c bioconda rmats

进入到rMATS软件目录

cd ~/miniconda3/envs/rmats/rMATS
1.3 测试rMATS
image.png

查看版本


image.png

2. 数据质控

2.1 质控软件安装

这里主要安装质控软件

conda install -y fastqc trim-galore multiqc
2.2 fastqc质控

使用fastqc对原始数据进行质量评估

# 激活conda环境
conda activate rmats

# 上传数据到自己的文件夹~/project/AS/data/rawdata
cd ~/project/AS/data

# 使用FastQC软件对单个fastq文件进行质量评估,结果输出到qc/文件夹下
# 目录改成自己的目录,否则会报错:permission deny.
qcdir=~/project/AS/data/qc
fqdir=~/project/AS/data/rawdata

# 多个数据质控
fastqc -t 20 -o $qcdir $fqdir/*.fq.gz

# 使用MultiQc整合FastQC结果
cd ~/project/AS/data/qc
multiqc *.zip

3. 数据过滤

3.1 trim_galore过滤
# 新建文件夹
cd ~/project/AS/data
mkdir -p cleandata/trim_galore

#多个样本
ls ../../rawdata/*.gz | awk -F'/' '{print$4}' | awk -F '_' '{print$1}'| uniq >sample.ID.txt

# 多个样本 vim trim_galore.sh,以下为sh的内容
# 目录改成自己的目录,否则会报错:permission deny.
rawdata=~/project/AS/data/rawdata
cleandata=~/project/AS/data/cleandata/trim_galore

cat ~/project/AS/data/cleandata/trim_galore/sample.ID.txt | while read id
do
trim_galore --phred33 -q 20 --length 36 --stringency 3 --fastqc --paired --max_n 3 -o ${cleandata} ${rawdata}/${id}_1.fq.gz ${rawdata}/${id}_2.fq.gz
done

# 提交任务到后台
nohup sh trim_galore.sh >trim_galore.log &

4. 数据比对

4.1 参考基因组
## 参考基因组准备:注意参考基因组版本信息
# 下载,Ensembl:http://asia.ensembl.org/index.html
# ftp://ftp.ensembl.org/pub/release-105/fasta/Mus_musculus/dna/

# 进入到参考基因组目录
cd ~/database/genome/Ensembl/Mus_musculus/GRCm39_release105

# 下载基因组序列
wget -c http://ftp.ensembl.org/pub/release-105/fasta/mus_musculus/dna/Mus_musculus.GRCm39.dna.primary_assembly.fa.gz

# 下载基因组注释文件
wget -c ftp://ftp.ensembl.org/pub/release-105/gtf/Mus_musculus/Mus_musculus.GRCm39.105.gtf.gz
4.2 数据比对
4.2.1 建立索引

先进入参考基因目录

cd ~/database/genome/Ensembl/Mus_musculus/GRCm39_release105/
mkdir -p index/STAR

再建立索引

STAR \
--runMode genomeGenerate \
--runThreadN 40 \
--genomeDir ~/database/genome/Ensembl/Mus_musculus/GRCm39_release105/index/STAR \
--genomeFastaFiles ~/database/genome/Ensembl/Mus_musculus/GRCm39_release105/Mus_musculus.GRCm39.dna.primary_assembly.fa \
--sjdbGTFfile ~/database/genome/Ensembl/Mus_musculus/GRCm39_release105/Mus_musculus.GRCm39.105.gtf  \
--sjdbOverhang 149 

# --sjdbOverhang 这个值为你测序read的长度减1,是在注释可变剪切序列的时候使用的最大长度值

如果从fq文件开始运行rMATS,只需要索引文件,不需要得到比对后的bam文件。

4.2.2 STAR比对
cd ~/project/AS/Mapping/STAR

ls ../../data/cleandata/trim_galore/*.gz | awk -F'/' '{print$6}' | awk -F '_' '{print$1}'| uniq >sample.ID.txt

# 多个样本 vim STAR.sh,以下为sh的内容
# 目录改成自己的目录,否则会报错:permission deny.
index=~/database/genome/Ensembl/Mus_musculus/GRCm39_release105/index/STAR
cleandata=~/project/AS/data/cleandata/trim_galore

cat ~/project/AS/Mapping/STAR/sample.ID.txt | while read id
do
STAR --runThreadN 8 --genomeDir ${index} \
--readFilesIn ${cleandata}/${id}_1_val_1.fq.gz ${cleandata}/${id}_2_val_2.fq.gz \
--readFilesCommand zcat \
--outSAMtype BAM SortedByCoordinate \
--outFileNamePrefix ./${id} \
--outBAMsortingThreadN 8
done
## STAR程序线程数不能设置太大,不然会报错。

# 提交任务到后台
nohup sh STAR.sh >STAR.log &

5. 选择性剪切分析

5.1 从fastq文件开始
5.1.1 文件准备

首先将参考基因组、索引、过滤后fq文件软链接过来。

cd ~/miniconda3/envs/rmats/rMATS/path/to


ln -s ~/database/genome/Ensembl/Mus_musculus/GRCm39_release105/Mus_musculus.GRCm39.105.gtf ./

ln -s ~/database/genome/Ensembl/Mus_musculus/GRCm39_release105/index/STAR ./

ln -s ~/project/AS/Mapping/STAR/*.fq.gz ./

然后,制作b1.txt,存放FAD组文件目录。':'连接R1和R2文件,','连接生物重复。

./path/to/FAD_1.R1.fq.gz:./path/to/FAD_1.R2.fq.gz,./path/to/FAD_2.R1.fq.gz:./path/to/FAD_2.R1.fq.gz,./path/to/FAD_5.R1.fq.gz:./path/to/FAD_5.R1.fq.gz

其次,制作b2.txt,存放WT组文件目录

./path/to/WT_1.R1.fq.gz:./path/to/WT_1.R2.fq.gz,./path/to/WT_2.R1.fq.gz:./path/to/WT_2.R1.fq.gz,./path/to/WT_5.R1.fq.gz:./path/to/WT_5.R1.fq.gz
5.1.2 rMATS运行
cd ~/miniconda3/envs/rmats/rMATS/
mkdir -p path/to/output #创建输出目录
cd ~/miniconda3/envs/rmats/rMATS/path/to/
mkdir tmp_output #创建临时文件输出目录
cd ../../ #退回到rMATS目录

python rmats.py --s1 ./path/to/s1.txt --s2 ./path/to/s2.txt --gtf ./path/to/Mus_musculus.GRCm39.105.gtf --bi ./path/to/STAR -t paired --readLength 50 --nthread 8 --od ./path/to/output --tmp ./path/to/tmp_output

运行结果都存放在~/miniconda3/envs/rmats/rMATS/path/to/output目录里面。

5.2 从bam文件开始

5.2.1 文件准备

首先将参考基因组、STAR比对后的sorted BAM文件复制过来。

cd ~/miniconda3/envs/rmats/rMATS/path/to
##把一些文件软连接过来
cp ~/database/genome/Ensembl/Mus_musculus/GRCm39_release105/Mus_musculus.GRCm39.105.gtf ./
cp ~/project/AS/Mapping/STAR/*.out.bam ./
#从BAM开始不再需要STAR索引文件

然后,制作b1.txt,存放FAD组文件目录。

./path/to/FAD1Aligned.sortedByCoord.out.bam,./path/to/FAD2Aligned.sortedByCoord.out.bam,./path/to/FAD5Aligned.sortedByCoord.out.bam

其次,制作b2.txt,存放WT组文件目录。

./path/to/WT1Aligned.sortedByCoord.out.bam,./path/to/WT2Aligned.sortedByCoord.out.bam,./path/to/WT5Aligned.sortedByCoord.out.bam
5.2.2 rMATS运行
cd ~/miniconda3/envs/rmats/rMATS/

python rmats.py --b1 ./path/to/b1.txt --b2 ./path/to/b2.txt --gtf ./path/to/Mus_musculus.GRCm39.105.gtf -t paired --readLength 150 --nthread 8 --od ./path/to/output --tmp /path/to/tmp_output
image.png

5.2.3查看结果

cd ~/miniconda3/envs/rmats/rMATS/path/to/output
ll -h

总共有如下文件:


image.png

6. 数据可视化

6.1 rmats2sashimiplot安装
#还是采用conda安装
conda activate rmats
conda install -c bioconda rmats2sashimiplot
6.2 可视化
6.2.1 所有样本可视化
cd ~/miniconda3/envs/rmats/rMATS/path/to
mkdir test_coordinate_output

##这里用的是5.2步骤中的BAM文件。5.1步骤中的BAM文件在~/miniconda3/envs/rmats/rMATS/path/to/tmp_output里面子文件夹中。

rmats2sashimiplot \
--b1 ./FAD1Aligned.sortedByCoord.out.bam,./FAD2Aligned.sortedByCoord.out.bam,./FAD5Aligned.sortedByCoord.out.bam \ #第一组所有BAM文件
--b2 ./WT1Aligned.sortedByCoord.out.bam,./WT2Aligned.sortedByCoord.out.bam,./WT5Aligned.sortedByCoord.out.bam \ #第二组所有BAM文件
-t SE -e ./output/SE.MATS.JC.txt \ #这里选择SE event来可视化
--l1 FAD --l2 WT \ #标记可视化结果中每个组样本名字前缀
-o test_coordinate_output #输出目录

#复制代码时,需要将注释信息删除

如果一开始是以fastq文件运行rMATS的话,使用以下代码

cd ~/miniconda3/envs/rmats/rMATS/path/to
mkdir test_coordinate_output

rmats2sashimiplot \
--b1 ./tmp_output/2022-03-27-23_01_45_176979_bam1_1/Aligned.sortedByCoord.out.bam,./tmp_output/2022-03-27-23_01_45_176979_bam1_2/Aligned.sortedByCoord.out.bam,./tmp_output/2022-03-27-23_01_45_176979_bam1_3/Aligned.sortedByCoord.out.bam \
--b2 ./tmp_output/2022-03-27-23_01_45_176979_bam2_1/Aligned.sortedByCoord.out.bam,./tmp_output/2022-03-27-23_01_45_176979_bam2_2/Aligned.sortedByCoord.out.bam,./tmp_output/2022-03-27-23_01_45_176979_bam2_3/Aligned.sortedByCoord.out.bam \
-t SE -e ./output/SE.MATS.JC.txt \
--l1 FAD --l2 WT \
-o test_coordinate_output

查看结果

cd ~/miniconda3/envs/rmats/rMATS/path/to/test_coordinate_output/Sashimi_plot

可视化结果如下:


image.png

6.2.2 分组显示可视化

cd ~/miniconda3/envs/rmats/rMATS/path/to
mkdir test_coordinate_output_group
#先制作个分组文件grouping.gf,内容如下
#FAD: 1-3
#WT: 4-6

rmats2sashimiplot \
--b1 ./FAD1Aligned.sortedByCoord.out.bam,./FAD2Aligned.sortedByCoord.out.bam,./FAD5Aligned.sortedByCoord.out.bam \
--b2 ./WT1Aligned.sortedByCoord.out.bam,./WT2Aligned.sortedByCoord.out.bam,./WT5Aligned.sortedByCoord.out.bam \
-t SE -e ./output/SE.MATS.JC.txt \
--l1 FAD --l2 WT \
--group-info grouping.gf \
-o test_coordinate_output_group

查看结果

cd ~/miniconda3/envs/rmats/rMATS/path/to/test_coordinate_output_group/Sashimi_plot
image.png

可以发现分组显示和单个显示还是有些区别。
以上就是完整的基于rMATS进行转录组选择性剪切分析和可视化的流程了。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,794评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,050评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,587评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,861评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,901评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,898评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,832评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,617评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,077评论 1 308
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,349评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,483评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,199评论 5 341
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,824评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,442评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,632评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,474评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,393评论 2 352

推荐阅读更多精彩内容