基因组从头组装软件

从头组装- 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/<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

  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可以作为基因组拼接的结果好坏的一个判断标准。
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,884评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,347评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,435评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,509评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,611评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,837评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,987评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,730评论 0 267
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,194评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,525评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,664评论 1 340
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,334评论 4 330
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,944评论 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,764评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,997评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,389评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,554评论 2 349

推荐阅读更多精彩内容