美文网首页
短序列比对了解一下?

短序列比对了解一下?

作者: 刘小泽 | 来源:发表于2018-12-17 23:27 被阅读291次

    刘小泽写于18.12.17

    组学分析离不开比对环节,可能流程已经会了,但这不是根本。我们需要再深入学习一下关于短序列比对的一些知识,这样以后再分析的时候,就更能明白我们自己在做些什么

    短序列是什么?

    一代测序一般都测的比较长(1000bp左右)并且准确率很高,能到99.9%,但最大的缺点就是:这么好的技术却不能大批量应用,只能一条一条测,耗时耗钱。从2005年左右,二代测序的短读长、高通量开始迅速发展,产生的reads和一代有着显著的不同:序列长度明显降下来了(50-300bp),一次测序产量明显上去了(一次上亿条reads)。这里不讨论测序仪怎么做到的输出短序列,只需要知道二代测序带给我们的结果一是短,二是多就行了。

    有了输出的短序列,然后呢?

    它们的用处一般有两个:一个是比对到参考基因组(也就是重测序 re-sequencing流程),另一个就是相互比对进行叠加(也就是组装的过程,reads=》contig=》scaffold等)。这些工作都是靠比对工具完成的,我们称之为:“short read aligners” OR "short read mappers"

    比对工具怎么完成的?

    首先,让我们感谢那些短序列比对工具(以下简称“工具”)的作者,生信界有了他们才有了不同组合的流程,才推动了不同的组学研究。他们设计的一个好的工具可以在1秒内比对超过一万条序列到人类基因组的30亿bp碱基上

    比对一般需要寻找exact matchesmissing locations 以及partial and alternative matches/overlaps ,但是这几个任务每个软件都有自己的擅长与不足。另外,根据数据类型(domain-specific)表现也不同

    当然,工具也有自己的劣势,大部分的工具只能根据阈值去寻找和目标区域相似的比对结果,高相似性优先,因此有部分会因阈值设定被抛弃;当序列过长或过短时,就会受到限制,例如研究small RNA这种低于30nt的序列,可选的比对工具就是少之又少,因为对比对算法的精确度要求更高

    alignment vs mapping

    说起比对,我们一般都会想起来这两个词,但是严格来说,它们还是有区别的:mapping强调的是不要求比对的准确度,能有比对就可以,是region层面上的,它的目的就是看看基因组上有没有一块区域可以安放这条序列;而alignment强调精确比对,是碱基层面上的

    李恒关于这二者做过自己的解释:

    Mapping

    • A mapping is a region where a read sequence is placed.
    • A mapping is regarded to be correct if it overlaps the true region.

    Alignment

    • An alignment is the detailed placement of each base in a read.
    • An alignment is regarded to be correct if each base is placed correctly.

    例如:如果研究SNPs和基因组内变异,应该就是用alignment的工具;如果研究RNA-seq就是用mapping的工具,因为RNA-seq一般我们就想知道这个序列从哪里来的就好了,没必要知道比对上多少

    这么多工具,如何选择?

    其实工具很多,能被大众接受的很少,因此软件开发之路十分艰难,其实大部分的开发者并没有得到关注。

    这里用的最多的当属bwabowtie2 ,选择的话一般就是根据喜好和信仰充值了。我们知道bwa是曾经的博德研究所的李恒开发的,国人的肯定要支持;另外华大也开发了一个novoalign 喜欢BGI的也可以关注。但是不管怎样,一个比对项目,可以多用几种工具分析分析,增加自己结果的可信度

    另外,在选择工具的时候,我们要根据自己的实际需求,自己做一个心理暗示(mental checklist):

    • 比对算法:global, local or semi-local
    • 工具遇到INDEL怎么处理?
    • 工具可以跨大片段区域比对吗?
    • 工具可以进行根据阈值过滤吗?阈值设置?
    • 工具可以找到嵌合体比对吗?

    选择一个最常用的bwa研究下

    bwa的背景

    bwa是Burrows-Wheelers Aligner的缩写,应该是目前使用最为广泛的,后期会搭配同作者的samtools使用

    当时李恒在发表这个bwa算法的时候,那时已经好多人在用了,还被拒稿,为此他写过一封信:

    生信有一个特点,就是:更新速度快,可能有的软件还不知道名字就已经被淘汰了。身处前端的bwa也是不断的更替版本,之前的算法是 bwa aln,现在是bwa mem【这里的mem指的是Maximally Exact Matches】。因此如果采用不同的算法,虽然都是bwa,但结果还是有差别。这就是有时让人纠结的地方,因为不清楚作者软件的版本更替,于是,最好的办法就是用熟练github,自己去找(当然,我也在努力的道路上)

    bwa准备工作

    一般来讲,使用bwa比对之前需要根据参考基因组构建索引index ,目的就是快速搜索基因组。一般参考基因组放一个目录,然后构建的index放另一个目录,随时取用。

    bwa小练习

    将埃博拉病毒测序的reads比对到它的参考基因组上(命名为1976.fa)

    先构建索引
    mkdir -p ~/tmp/bwa_test/ref
    
    # 下载基因组(19Kb)[安装entrez-direct]
    conda install -c bioconda entrez-direct
    efetch -db=nuccore -format=fasta -id=AF086833 > ~/tmp/bwa_test/ref/1976.fa
    
    # 构建索引
    ref=~/tmp/bwa_test/ref/1976.fa
    bwa index $ref
    
    # ls ~/tmp/bwa_test/ref
    
    然后下载测试数据
    mkdir -p ~/tmp/bwa_test/raw && cd ~/tmp/bwa_test/raw
    
    # 获取全部的埃博拉病毒项目的测序数据
    esearch -db sra -query PRJNA257197 | efetch -format runinfo > runinfo.csv
    
    # 挑选SRR1972739下载
    cat runinfo.csv| grep SRR1972739 | cut -d "," -f 10 | xargs -n1 wget {}
    
    # 解压成fq文件 [为了测试,选取前1万条reads]
    fastq-dump -X10000 --split-files SRR1972739
    
    比对

    比对默认得到sam格式(Sequence Alignment Map),其中包括了所有的比对信息,之后再也不用看fastq了

    mkdir -p ~/tmp/bwa_test/align && cd ~/tmp/bwa_test/align
    
    r1=~/tmp/bwa_test/raw/SRR1972739_1.fastq
    r2=~/tmp/bwa_test/raw/SRR1972739_2.fastq
    ref=~/tmp/bwa_test/ref/1976.fa
    
    baw mem $ref $r1 $r2 > bwa.sam
    

    至于Bowtie2,也有自己的用法,不过是将索引换成了bowtie2-build
    然后比对的时候bowtie2 -x $ref -1 $r1 -2 $r2 > bowtie.sam

    运行结束后,会给个报告

    软件的比较?

    如果只考虑时间的话,bwa要快一些,当然这也是有原因的:bowtie2产生的结果中包含有更多的信息,例如,同时看下它们的tag部分:

    cat bwa.sam | cut -f 12-20 | head
    
    cat bowtie.sam | cut -f 12-20 | head
    

    欢迎关注我们的公众号~_~  
    我们是两个农转生信的小硕,打造生信星球,想让它成为一个不拽术语、通俗易懂的生信知识平台。需要帮助或提出意见请后台留言或发送邮件到Bioplanet520@outlook.com

    Welcome to our bioinfoplanet!

    相关文章

      网友评论

          本文标题:短序列比对了解一下?

          本文链接:https://www.haomeiwen.com/subject/htihkqtx.html