从头组装- de novo assembly
指在不需要任何参考序列的情况下对某一物种进行基因组测序,然后将测得的序列进行拼接、组装,从而绘制该物种的全基因组序列图谱。
常用拼接算法:
-
De Bruijn 图 :
1>. 是目前最常用的二代测序拼接算法。比较流行的拼接软件如 Velvet、Abyss 和 SOAP denovo 都使用该算法。
该算法将已经非常短的reads再分割成更多个kmer短序列(k 小于reads 序列 的长度),相邻的kmers序列通过(k-1)个碱基连接到一起(即每次只移 动一个位置),进而降低算法计算重叠区域的复杂度,降低内存消耗。
2>. 传统的 Sanger 测序的 reads 较长(1000bp),数据量较少,精度较高,所有的组装算法都利用 reads 之间的重叠,通过公共路径的方法解决拼接问题。而新一代测序产生的数据 read 更短、覆盖度更高、序列精度较低,为此这种以reads为中心的方法面临海量计算的困境。de Bruijn图框架为处理高覆盖、短序列提供了很好思路。
基本步骤:
- 将reads打断成长度为K的核酸片段,再用Kmer间 的overlap关系构建DBG;
- 寻找最优路径(经过每个节点且仅经过一次), 最优路径对应的碱基序列构成一个contig;
- 通过PE reads 位置信息确定 contig之间的相对位置和方向,组装contig,填充contig之间的gap,得到 scaffold序列
常用短序列拼接软件:
(一)SPAdes:
主要用于基因组拼接,也可用于一、二、三代测序的混合组装;还可用于转录组从头组装(rnaSPAdes)和宏基因组拼接(metaSPAdes)
- 安装:
-
需要先按照Python:
Anaconda是一个开源的Python发行版本,其包含了conda、Python等180多个科学包及其依赖项。提供了包管理与环境管理的功能,可以很方便地解决多版本python并存、切换以及各种第三方包安装问题。Anaconda利用工具/命令conda来进行package和environment的管理,并且已经包含了Python和相关的配套工具。
conda 是开源包(packages)和虚拟环境(environment)的管理系统。
- Anaconda安装:
1>. wget https://repo.anaconda.com/archive/Anaconda3-5.2.0-Linux-x86_64.sh
2>. sudo sh ~/Biosofts/Anaconda3-5.2.0-Linux-x86_64.sh
(这里是已经将下载的Anaconda3-5.2.0-Linux-x86_64.sh移到了这个目录下,所以路径会有不同,注意一下)
3>. 输入第二个命令后会进入到会看到提示“In order to continue the installation process, please review the license agreement.”(“请浏览许可证协议以便继续安装。”),点击“Enter”查看“许可证协议”。
4>.在“许可证协议”界面将屏幕滚动至底,输入“yes”表示同意许可证协议内容。然后进行下一步。
5>. 安装过程中,提示:“Press Enter to confirm the location, Press CTRL-C to cancel the installation or specify an alternate installation directory”(按回车键确认安装路径,按'CTRL-C'取消安装或者指定安装目录)
6>. 当出现“Do you wish the installer to prepend the Anaconda install location to PATH in your /home/<user>/.bash_profile ”(你希望安装器添加Anaconda安装路径在/home/<user>/.bash_profile文件中吗?)
输入“yes”后,路径/home/<user>/.bash_profile中“<user>”即进入到家目录后你的目录名。如果输入no后,则需要自己添加路径。
在这里我选择的是no,所以需要自己添加路径
7>. 添加路径:nano ~/.bashrc 末尾加入: export PATH=/root/anaconda3/bin:$PATH
或者 直接echo 'export PATH=/root/anaconda3/bin:$PATH' >>~/.bashrc
8>. 使其生效:source ~/.bashrc
9>. 检查是否成功:conda --version
(出现conda的版本的时候即成功)也可以输入conda list
检查。
-
Anaconda 配置Python 环境
1>. 创建名为Python27或Python34的环境,并指定版本是2.7还是3.4
conda create --name python27 python=2.7 -y
conda create --name python34 python=3.4 -y
2>.conda info -e
- 安装SPAdes:
1. 下载安装包:wget http://cab.spbu.ru/files/release3.12.0/SPAdes-3.12.0-Linux.tar.gz
2. 建立相应目录:mkdir ~/Biosofts/spades
3. 解压缩:tar zvxf /media/sf_Linux/Biosoft/SPAdes-3.12.0-Linux.tar.gz -C ~/Biosofts/spades/
~/Biosofts/SPAdes-3.12.0-Linux/bin/spades.py -h
echo ‘export PATH=~/Biosofts/SPAdes-3.12.0-Linux/bin:$PATH' >>
~/.bashrc
source ~/.bashrc
spades.py -h
-
运行SPAdes:
(1)简介:
- 输出数据:
1 ---------- forward 数据;
2 --------- reverse数据;
12 --------后面接的文件是交叉融合(正向和反向在一起)的 paired 数据;
s ---------unpaired reads的序列 - 参数:
-o ----------------- 输出文件夹
--sc ------------- 用于组装MDA (single-cell) data
--meta -----------用于组装宏基因组
--rna ----------- 用于组装RNA-Seq data
--plasmid--------runs plasmidSPAdes pipeline for plasmid detection
--iontorrent------用于组装IonTorrent data
--test--------------runs SPAdes on toy dataset
-h/--help----------输出使用方法
-v/--version------输出版本 - 高级选项:
--dataset -----------file with dataset description in YAML format
-t/--threads----------线程数,默认是16个
-m/--memory-------RAM limit for SPAdes in Gb (terminates if exceeded) [default: 250]
--tmp-dir-----------directory for temporary files [default: /tmp]
-k------------------k-mer的设置数,如果是多个,中间要以逗号隔开,必须为奇数且不能大于128,即最大设置数 为127 [default: 'auto']
--cov-cutoff ------coverage cutoff value (a positive float number, or 'auto', or 'off') [default: 'off'
拼接基因组有可能有多种数据:每种都不太一样
仅有一个 library 数据 (SE、PE、ME)
SE:用法-1 file_name有多个 paired-end library 数据
PE:用法--pe{int}-1 -----编号为 int 的 library 的 forward 数据有多个 mate-paired library 数据
ME:--mp{int}-1 ------号为 int 的 library 的 forward 数据有PACBIO 数据
选用--pacbio 参数有已拼接的Contig数据
--trusted-contigs------ 输入可信度高的 contigs,用于 graph construction,gap closure 和 repeat resolution。
--untrusted-contigs--------输入可信度较低的 contigs, 用于gap closure 和
repeat resolution。
(二)Velvet
- 使用步骤:
- 第一步是velveth利用数据构建一个hash表;
用法:velveth directory hash_length {[-file_format][-read_type][-separate|-
interleaved] filename1 [filename2 ...]} {...} [options]
解释:
output_directory----------输出文件夹的路径
hash_length--------------设置Kmer的大小,kmer大小对于组装的结果影响比较大,下面是文件格式,
file_format--------------支持的格式有fasta(默认)、fastq、bam等。
reads_type选项--------short(默认)、shortpaired、short2、shortpaired2 …
short10、shortpaired10、long、longPaired。 - 第二步是velvetg进行序列拼接
用法:velvetg velvet_out -exp_cov auto -cov_cutoff auto -very_clean yes
解释:工作的目录,即为上一步骤velveth中的输出文件夹。
cov_cutoff选项 default:no removal 设置最低kmer覆盖度的值。
-exp_cov 选项,default:no long or paired-end read resolution。 期望的kmer覆盖度。如果设置了auto,则该值为所有nodes的kmer覆盖度值的median值; 该值设置为auto,则同时自动设置-cov_cutoff为auto。如果对杂合基因组进行组装时,设置auto,却很难进行预测,组装结果肯定不好。auto适用于标准的基因组测序。
scaffolding defautl:yes 是否要使用paired end信息进行scaffolds组装如果哪一个shortPaired为mate-pair library测序的结果,则需要指定该参数为yes。
conserveLong default:no是否保留含有long reads的序列
default: no 是否输出contig比对到参考序列的summary.
clean default: no 是否删除所有的不能用于重新计算的中间文件
very_clean default: no是否删除所有的中间文件(删除后不能重新计算)
- 安装:
sudo apt-get install velvet
- 结果解释:
contigs.fa 即为我们最终需要的拼接结果文件,长度2倍长于kmer的
contigs。参数-scaffolding决定生成的该fasta文件是否包含scaffold序
列。
stats.txt 用于决定覆盖度cutoff的统计表
PreGraph 初始的de vruijin图
Graph2 最终的de bruijin图 关于该文件中内容的解释,请见velvet
PDF manual。
velvet_asm.afg AMOS兼容的组装文件,能用于AMOS基因组组装软
件包
Log velvet的运行记录。
序列拼接评价软件
(一)QUAST
- 安装:
下载:wegt https://sourceforge.net/projects/quast/files/quast-5.0.0.tar.gz/download
解压缩安装:tar zvxf quast-5.0.0.tar.gz -C ~/Biosofts/
- 什么是Contig N50
Reads拼接后会获得一些不同长度的Contigs。将所有的Contig长度相加,能获得一个Contig总长度。然后将所有的Contigs按照从长到短进行排序,如获得Contig 1,Contig 2,Contig 3...………Contig 25。将Contig按照这个顺序依次相加,当相加的长度达到Contig总长度的一半时,最后一个加上的Contig长度即为Contig N50。举例:Contig 1+Contig 2+ Contig 3 +Contig 4=Contig总长度*1/2时,Contig 4的长度即为Contig N50。Contig N50可以作为基因组拼接的结果好坏的一个判断标准。