生信log24|cap3拼接16S的原理——常用软件论文精读(算是新系列)

很久之前就发现很多的教程和笔记比较专注于软件是怎么使用的,即使是有笔记也仅仅是原理的翻译,这个系列我自己想写很久了,那就是扒一扒这些软件是怎么实现的,以及实现的步骤是怎样的,软件是怎么验证他们的实验数据的呢。这算是一个新的系列?前段时间一直在赶毕业论文,产出极少,现在回归中。

1、Cap3是什么
  • Cap3是一款DNA序列拼接软件,向我们经常用来拼接16S rRNA基因的软件ChromasSnapgene他们内嵌的拼接程序就是Cap3。

  • KEGG上的EGassembler使用的拼接程序也是Cap3。

2、Cap3是怎样工作的,工作原理是什么?
  • 工作流程:1、根据PHRED的值剪掉末端测序质量不好的reads;2、计算reads之间的重叠区域;2、去掉错误的overlaps;3、构建contigs序列重叠群;4、构建多序列比对找出重叠的区域进行拼接。


    Cap3的工作流程
  • 怎么找到overlap的?

Cap3使用的是Needleman-Wunsch全局比对(global alignment)和局部区域比对(local alignment)找到overlap的,文中也提到要更准确的话应该是要用blast工具的。

在biopython可以调用EMBOSS这个工具实现(此处截取biopython中的实现全局比对的命令),假定我们有两条序列a.fa和b.fa,输出的文件为needle.txt

from Bio.Emboss.Applications import NeedleCommandline
needle_cline = NeedleCommandline(asequence="a.fa", bsequence="b.fa",\
                                                            gapopen=10, gapextend=0.5, outfile="needle.txt") 
#这个相当于在终端运行了needle的程序如果有单独安装emboss的工具也可以在终端运行下面的命令
needle -outfile=needle.txt \
-asequence=alpha.faa -bsequence=beta.faa \
-gapopen=10 -gapextend=0.5

### 运行比对程序
stdout, stderr = needle_cline()
print(stdout + stderr)

### 读取输出得到的结果文件
from Bio import AlignIO
align = AlignIO.read("needle.txt","emboss")
print(align)

  • 怎么判断overlap的,程序的评分标准是什么
  • overlap首先需要同时满足长度(length),同源性(percent identity),相似度similarity的最低要求(这个分值多少应该是人为设定的);
  • 其次overlap的碱基需要在测序质量高的区域内。
3、什么数据能使用Cap3进行拼接?
  • Cap3开发的目的是为了给当时的shotgun测序得到的数据使用的,目的是把小片段拼成contig,也算是基因组拼接的工具之一。
  • 现在发现它非常适合双端测序数据的拼接,因此sanger测序的数据也可以使用。
4、Cap3跟以前的拼接软件比有什么优势?Cap3解决了当时的什么技术问题
  • 1、根据上下游的特异性引物去进行拼接DNA片段,这个Forward-reverse constraint原文中直译过来就是两条在特定区域DNA正负链上的reads(日常用的PCR引物就是这样的功能)
    A forward–reverse constraint specifies that the two reads should be on the opposite strands of the DNA molecule within a specified range of distance

lane上面有污染怎么办,怎么处理错误的overlap。Cap3对此设置了阈值进行过滤,因为出现错误overlap为小概率事件,大部分序列能找到正确的overlap。

  • 2、
5、利用Cap3+shell批量拼接16s序列

目前还没使用过本地版的,往后体验过会更新。

附带一个本地版的教程

2022.03.14 目前先写到这里。

你可能感兴趣的:(生信log24|cap3拼接16S的原理——常用软件论文精读(算是新系列))