基因组从头组装软件

从头组装- 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图框架为处理高覆盖、短序列提供了很好思路。
基本步骤:
  1. 将reads打断成长度为K的核酸片段,再用Kmer间 的overlap关系构建DBG;
  2. 寻找最优路径(经过每个节点且仅经过一次), 最优路径对应的碱基序列构成一个contig;
  3. 通过PE reads 位置信息确定 contig之间的相对位置和方向,组装contig,填充contig之间的gap,得到 scaffold序列
常用短序列拼接软件:

(一)SPAdes:

主要用于基因组拼接,也可用于一、二、三代测序的混合组装;还可用于转录组从头组装(rnaSPAdes)和宏基因组拼接(metaSPAdes)

  • 安装:

  1. 需要先按照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//.bash_profile ”(你希望安装器添加Anaconda安装路径在/home//.bash_profile文件中吗?)
输入“yes”后,路径/home//.bash_profile中“”即进入到家目录后你的目录名。如果输入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

  1. 安装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
  1. 运行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

  1. 使用步骤:
  • 第一步是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是否删除所有的中间文件(删除后不能重新计算)
  1. 安装:
    sudo apt-get install velvet
  2. 结果解释:
    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
  1. 安装:
    下载: 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可以作为基因组拼接的结果好坏的一个判断标准。

你可能感兴趣的:(基因组从头组装软件)