【2.2】序列拼接-idba-ud

用trimmomatic我们获得了clean reads,然后呢,我们需要对这个reads 进行拼接。拼接的思路大体可以分为两种:一种叫做Overgap,一种是debrujin,前者是根据两条read序列前后部分的重叠来拼接,适用于一代测序的结果,而后者是将reads切割成更小的片段k-mers,k-mers的组合来完成拼接工作,适用于二代高通量测序。现在可以用的软件非常之多,比如说:clc(收费的),SOAPdenovo,velet等等。而我选择的是牛逼哄哄的idba_ud

idba_ud(http://i.cs.hku.hk/~alse/hkubrg/projects/idba_ud/)是一个可以针对不同测序深度的短reads的基于交互式De Bruijin作图的从头拼接软件。他从小的k-mer开始到大的的k-mer步步前进,设定阈值,短的和低深度的contigs被删掉,这样来完成低深度和高深度的拼接。

下载地址:http://i.cs.hku.hk/~alse/hkubrg/projects/idba_ud/idba_ud.php

$ ./configure
$ make

IDBA-UD - Iterative de Bruijn Graph Assembler for sequencing data with highly uneven depth.

Usage: idba_ud -r read.fa -o output_dir Allowed Options:

-o, --out arg (=out)                    生成文件的文件夹
-r, --read arg                         fasta文件(<=128)
-l, --long_read arg                     fasta长read文件(>128)
  --mink arg (=20)                  最小的k值 (<=124)
  --maxk arg (=100)                 最大的k值 (<=124)
  --step arg (=20)                   每次增加的k-mer 
  --inner_mink arg (=10)             inner minimum k value
  --inner_step arg (=5)              inner increment of k-mer
  --prefix arg (=3)                  prefix length used to build sub k-mer table
  --min_count arg (=2)               minimum multiplicity for filtering k-mer when building the graph
  --min_support arg (=1)             minimum supoort in each iteration
  --num_threads arg (=0)             number of threads
  --seed_kmer arg (=30)              seed kmer size for alignment
  --min_contig arg (=200)            min size of contig
  --similar arg (=0.95)              similarity for alignment
  --max_mismatch arg (=3)            max mismatch of error correction
  --min_pairs arg (=3)               minimum number of pairs
  --no_local                         do not use local assembly
  --no_coverage                      do not iterate on coverage
  --no_correct                       do not do correction
  --pre_correction                   perform pre-correction before assembly

Comment

IDBA接受fasta格式的reads. Fastq格式可以通过fq2fa程序被转化为fasta文件

$ bin/fq2fa read.fq read.fa

IDBA-SC需要将paired-end reads存在一个FastA文件中,一对reads保存在两行,如果不是,可以用fq2fa来合并两个FastQ为一个。

$ bin/fq2fa --merge --filter read_1.fq read_2.fq read.fa
or convert a FastQ read file to FastA file.
$ bin/fq2fa --paired --filter read.fq read.fa

最后输入如下命令即可:

/sam/idba_ud/bin/idba_ud -r total.read.fa  --maxk 90 --step 10 -o output_dir1  --num_threads 12 --min_contig 200

Ps:

  1. 我的50G的数据,用48G的内存,大概1天就出结果了,对这个结果还是比较满意的
  2. 上面的很多的参数的设置还不是太明白,一边用一边理解吧。
药企,独角兽,苏州。团队长期招人,感兴趣的都可以发邮件聊聊:tiehan@sina.cn
个人公众号,比较懒,很少更新,可以在上面提问题,如果回复不及时,可发邮件给我: tiehan@sina.cn