macでインフォマティクス

macでインフォマティクス

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

k-tuplesに基づきビニング結果を改善する d2SBin

 

 メタゲノミクスシーケンシングは、微生物群集の深い洞察を提供する[論文より ref.1]。メタゲノミクスデータ内の分類学的構造を調べるための重要なステップは、アセンブリされたコンティグをビン(bins)と呼ばれる別個のクラスターに割り当てることである[ref.2]。これらのビンは、種、属、またはそれ以上の分類群を表す[ref.3]。したがって、メタゲノミクス研究ではコンティグの効率的かつ正確なビニングが不可欠である。

 コンティグのビニングは、同じ種のゲノム内の、または配列間の反復配列領域、シークエンシングエラー、および菌株レベルの変動のために依然として困難である[ref.4]。多くの研究でビニングが報告されており、本質的に2つの異なる戦略[ref.5]:「Taxonomy依存型」supervised の分類と「Taxonomy非依存」unsupervised のクラスタリングに焦点を当てている。 Taxonomy依存型の研究は、配列アラインメント[ref.6]、系統発生モデル[ref.7,8]またはオリゴヌクレオチドパターン[ref.9]に基づいている。 Taxonomy非依存の研究は、配列組成[ref.10-14]、存在量[ref.15]、または配列組成および存在量の両方のハイブリッドに基づいて、コンティグから特徴を抽出してビンを推測する[ref.4,5,16-18]。したがって、これらのアプローチは、不完全または未培養ゲノムからのビンコンティグに適用することができる。 COCACOLA [ref.5]、CONCOCT [ref.4]、MaxBin2.0 [ref.18]、GroopM [ref.16]などのいくつかのハイブリッドビニングツールは、複数の関連するメタゲノムサンプルに基づいてコンティグをビンするように設計されている。同様のカバレッジプロファイルを有するコンティグは、同じゲノムから来る可能性がより高い。これまでの研究では、複数の関連するメタゲノムにわたる共変カバレッジプロファイルがコンティグビニングで重要な役割を果たすことが示されている[ref.4,5]。関連する複数のサンプルは、類似の微生物から構成されているが、存在量のレベルは異なる、所与の生態系の時間的または空間的サンプルでなければならない[ref.16]。しかしながら、多くの状況において、関連する複数のサンプルが必要な数で利用可能でない可能性があり、その結果、単一のメタゲノムに基づくコンティグビンニングが依然として重要である。

 単一のサンプルに基づくContigビニングツールは、一般的に3つの戦略のうちの1つに従う。 1)配列組成。これは通常、コンティグのゲノムシグネチャとしてk = 2〜6のkタプル(k-mers)の頻度として表される。 MetaWatt [ref.12]およびSCIMM [ref.11]は、多変量統計および/または補間されたバックグラウンドゲノムのマルコフモデルを構築してコンティグをビンした。 Metacluster 3.0 [ref.14]は、kタプル頻度ベクトルとスピアマン相関を用いてコンティグをクラスター化した。 LikelyBin [ref.10]は2から5タプルに基づいてマルコフ連鎖モンテカルロ法を利用した。 2)存在量。 AbundanceBin [ref.15]は、Expectation Maximization(EM)アルゴリズムを用いた20タプルのポアソン分布に基づいて、同じ環境に存在する種の相対存在量レベルを推定した。 MBBC [ref.19]パッケージは、ポアソン過程を用いて各ゲノムの量を推定した。存在量に基づくすべてのツールは、コンティグをアセンブルするのではなく、ショートやロングのリードに対応するように設計されている。 3)組成と存在量のハイブリッド。 Maxbin1.0 [ref.17]は、単一コピーマーカー遺伝子とExpectation Maximization(EM)アルゴリズムを使用してゲノムビンを作成するために、4タプル頻度と足場カバレッジレベルを組み合わせた。 MyCC [20]は、1つまたは複数サンプルのゲノムシグネチャ、マーカー遺伝子および任意のコンティグカバレッジを組み合わせたものである。

 k-タプル組成を用いたコンティグビニングは、相対配列組成が同じゲノムの異なる領域にわたって類似しているが、異なるゲノム間では異なるという観察に基づいている[ref.21,22]。 kタプルの頻度ベクトルは、シーケンス構成の表現の1つである。一般に、現在のツールはkタプルの頻度を直接使用するが、これは相対的ではなく絶対的なシーケンス構成を表している。ここで、「絶対」頻度は、すべてのkタプルの出現回数に対するkタプルの出現回数を指す。他方、「相対的な」頻度は、kタプルの観測頻度と、所与のバックグラウンドモデルの下での対応する予想頻度との間の差を指す。同じビン内のコンティグは、1つのクラス、種または株などの同じ分類群からのものである。したがって、同じビンからのコンティグは、一貫したバックグラウンドモデルに従うことが期待される。 CVTree、d * 2、dS2などのkタプルの相対頻度に基づくいくつかの配列の相違度測定法が開発されており、最近の研究[ref.23-27]は、dS2が他の非類似性測定法相対的なkタプル頻度でしたがって、本研究では、相対的な配列組成をモデル化し、単一のメタゲノム試料についてdS2とのコンティグ間の相違度を測定しようと試みた。 dS2は、マルコフと補間マルコフ連鎖を用いてバックグラウンドゲノム[23]をモデル化することによって、2つの配列間の相違性または次世代配列決定データを測定するように設計された。以前の研究は、ゲノム間の暴露群および勾配関係[ref.24,25]、メタゲノム[ref.28]およびメタトランスクリプトーム[ref.26,27]におけるdS2の有効性を立証した。しかし、dS2を直接用いたコンティグのビニングは、計算上高価であり、大規模なメタゲノミクス研究では、シーケンスのマルコフバックグラウンドモデルを構築し、kタプルの期待カウントを計算する必要があるため実用的ではない。一方、絶対kタプル頻度に基づく多くのビニングツールおよびそのような方法の結果は妥当である。それでも、これらのツールと方法は、dS2の相違性を使用することで改善できる。したがって、本研究では、コンティグをゼロからビニングしない。代わりに、既存のビニングツールの出力に基づいてコンティグビンを調整しようとする。 k-タプル頻度ベクトルに基づいてマルコフ連鎖を用いて各コンティグをモデル化する。ビンの中心は、このビン内のすべてのコンティグの平均kタプル頻度ベクトルによって表され、マルコフ連鎖でもモデル化される。次に、dS2は、マルコフ連鎖によって表されるように、相対シーケンス構成に基づいてコンティグとビンの中心との間の相違を測定する。最後に、K平均クラスタリングアルゴリズムを適用して、dS2の非類似性に基づいてコンティグをクラスタリングする。ここで、Kはクラスタの数である。このようなアプローチは、一方で、dS2を直接使用する広範な計算複雑性の問題を克服し、他方では、初期ビニング結果をさらに改善する。この方法は、https://github.com/kunWangkun/d2SBinで入手可能なdS2Binと呼ばれるオープンソースパッケージとして開発されている。

最初に、これまで既存のツール評価に使われてきた6つの合成データセットと実際のデータセットを使用した。 5つの代表的なビニングツール: シーケンス構成(MetaCluster3.0 [ref.14]、MetaWatt [ref.12]、SCIMM [ref.11])および配列組成と存在量のハイブリッド(MaxBin1.0 [ref.17])を用いてビニング結果に調整に本手法が適用された。 MyCC [ref.20])を使用した(一部略)。dS2Binは、5つのビニングツールに適用され、6つのデータセット30回のテスト実験のうち28回でビニング結果を改善し、リコール、精度、およびARI(Adjusted Rand Index)のパフォーマンスが大幅に向上した。

 

インストール

cent OS6でテストした。

依存

Github

https://github.com/kunWangkun/d2SBin

git clone https://github.com/kunWangkun/d2SBin.git
cd d2SBin/
unrar x d2SBin_SourceCode.rar
cd d2SBin_SourceCode/ 

python d2SBin.py -h

$ python d2SBin.py -h

Usage: d2SBin.py [options]

 

Options:

  -h, --help            show this help message and exit

  -s CONTIG_FILES_LIST, --inputList_withSeq=CONTIG_FILES_LIST

                        list of contig files with sequence after Binning with

                        other tools

  -c INPUT_ORIGINAL_FILE, --contig_Seq=INPUT_ORIGINAL_FILE

                        fasta file with original sequence.

  -n BINNING_RESULT_FILELIST, --inputList_noSeq=BINNING_RESULT_FILELIST

                        list of contig files without sequence after Binning

                        with other tools

  -k K_OF_KTUPLE, --kofKTuple=K_OF_KTUPLE

                        the value k of KTuple

  -r MARKOV_MODEL_ORDER, --order=MARKOV_MODEL_ORDER

                        the order of markov model(0,1,2,3,k-2)

  -i ITERA_NUM, --iteraNum=ITERA_NUM

                        the maximum number of iteration

  -o OUTPUT_FILES, --output=OUTPUT_FILES

                        output dir

python evaluation.py 

$ python evaluation.py 

evaluation.py: error: missing required command-line argument.

Usage: evaluation.py [options]

 

Options:

  -h, --help            show this help message and exit

  -c RESULT_FILE, --binning_result=RESULT_FILE

                        binning result file. eg, d2SBin.k4.r0.txt (format1

                        outputfile)

  -l RESULT_LISTFILE, --binning_result_filelist=RESULT_LISTFILE

                        list of binning result files. eg,

                        MaxBin_resultListFile.txt (format2 outputfile)

  -t LABEL_FILE, --ture_label=LABEL_FILE

                        true label of contigs

  -e EVA_OUTPUT, --eva_output_dir=EVA_OUTPUT

                        the path of evaluation file

 

 

ラン

MetaClusterで分析されたテストデータをダウンロードする(メタゲノムシーケンスデータをアセンブルして、MetaCulsterでbinningして分けたFASTA)。

wget https://raw.githubusercontent.com/kunWangkun/d2SBin/master/testing_data.rar
unrar x testing_data.rar

 解凍した。MaxBinでビニングしたデータも用意されている(下はosxのFInderだがcent OSでテストしています)。

f:id:kazumaxneo:20180512111608j:plain

MetaClusterの結果のFASTAは、リストファイル。以下のようにconitgのリストとして出力されている。

$ head -n 5 testing_data/80x_output_of_MetaCluster/80x.fasta-out000.fa 

>NODE_40_length_27837_cov_74.789093

>NODE_44_length_27044_cov_75.979881

>NODE_50_length_1811_cov_75.797905

>NODE_53_length_9109_cov_75.853004

>NODE_57_length_28535_cov_75.617104

 

まずlsコマンドでFASTAのパスをリストアップしたファイルを作成する。

ls testing_data/80x_output_of_MetaCluster/80x.fasta-out*fa > MetaCluster_80x_input_list.txt

リストファイルを指定して、 binning結果を評価する。

python evaluation.py -l MetaCluster_80x_input_list.txt -t testing_data/80x_real_label.loc

Evalution.txt が出力される。

$ cat Evalution.txt 

contig_num    genome_num    bin_num    Recall    Precision    ARI

7721    10    10    0.8953503432197902    0.9375728532573501    0.9051298555008835uesaka-no-Air-2:d2SBin_SourceCode kazumaxneo$

 ビニングを実行する。

#出力ディレクトリの作成
mkdir d2SBin_MetaCluster_80x_output

python d2SBin.py -n MetaCluster_80x_input_list.txt -c testing_data/80x.fasta -k 6 -r 0 -i 5 -o d2SBin_MetaCluster_80x_output/

再ビニングされた。

$ ls -hl d2SBin_MetaCluster_80x_output

total 34M

-rw-r--r-- 1 uesaka user 3.1M May 12 11:25 d2SBin.k6.r0.out0.fasta

-rw-r--r-- 1 uesaka user 3.0M May 12 11:25 d2SBin.k6.r0.out1.fasta

-rw-r--r-- 1 uesaka user 4.9M May 12 11:25 d2SBin.k6.r0.out2.fasta

-rw-r--r-- 1 uesaka user 4.2M May 12 11:25 d2SBin.k6.r0.out3.fasta

-rw-r--r-- 1 uesaka user 3.3M May 12 11:25 d2SBin.k6.r0.out4.fasta

-rw-r--r-- 1 uesaka user 2.0M May 12 11:25 d2SBin.k6.r0.out5.fasta

-rw-r--r-- 1 uesaka user 7.0M May 12 11:25 d2SBin.k6.r0.out6.fasta

-rw-r--r-- 1 uesaka user 2.0M May 12 11:25 d2SBin.k6.r0.out7.fasta

-rw-r--r-- 1 uesaka user 2.0M May 12 11:25 d2SBin.k6.r0.out8.fasta

-rw-r--r-- 1 uesaka user 2.0M May 12 11:25 d2SBin.k6.r0.out9.fasta

-rw-r--r-- 1 uesaka user 288K May 12 11:25 d2SBin.out.k6.r0.txt

drwxr-xr-x 2 uesaka user 4.0K May 12 11:13 temp

Metaclusterの結果はcontigのリストファイルだが、d2SBinの出力はFASTA配列が出力されるので、Metaclusterの出力よりファイルサイズが大幅に増加している。

 

結果を評価する。

python evaluation.py -c d2SBin_MetaCluster_80x_output/d2SBin.out.k6.r0.txt -t testing_data/80x_real_label.loc 

$ python evaluation.py -c d2SBin_MetaCluster_80x_output/d2SBin.out.k6.r0.txt -t testing_data/80x_real_label.loc

contig_num    genome_num    bin_num    Recall    Precision    ARI

7721    10    10    0.9269524672969822    0.9660665716876052    0.9363782530967537

 

 

引用

Improving contig binning of metagenomic data using dS2 oligonucleotide frequency dissimilarity

Ying Wang, Kun Wang, Yang Young Lu, and Fengzhu Sun

BMC Bioinformatics. 2017; 18: 425.