【RNA-Seq 实战】四、序列比对

这里是佳奥,让我们继续转录组分析的学习!

常用的软件:hisat2、subjunc、star、bwa、bowtie2(主要针对基因组)等

1 salmon软件流程(直接对基因进行定量分析)

首先要有参考基因组文件

使用salmon软件构建索引

$ salmon index -t Arabidopsis_thaliana.TAIR10.28.cdna.all.fa.gz -i athal_index

构建后:

(rnaseq) root 17:56:44 /home/kaoku/rnaseq/biotree_plant/refer/athal_index
$ ls -lh
总用量 1.1G
-rw-r--r-- 1 root root  14K  7月 28 17:55 duplicate_clusters.tsv
-rw-r--r-- 1 root root 751M  7月 28 17:56 hash.bin
-rw-r--r-- 1 root root  666  7月 28 17:56 header.json
-rw-r--r-- 1 root root  115  7月 28 17:56 indexing.log
-rw-r--r-- 1 root root 1.3K  7月 28 17:56 quasi_index.log
-rw-r--r-- 1 root root   89  7月 28 17:56 refInfo.json
-rw-r--r-- 1 root root 7.8M  7月 28 17:55 rsd.bin
-rw-r--r-- 1 root root 247M  7月 28 17:55 sa.bin
-rw-r--r-- 1 root root  63M  7月 28 17:55 txpInfo.bin
-rw-r--r-- 1 root root   96  7月 28 17:56 versionInfo.json

然后对所有数据定量,编写脚本

#! /bin/bash
index=salmon/athal_index ## 指定索引文件夹
for fn in ERR1698{194..209};
do
    sample=`basename ${fn}`
    echo "Processin sample ${sampe}"
    salmon quant -i $index -l A \
        -1 ${sample}_1.fastq.gz \
        -2 ${sample}_2.fastq.gz \
        -p 5 -o quants/${sample}_quant
done

定量分析后目录:提取quant.sf文件,上游分析结束。

(rnaseq) root 18:33:49 /home/kaoku/rnaseq/biotree_plant/data/quants
$ ls
ERR1698194_quant  ERR1698196_quant  ERR1698198_quant  ERR1698200_quant  ERR1698202_quant  ERR1698204_quant  ERR1698206_quant  ERR1698208_quant
ERR1698195_quant  ERR1698197_quant  ERR1698199_quant  ERR1698201_quant  ERR1698203_quant  ERR1698205_quant  ERR1698207_quant  ERR1698209_quant

(rnaseq) root 18:40:54 /home/kaoku/rnaseq/biotree_plant/data/quants/ERR1698194_quant
$ ls
aux_info  cmd_info.json  lib_format_counts.json  libParams  logs  quant.sf

2 hisat2比对(比对+差异分析)

2.1 建立索引

hisat2-build -p 16 Arabidopsis_thaliana.TAIR10.28.dna.genome.fa genome

2.2 需要加载索引,并输出到sam文件

$ hisat2 -p 10 -x /home/kaoku/rnaseq/biotree_plant/refer/hisat2index/genome -1 ERR1698194_1.fastq.gz -2 ERR1698194_2.fastq.gz -S tmp.hisat2.sam

会显示比对结果
99.97% overall alignment rate
嗯挺不错

查看文件
$ ls -lh
-rw-r--r--  1 root  root  4.5G  7月 28 19:31 tmp.hisat2.sam

$ cat tmp.hisat2.sam | head
@HD     VN:1.0  SO:unsorted
@SQ     SN:Pt   LN:154478
@SQ     SN:Mt   LN:366924
@SQ     SN:4    LN:18585056
@SQ     SN:2    LN:19698289
@SQ     SN:3    LN:23459830
@SQ     SN:5    LN:26975502
@SQ     SN:1    LN:30427671
@PG     ID:hisat2       PN:hisat2       VN:2.2.1        CL:"/root/miniconda3/envs/rnaseq/bin/hisat2-align-s --wrapper basic-0 -p 10 -x /home/kaoku/rnaseq/biotree_plant/refer/hisat2index/genome -S tmp.hisat2.sam --read-lengths 101 -1 /tmp/3138.inpipe1 -2 /tmp/3138.inpipe2"
ERR1698194.2    81      1       4969    60      1S100M  =       4969    102     TAGAAAATTTTGAGTTTTTGGTAGATGAAAGGACATCTATGCAACAGCATTACAGTGATCACCGGCCCAAAAAACCTGTGTCTGGGGTTTTGCCTGATGAT        @CACCC@CC>CCCBA?5:DDCCCCC@CCC@C>5;@56;63C@7.?3DCA>ECHCECHDCE;FABG<AGD;IH@EHBECDEEFCGGGHHFABFBFDEDD@@@   AS:i:-1      XN:i:0  XM:i:0  XO:i:0  XG:i:0  NM:i:0  MD:Z:100        YS:i:0  YT:Z:DP NH:i:1

把sam文件转为bam文件

$ samtools sort -O bam -@ 5 -o tmp.hisat2.bam tmp.hisat2.sam

文件大小,小了很多

-rw-r--r--  1 root  root  621M  7月 28 20:58 tmp.hisat2.bam

2.3 .sam转.bam,并生成.bai批量处理:

ls *.sam | while read id ; do (samtools sort -O bam -@ 5 -o $(basename $id ".sam").bam $id); done
ls *.bam | xargs -i samtools index {}

查看结果:.sam、.bam、.bai

-rw-r--r--  1 root  root  786M  7月 29 11:16 tmp2.hisat2.bam
-rw-r--r--  1 root  root  203K  7月 29 11:18 tmp2.hisat2.bam.bai
-rw-r--r--  1 root  root  5.9G  7月 29 11:09 tmp2.hisat2.sam
-rw-r--r--  1 root  root  348M  7月 29 11:16 tmp3.hisat2.bam
-rw-r--r--  1 root  root  142K  7月 29 11:18 tmp3.hisat2.bam.bai
-rw-r--r--  1 root  root  5.1G  7月 29 11:11 tmp3.hisat2.sam
-rw-r--r--  1 root  root  405M  7月 29 11:16 tmp4.hisat2.bam
-rw-r--r--  1 root  root  151K  7月 29 11:19 tmp4.hisat2.bam.bai
-rw-r--r--  1 root  root  5.9G  7月 29 11:13 tmp4.hisat2.sam
-rw-r--r--  1 root  root  621M  7月 29 11:17 tmp.hisat2.bam
-rw-r--r--  1 root  root  186K  7月 29 11:19 tmp.hisat2.bam.bai
-rw-r--r--  1 root  root  4.5G  7月 28 19:31 tmp.hisat2.sam

查看.sam文件:

$ less -S tmp.hisat2.sam

查看.bam文件:

$ samtools view tmp.hisat2.bam | less -S

当然,也可以根据染色体序号来进行特定位点的比对:具体不演示,详情软件说明。

$ samtools tview --reference /refer/genome/.fa tmp.hisat2.bam

2.4 差异分析

featureCounts:

批量bam featureCounts:
$ gtf='/home/kaoku/rnaseq/biotree_plant/refer/Arabidopsis_thaliana.TAIR10.28.gtf.gz'
$ featureCounts -T 5 -p \
-a $gtf -o all.counts.txt \
/home/kaoku/rnaseq/biotree_plant/data/sam_bam_bai/*.bam

Successfully assigned alignments : 5374573 (65.5%)     
Successfully assigned alignments : 7474294 (79.8%)  
Successfully assigned alignments : 5374573 (65.5%)     
Successfully assigned alignments : 6368300 (67.1%)  

查看结果
$ ls *.counts.*
all.id.counts.txt  all.id.counts.txt.summary

multiqc统计结果
$ multiqc ./
image.png

然后就可以把all.id.txt拿到R做下游分析了。

htseq-count:

htseq-count -f bam -r pos ../clean/SRR1039516.hisat2.bam  /refer/.gtf.gz

补充:

把.gz文件改名(ERR1698194_1.fastq.gz变成ERR1698194_1.fq)

ls *gz | while read id ; do (echo ${id%%.*}); done

取文件前1000行并输出到

ls ../clean/*gz | while read id ; do (zcat $id|head -1000 > $(basename $id ".gz")); done

3 subjunc比对

subjunc -T 5 -i /refer/index/hg38/ -r SRR ERR1698194_1.fq -R ERR1698194_2.fq -o tmp.subjunc.sam

4 bowtie2比对

bowtie2 -p 10 -x /refer/index/hg38/genome -1 ERR1698194_1.fq -2 ERR1698194_2.fq -S tmp.bowtie2.sam

每一个软件对应自己的index,不要用错了。

5 bwa比对

bwa mem -t 5 -M /refer/index/hg38 ERR1698194_1.fq ERR1698194_2.fq > tmp.bwa.sam

6 多个软件进行批量比对脚本

原始文件名:SRR1039523_1_val_1_.fq.gz
运行后会生成.sam文件。

cd /clean
ls *.gz | cut -d"_" -f 1 | sort -u | while read id ; do
ls -lh ${id}_1_val_1.fq.gz  ${id}_2_val_2.fq.gz
+
hisat2 -p 10 -x /home/kaoku/rnaseq/biotree_plant/refer/hisat2index/genome -1 ${id}_1_val_1.fq.gz -2 ${id}_2_val_2.fq.gz -S ${id}.hisat2.sam
或
subjunc -T 5 -i /home/kaoku/rnaseq/biotree_plant/refer/hisat2index -r  ${id}_1_val_1.fq.gz -R ${id}_2_val_2.fq.gz -o ${id}.subjunc.bam(subjunc生成的是二进制的bam文件)
或
bowtie2 -p 10 -x /home/kaoku/rnaseq/biotree_plant/refer/hisat2index -1 ${id}_1_val_1.fq.gz -2 ${id}_2_val_2.fq.gz -S ${id}.hisat2.sam
或
bwa mem -t 5 -M /home/kaoku/rnaseq/biotree_plant/refer/hisat2index ${id}_1_val_1.fq.gz ${id}_2_val_2.fq.gz > ${id}.bwa.sam

查看输出每个文件内容前十行:

ls *.sam | xargs head
等价于
ls *.sam | xargs -i head {}

对比后批量转化成.bam文件

ls *.sam | while read id ; do (samtools sort -O bam -@ 5 -o $(basename ${id} ".sam").bam $id); done

7 .bam进行可视化操作

首先构建索引

ls *.bam | xargs -i samtools index {}

导出全部的.bam和.bai文件,导出参考基因组

安装软件igv(Windows客户端),Load Genome file导入参考基因组

image.png

把.bam和.bai文件拖入。

碱基插入:


image.png

可能的SNP突变:


image.png

碱基缺失:数字表示缺失个数
image.png

8 批量samtools flagstat处理

ls *.bam | while read id ; do (samtools flagstat -@ 10 $id > $(basename ${id} ".bam").flagstat ); done

新建目录
$ mkdir stat
移动所有flagstat文件
$ mv *flagstat stat/

(rnaseq) root 15:37:40 /home/kaoku/rnaseq/biotree_plant/data/stat
$ ls
tmp2.hisat2.flagstat  tmp3.hisat2.flagstat  tmp4.hisat2.flagstat  tmp.hisat2.flagstat

方法一:multqc总结

(rnaseq) root 16:21:55 /home/kaoku/rnaseq/biotree_plant/data/stat
$ multiqc ./

导出.html查看


image.png

方法二:shell脚本

$ wc -l *
  16 tmp2.hisat2.flagstat
  16 tmp3.hisat2.flagstat
  16 tmp4.hisat2.flagstat
  16 tmp.hisat2.flagstat

$ cat * |awk '{print $1}'| paste - - - - - - - - - - - - - - - -(16个)
数字结果复制到excel,粘贴选择转置
18717515    16396096    18980404    14225879
16964696    13137250    15375644    12489588
1752819 3258846 3604760 1736291
0   0   0   0
0   0   0   0
0   0   0   0
18712320    16382965    18964481    14221877
16959501    13124119    15359721    12485586
16964696    13137250    15375644    12489588
8482348 6568625 7687822 6244794
8482348 6568625 7687822 6244794
16733754    13091402    15318020    12305354
16955508    13115734    15348706    12482668
3993    8385    11015   2918
15658   11380   13510   12978
13305   9163    10743   9948

提取横向表头
$ ls 
tmp2.hisat2.flagstat  tmp3.hisat2.flagstat  tmp4.hisat2.flagstat  tmp.hisat2.flagstat

提取纵向表头
$ cat tmp2.hisat2.flagstat | cut -d "+" -f 2 | cut -d " " -f 3-10
in total (QC-passed reads
primary
secondary
supplementary
duplicates
primary duplicates
mapped (99.97% : N/A)
primary mapped (99.97% : N/A)
paired in sequencing
read1
read2
properly paired (98.64% : N/A)
with itself and mate mapped
singletons (0.02% : N/A)
with mate mapped to a different chr

结果如下:


image.png

上有分析到此结束。下一篇我们将根据all.id.txt进行表达矩阵的探索。

我们下一篇再见!

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

推荐阅读更多精彩内容