macでインフォマティクス

macでインフォマティクス

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

k-merを使い 進化距離や相同性を高速計算する Kmer-db

Preprintより 

 何千もの異なる生物のシーケンシング解析の過程で大量のデータが生成された(100K Pathogen Genome Project(Weimer el al、2017、NCBI Pathogen Detection(https://www.ncbi.nlm.nih.gov/ pathogens) )、これは迅速な分析方法を要求する。 k-merと呼ばれる短いヌクレオチド配列のサブストリングは、ゲノムやシークエンシングリードのいずれかから抽出でき、アセンブリフリーアプローチを可能にするため、この領域で一般に使用されている。これらは、生物間の進化的距離の正確な近似を可能にするため、系統再構成(Mash(Ondov et al。、2016)(MASH紹介))、バクテリアの同定(StrainSeeker(Roosaare et al、2017)(StrainSeeker紹介))、またメタゲノム分類MetaCache(Muller et al、2017))などに利用されている。重要なことに、ゲノムが十分に近い場合、許容可能な精度を得るにはk-merの小さなサブセットで十分であり、処理時間が大幅に短縮されることである。それとは関係なく、シーケンシングされたゲノムの数と多様性が継続的に増加しているので、既存のアルゴリズムスループットは間もなくボトルネックに達するであろう。
 著者らは、シーケンシングされた大量のサンプルコレクションのk-merベースの解析を行うツールであるKmer-dbを紹介する。新規の圧縮されたk-mers表現と並列実装のおかげで、本ソフトウェアは一般的なワークステーションマシンを使って数千のバクテリアゲノムを数分で処理することができる。 

 

公式HP

f:id:kazumaxneo:20180714114310p:plain

 Kmer-dbに関するツイート。

 

インストール

ubuntu18.04に導入した。

依存

  • KMC (Optional) 

KMCはAnaconda環境ならmaclinuxともにcondaで導入可能(リンク)。またはバイナリをダウンロードしてパスの通ったディレクトリに移動する。

conda install -c bioconda kmc

 本体 Github

リリースからlinux用のバイナリをダウンロードする。

https://github.com/refresh-bio/kmer-db/releases

"kmer-db"とリネームして、パスの通ったディレクトリに移動した。

 

 

ラン 

1、データベースの構築

3つの方法に対応している。"-f"でサンプリングレートを調整できる(defaultは1)。

方法1、 ゲノムFASTAからデータベースを構築する。

kmer-db build -k 18 sample_list_file test_database
  • サンプルリストファイルは1行に1ファイルずつゲノムのFASTAファイルを記載したテキストファイル。拡張子は.fnaか.fna.gzまたは.gz。例えばゲノムファイルがsample1.fnaなら"sampke1"だけ記載すれば認識するように書かれていたが、実際はほとんどん認識せず、実行すると途中のログにfailedが出た(エラーでも普通にランは終わるので注意)。成功したのは、例えば"test.fna"ファイルならgz圧縮して"test.fna.gz"を作成し、 sample_list fileには"test.fna"と書いた時のみ workし、"test"だとfailだった(version1.0でテスト)。
  • リストファイルと.fnaファイルが同じディレクトリにないと機能しない。違う時はフルパスで記載する(リンク)。
  • ランが終わると、指定した名前のファイルができる。ここではtest_database。

 方法2、 KMC(紹介)を使ってk-merファイルからデータベースを構築する(テスト時はエラーを起こしました。方法1と同じかと思いましたが、もしかするとサンプルリスト表記方法が違うかもしれません)。

#先にtempoを作らないとエラーになる
mkdir working_directory

#k=20のカウント。fastaを使用する。
kmc -fa -k20 -m24 -ci0 input.fasta database working_directory/
#-k k-mer length (k from 1 to 256; default: 25)
#-m max amount of RAM in GB (from 1 to 1024); default: 12
#-ci exclude k-mers occurring less than <value> times (default: 2)
#-f input in FASTA format (-fa), FASTQ format (-fq) or multi FASTA (-fm); default: FASTQ


#データベース構築
kmer-db build-kmer kmc_sample_list_file database
  • 論文のsupplementary dataでは、one2allを実行する際、シーケンスエラーを考慮して"-ci5"のオプションをつけてkmcを実行している(supplementary data(リンク))。

方法3、 minhash k-merファイルから データベースを構築する。

Githubと実行時のヘルプコマンドを参照。

 

2-A、全データベースサンプルのsimilarities/distancesを調べる(all vs all)。

  • all2all - calculating number of common k-mers between all samples in the database
  • distance - calculating similarities/distances.
#all2allコマンンド実行
kmer-db all2all test_database matrix.csv

#matrix.csvができる。

#distanceコマンド実行。
kmer-db distance matrix.csv
#matrix.csv.min、matrix.csv.max、matrix.csv.mash、matrix.csv.jaccard、matrix.csv.cosineができる。

 

2-B、ある配列(ゲノムのfastaやシーケンスデータのfastq)とデータベース配列のsimilarities/distancesを調べる。

  • one2all - calculating number of common kmers between single sample and all the samples in the database,
#salmonella.fastaとtest_databaseのゲノムとの相同性/距離を調べる。

#KMCを使い、salmonellaのk-merファイルを作成
mkdir working_directory #先にtempoを作らないとエラーになる
kmc -fa -k20 -m24 -ci1 salmonella.fasta salmonella working_directory/
#salmonella.kmc_sufとsalmonella.kmc_preができる。

#one2allコマンンド実行
kmer-db one2all test_database salmonella vector.csv
#vector.csvができる

#distanceコマンド実行。
kmer-db distance vector.csv
#vector.csv.min、vector.csv.max、vector.csv.mash、vector.csv.jaccard、vector.csv.cosineができる。


#ゲノムではなくシーケンスデータとデータベース間で進化距離を調べるなら、kmc実行時のパラメータを変更してください。
kmc -fq -k20 -m24 -ci5 input.fq output_name working_directory/
kmer-db one2all test_database output_name vector.csv
kmer-db distance vector.csv

 

まだAcceptされて間もないためfull textが読めてないが、supplementaryを読む限り、論文ではNCBIのPathogen Detectionデータベース(リンク)に登録されたゲノムをダウンロードしてall2allのコマンドの結果を評価している。one2allについては、構築したpathogenデータベースを使いSRAに登録されたいくつかの病原性バクテリアのシーケンスデータを調べている。

 

引用

Kmer-db: instant evolutionary distance estimation

Sebastian Deorowicz Adam Gudyś Maciej Długosz Marek Kokot Agnieszka Danek

Bioinformatics, bty610

 https://academic.oup.com/bioinformatics/advance-article-abstract/doi/10.1093/bioinformatics/bty610/5050791?redirectedFrom=PDF

 Preprint

https://www.biorxiv.org/content/biorxiv/early/2018/02/12/263590.full.pdf

 

参考

What is the Pathogen Detection project?

FAQ - Pathogen Detection - NCBI