macでインフォマティクス

macでインフォマティクス

NGS関連のインフォマティクス情報についてまとめています。

高速なメタゲノムのアセンブリツール MEGAHIT

 

 次世代シーケンシング技術は、メタゲノミクスを研究し、ヒトの腸、動物の第一胃および土壌などの様々な微生物群を理解する新しい機会を提供してきた。リファレンスゲノムの欠如のため、メタゲノミクスデータのde novo assemblyは、メタゲノミクス分析のための有益かつほぼ不可避なステップである(Qin et al、2010)。しかし、このステップは、特に、環境メタゲノミクスで遭遇する大規模かつ複雑なデータセット(Howe et al、2014)の重い計算資源要件による制約がある。 Howeらによって最近公表された土壌メタゲノミクスデータセットは、低クオリティの塩基をトリミングした後でさえ、252Gbp含まれる。データセットは、パーティショニングとdigital normalization(紹介)を含む前処理ステップでうまくアセンブリされた。現時点では、デノボ・アセンブラは、コンピュータ・メモリを使用してデータの全体をアセンブリすることはできない。土壌のメタゲノムデータをアセンブリするためのSOAPdenovo2(Luo et al、2012)およびIDBA-UD(Peng et al、2012)の推定メモリ要件は少なくとも4 TBである。メタゲノミクスデータの量が増え続けるにつれて、特に単一ノードサーバー(現在の2ソケットのサーバーでは最大メモリ容量768GB(論文執筆時点))上で、大規模かつ複雑なメタゲノミクスデータを時間と費用効率の高い方法で組み立てることができるアセンブラMEGAHITを開発した。

 

f:id:kazumaxneo:20180610001437j:plain

MEGAHITのワークフロー。論文より転載。

 

wiki

https://github.com/voutcn/megahit/wiki

 

インストール

cent os6でテストした(suitable for 64-bit Linux and MAC OS X)。

 

依存

  • zlib
  • python 2.6 or greater
  • G++ 4.4 or greater

本体 Github

https://github.com/voutcn/megahit

git clone https://github.com/voutcn/megahit.git
cd megahit/
make

./megahit

$ ./megahit

megahit: MEGAHIT v1.1.3

 

Copyright (c) The University of Hong Kong & L3 Bioinformatics Limited

contact: Dinghua Li <dhli@cs.hku.hk>

 

Usage:

  megahit [options] {-1 <pe1> -2 <pe2> | --12 <pe12> | -r <se>} [-o <out_dir>]

 

  Input options that can be specified for multiple times (supporting plain text and gz/bz2 extensions)

    -1                       <pe1>          comma-separated list of fasta/q paired-end #1 files, paired with files in <pe2>

    -2                       <pe2>          comma-separated list of fasta/q paired-end #2 files, paired with files in <pe1>

    --12                     <pe12>         comma-separated list of interleaved fasta/q paired-end files

    -r/--read                <se>           comma-separated list of fasta/q single-end files

 

  Input options that can be specified for at most ONE time (not recommended):

    --input-cmd              <cmd>          command that outputs fasta/q reads to stdout; taken by MEGAHIT as SE reads 

 

Optional Arguments:

  Basic assembly options:

    --min-count              <int>          minimum multiplicity for filtering (k_min+1)-mers [2]

    --k-list                 <int,int,..>   comma-separated list of kmer size

                                            all must be odd, in the range 15-255, increment <= 28);

                                            [21,29,39,59,79,99,119,141]

 

  Another way to set --k-list (overrides --k-list if one of them set):

    --k-min                  <int>          minimum kmer size (<= 255), must be odd number [21]

    --k-max                  <int>          maximum kmer size (<= 255), must be odd number [141]

    --k-step                 <int>          increment of kmer size of each iteration (<= 28), must be even number [12]

 

  Advanced assembly options:

    --no-mercy                              do not add mercy kmers

    --bubble-level           <int>          intensity of bubble merging (0-2), 0 to disable [2]

    --merge-level            <l,s>          merge complex bubbles of length <= l*kmer_size and similarity >= s [20,0.95]

    --prune-level            <int>          strength of low depth pruning (0-3) [2]

    --prune-depth            <int>          remove unitigs with avg kmer depth less than this value [2]

    --low-local-ratio        <float>        ratio threshold to define low local coverage contigs [0.2]

    --max-tip-len            <int>          remove tips less than this value [2*k]

    --no-local                              disable local assembly

    --kmin-1pass                            use 1pass mode to build SdBG of k_min

 

  Presets parameters:

    --presets                <str>          override a group of parameters; possible values:

                                            meta-sensitive: '--min-count 1 --k-list 21,29,39,49,...,129,141'

                                            meta-large: '--k-min 27 --k-max 127 --k-step 10'

                                            (large & complex metagenomes, like soil)

 

  Hardware options:

    -m/--memory              <float>        max memory in byte to be used in SdBG construction

                                            (if set between 0-1, fraction of the machine's total memory) [0.9]

    --mem-flag               <int>          SdBG builder memory mode

                                            0: minimum; 1: moderate; others: use all memory specified by '-m/--memory' [1]

    --use-gpu                               use GPU

    --gpu-mem                <float>        GPU memory in byte to be used. Default: auto detect to use up all free GPU memory. 

    -t/--num-cpu-threads     <int>          number of CPU threads, at least 2 if GPU enabled. [# of logical processors]

 

  Output options:

    -o/--out-dir             <string>       output directory [./megahit_out]

    --out-prefix             <string>       output prefix (the contig file will be OUT_DIR/OUT_PREFIX.contigs.fa)

    --min-contig-len         <int>          minimum length of contigs to output [200]

    --keep-tmp-files                        keep all temporary files

    --tmp-dir                <string>       set temp directory

 

Other Arguments:

    --continue                              continue a MEGAHIT run from its last available check point.

                                            please set the output directory correctly when using this option.

    -h/--help                               print the usage message

    -v/--version                            print version

    --verbose                               verbose mode

 

 
パスの通ったディレクトリにコピーするなら、以下全てを移動する。
sudo cp megahit megahit_asm_core megahit_toolkit megahit_sdbg_build /usr/local/bin/

 megahitはCondaでも導入可能(リンク)。Dockerコンテナも複数上げられている(リンク)。バイナリもリリースから入手できる(リンク)。

open MPやCUDAにも対応してます。詳細はGithubで確認してください。
 
 
ラン
fastqを指定してランする。後半のパラメータは省略可能。
megahit -1 pair1.fq -2 pair2.fq -o megahit_out3 --k-min 21 --k-max 141 --k-step 12 -t 20

 interleaveのペアエンドは"-12"で指定する。kは奇数、kのステップは偶数にする。非常に複雑なsoilなどのメタゲノムは、de brujin graphをシンプルにするため、最小kを27などにすることが推奨されている(カバレッジの大きいデータも同様)。-min-countも重要で、カバレッジが十分(>40)以上あるゲノムがターゲットなら、クオリティトリミングを行い、--k-minも上げることが推奨されている。一方、カバレッジが不十分でも、cut-off 2以下はシーケンスエラーを高頻度に拾うため非推奨になっている。

 
de brujin graphはbandageで可視化できる(詳細)。
megahit_toolkit contig2fastg 99 k99.contigs.fa > k99.fastg

 

SRAのpublicデータを使った実際のワークフローもあります(De novoアセンブリカバレッジ計算のフロー)。
 
GPUなしでも動作は非常に高速です。
 
引用
MEGAHIT v1.0: A fast and scalable metagenome assembler driven by advanced methodologies and community practices
Li D, Luo R, Liu CM3, Leung CM, Ting HF, Sadakane K, Yamashita H, Lam TW
Methods. 2016 Jun 1;102:3-11.
 
MEGAHIT: an ultra-fast single-node solution for large and complex metagenomics assembly via succinct de Bruijn graph.
Li D, Liu CM, Luo R, Sadakane K, Lam TW

Bioinformatics. 2015 May 15;31(10):1674-6.