导航

【转录组入门】5:序列比对

Posted on 2018-06-30 22:26  微凉charles  阅读(6117)  评论(0编辑  收藏  举报

作业要求:

比对软件很多,首先大家去收集一下,因为我们是带大家入门,请统一用hisat2,并且搞懂它的用法。
直接去hisat2的主页下载index文件即可,然后把fastq格式的reads比对上去得到sam文件。
接着用samtools把它转为bam文件,并且排序(注意N和P两种排序区别)索引好,载入IGV,再截图几个基因看看!
顺便对bam文件进行简单QC,参考直播我的基因组系列。

 

 

【1】选择比对工具

Hisat2 或 STAR(本次选择Hisat2)

 

【2】下载hisat2的index文件(就是参考基因组)

1、进入hisat2官网,主页面右侧中间位置,

右击“H.sapiens,UCSC hg19”下面的genome,“复制链接地址”

2、Ubuntu终端命令行下载

1 # 切换到下载目录
2 $ cd ~/src
3 $ wget  ftp://ftp.ccb.jhu.edu/pub/infphilo/hisat2/data/hg19.tar.gz
4 
5 # 解压下载后的文件
6 $ tar -zxvf hg19.tar.gz

补充:

(1)可以在Windows系统中用迅雷下载,这样下载比较快

(2)若没有现成的index,可以通过HISAT2的方法创建

1 # 其实hisat2-buld在运行的时候也会自己寻找exons和splice_sites,但是先做的目的是为了提高运行效率
2 $ extract_exons.py gencode.v26lift37.annotation.sorted.gtf > hg19.exons.gtf &extract_splice_sites.py gencode.v26lift37.annotation.gtf > hg19.splice_sites.gtf &
3 # 建立index, 必须选项是基因组所在文件路径和输出的前缀
4 $ hisat2-build --ss hg19.splice_sites.gtf --exon hg19.exons.gtf genome/hg19/hg19.fa hg19

 

 【3】正式比对

# 编写批量比对的脚本  hisat2_align.sh
   for i in `seq 56 58`
   do
         hisat2 -t -x reference/index/hg19/genome -1 RNA-Seq/SRR35899${i}_1.fastq.gz -2 RNA-Seq/SRR35899${i}_2.fastq.gz  -S  RNA-Seq/aligned/SRR35899${i}.sam &
   done
# 运行脚本 hisat2_align.sh
$ bash  hisat2_align.sh

# hisat2用法
$
hisat2 [options]* -x <hisat2-idx> {-1 <m1> -2 <m2> | -U <r> | --sra-acc <SRA accession number>} [-S <hit>]
# -x index : 参考基因组
# 双端测序:hisat2 -x hisat2_index -1 m1 -2 m2 -S name.sam
# 单端测序:hisat2 -x hisat2_index -U r1 -S name.sam

比对结果解释

1、全部数据都是100%的,6.37%的数据一次都没有比对,85.71%的数据是唯一比对,7.92%是多个比对。

2、然后6.37%的一次都没有比对的数据,如果不按照顺序来,有4.94%的比对。

3、之后把剩下的部分用单端数据进行比对的话,58.21%数据没比对上,34.94%的数据比对一次,6.86%比对超过一次。

4、零零总总的加起来是96.47%的比对!!

 

 【4】sam格式转换成bam格式

1 # 编写脚本
2   for i in `seq 56 58`
3   do
4       samtools view -S SRR35899${i}.sam -b > SRR35899${i}.bam  #转换成bam文件
5       samtools sort SRR35899${i}.bam -o SRR35899${i}_sorted.bam  #采用默认方式排序
6       samtools index SRR35899${i}_sorted.bam  #生成索引
7   done

 

【5】比对结果QC

QC软件有很多,这里我们使用RSeQC

  • RSeQC——http://rseqc.sourceforge.net/

  • Qualimap——http://qualimap.bioinfo.cipf.es/

  • Picard——http://broadinstitute.github.io/picard/

使用RSeQC进行比对结果QC

 1、安装RSeQC

1 # RSeQC的安装,需要先安装gcc;numpy;R;Python2.7,这里比较难装的就是numpy——可以直接利用anaconda安装(http://www.jianshu.com/p/14fd4de54402)
2 # 我的环境已经配置好了,所以直接可以用pip命令安装
3 $ conda install RSeQC
4 
5 # 进入存放bam文件的目录
6 $ cd 
7 # 对bam文件进行质控,其余都同样的进行
8 $ bam_stat.py  -i SRR3589956_sorted.bam

2、分析并查看结果

总read数是67327865,其中能够比对上的有49466502,所以mapped的比率是73.5%,符合人类的70%~90%的结果

 3、比对到基因组各种原件上的情况:   (基因组覆盖率的QC)

bed文件的下载:

hg19:https://sourceforge.net/projects/rseqc/files/BED/Human_Homo_sapiens/

mm10:https://sourceforge.net/projects/rseqc/files/BED/Mouse_Mus_musculus/

两个都选择RefSeq

bed文件还可以用gtf文件转换,网上也有很多写好的脚本可以用。

开始分析:

$ read_distribution.py -i RNA-Seq/aligned/SRR3589956_sorted.bam -r reference/hg19_RefSeq.bed

分析结果:

 

【6】IGV查看比对结果

载入参考基因组,基因组注释文件,很bam文件,看一些基因。

 

 

理论知识

RNA-Seq数据分析分为很多种:说找差异表达基因、寻找新的可变剪切……

【】找差异表达基因:单纯只需要确定不同的read计数就行的话,

可用工具:bowtie, bwa这类比对工具,或者是salmon这类align-free工具,并且后者的速度更快。

【】找到新的isoform,或者RNA的可变剪切,看看外显子使用差异的话

可用工具:TopHat, HISAT2或者是STAR这类工具用于找到剪切位点。

因为RNA-Seq不同于DNA-Seq,DNA在转录成mRNA的时候会把内含子部分去掉。所以mRNA反转的cDNA如果比对不到参考序列,会被分开,重新比对一次,判断中间是否有内含子。

文章:Gaining comprehensive biological insight into the transcriptome by performing a broad-spectrum RNA-seq analysis总结:

】二类错误(纳伪):hisat2最少

】一类错误(弃真):hisat2较高

】唯一比对:STAR最佳

】稳定性:STAR最佳

】速度:hisat2最快(HISAT2比STAR和TopHat2平均快上2.5~100倍)

 

序列比对实质:把reads和index进行比较

 

SAM(sequence alignment/mapping)数据格式

是一种序列比对格式标准, 由Sanger制定,是以TAB为分割符的文本格式。主要应用于测序序列mapping到基因组上的结果表示,当然也可以表示任意的多重比对结果

是目前高通量测序中存放比对数据的标准格式,当然他可以用于存放未比对的数据。

sam文件由:头文件和map结果组成

】头文件:由一行行以@起始的注释构成

】map结果:

每个read只占一行,只是它被tab分成了很多列,一共有12列,分别记录了:

1.read名称

2.SAM标记

3.chromosome号

4.5′端起始位置

5.MAPQ(mapping quality,描述比对的质量,数字越大,特异性越高)

6.CIGAR字串,记录插入,删除,错配以及splice junctions(后剪切拼接的接头)

7.mate名称,记录mate pair信息

8.mate的位置

9.模板的长度

10.read序列

11.read质量

12.程序用标记

 

处理SAM格式的工具主要是:SAMTools,SAMTools的主要功能如下:

    view: BAM-SAM/SAM-BAM 转换和提取部分比对

    sort: 比对排序

    merge: 聚合多个排序比对

    index: 索引排序比对

    faidx: 建立FASTA索引,提取部分序列

    tview: 文本格式查看序列

    pileup: 产生基于位置的结果和 consensus/indel calling

最常用功能:格式转换、排序、索引

# 格式转换

$ samtools  view  -b  test.sam  >  test.bam

# 排序

$ samtools  sort  test.bam  -o  test_sorted.bam      # 采用默认方式排序

$ samtools  sort  -n  test.bam  -o  test_sorted_n.bam     # 根据reads名排序

# 索引

$ samtools  index  test_sorted.bam

 

常用的比对质控软件有:

1.Picard https://broadinstitute.github.io/picard/

2.RSeQC http://rseqc.sourceforge.net/

3.Qualimap http://qualimap.bioinfo.cipf.es/

 

RNA-Seq数据分析分为很多种

找差异表达基因或寻找新的可变剪切……