macでインフォマティクス

macでインフォマティクス

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

高速かつ低メモリ使用量でlarge genomeのde gbrujin graphを構築する Cuttlefish

 

 ゲノム解析において、リファレンスゲノムの大規模なコレクションからコンパクトなde Bruijnグラフを構築することは、ますます関心が高まっている課題である。例えば、compacted colored reference de Bruijn graphsは、ショートリードとロングリードのアラインメントのための配列指標として使用されることが多くなってきている。また、個々のゲノムの配列がより多様になるにつれ、compacted colored de Bruijn graphは、これらのゲノムの比較ゲノム解析を行うための基礎として利用されるようになってきている。これまでにリファレンス配列からcompacted colored de Bruijn graphを構築するアルゴリズムは開発されているが、特にde Bruijnグラフを構築するゲノムの数や規模が大きくなるにつれて、メモリや実行時の性能に改善の余地があると考えられる。本研究では、Cuttlefishに実装されている新しいアルゴリズムを紹介する。Cuttlefishは、de Bruijn graphの頂点を有限状態オートマトンとしてモデル化し、オートマトンの状態空間を制約することで、非常に少ないメモリ使用量で遷移状態を追跡できるようにした。また、Cuttlefishは高速で、高度な並列化が可能である。実験結果は、既存のアプローチよりも、特に入力参照の数や規模が大きくなるにつれて、アルゴリズムのスケーリングが優れていることを示している。例えば、典型的な共有メモリ型計算機では、Cuttlefishは7時間以内に100のヒトゲノムの圧縮グラフを構築し、29GBのメモリを使用した。また、11種類の針葉樹植物ゲノムを対象にCuttlefishを適用したところ、~84GBのメモリを使用して11時間以内に圧縮グラフを構築することができたが、他のツールでは16時間以上かかり、~289GBのメモリを使用していた。

 CuttlefishはC++14で書かれており、https://github.com/COMBINE-lab/cuttlefishオープンソースライセンスで利用可能である。

 

インストール

ubuntu18.04LTSでテストした。kmc3はcondaで導入した。cmakeは3.12以上を要求されたため、Cmake HP(リンク)から最新版のバイナリをダウンロードして使った。

依存

Github

git clone https://github.com/COMBINE-lab/cuttlefish.git
cd cuttlefish/
mkdir build
cd build
cmake ..
make install
cd src/

./cuttlefish build

$ ./cuttlefish build

No value

 

Usage :

Efficiently construct the compacted de Bruijn graph from references

Usage:

  cuttlefish build [OPTION...]

 

  -r, --refs arg      reference files (default: "")

  -l, --lists arg     reference file lists (default: "")

  -d, --dirs arg      reference file directories (default: "")

  -k, --kmer_len arg  k-mer length

  -s, --kmc_db arg    set of k-mers (KMC database) prefix

  -t, --threads arg   number of threads to use (default: 1)

  -o, --output arg    output file

  -f, --format arg    output format (0: txt, 1: GFAv1, 2: GFAv2) (default: 0)

  -w, --work_dir arg  working directory (default: .)

      --mph arg       minimal perfect hash (BBHash) file (optional) (default:

                      "")

      --buckets arg   hash table buckets (cuttlefish) file (optional)

                      (default: "")

  -h, --help          print usage

 

 

 

実行方法

mkdir temp
kmc -k21 -m100 -fm -ci0 -t20 input.fq kmcoutput temp/
cuttlefish build -k 21 -o kmcoutput -s cuttlefishoutput -f 0

 

引用

Cuttlefish: Fast, parallel, and low-memory compaction of de Bruijn graphs from large-scale genome collections

Jamshed Khan, Rob Patro

bioRxiv, Posted October 22, 2020