macでインフォマティクス

macでインフォマティクス

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

メタゲノムのビニングを行う COCACOLA

 

 アセンブリはコンティグを生成するが、それ以上の分類学的なプロファイリングや機能解析のためには、OTUに分類することが重要である。このOTUクラスタリングはビニングとも呼ばれる。しかしコンティグの正確なビニングは、ゲノム中のリピート配列、シークエンシングエラー、同じ種内の株間レベル変動などによるキメラアセンブリなどの理由のために依然として困難である。現在利用可能なビニング手法は、分類手法とクラスタリング手法に大別される。分類アプローチ(Classification approaches )はtaxonomy依存であり、すなわち、コンティグまたはリードから有意なtaxonへの割り当てに参照するデータベースが必要である。分類は、配列同一性による相同性(最も一般的な分類学的祖先に割り当てるMEGANなど)、またはオリゴヌクレオチド組成パターンおよび分類学的cladeのようなゲノムシグネチャーに基づく分類(PhyloPythiaやkrakenなど)がある。クラスタリングアプローチは参照データベースまたは分類学情報は必要ない。クラスタリングアプローチは、GC含量、テトラマー組成(論文より Albertsen et al、2013; Chatterji et al、2008; Yang et al、2010)またはInterpolated Markov Models(Kelley and Salzberg、2010)からのコンティグカバレッジプロファイル(Baran and Halperin、2012; Wu and Ye、2011)を利用する。

 最近ではコンティグのカバレッジプロファイルを用いてビニングする方法が開発されている。この考え方は、2つのコンティグが同じゲノムに由来する場合、複数のメタゲノムサンプルにわたるそれらのカバレッジプロファイルが高度に相関していることである。この方法は、コンティグプロファイルをテトラマー頻度と統合することによってさらに改善され得る。GroopM(Imelfort et al。、2014)は、視覚化されインタラクティブなパイプライン持ち、ユーザーは専門家の下でビンをマージして分割できる。他方、熟練者の介入がなければ、GroopMの自動ビニング結果はCONCOCTほど満足できるものではない(Alneberg et al、2014)。 CONCOCT(Alneberg et al、2014)は、コンティグをビンにクラスタリングするためにガウス混合モデル(GMM)を利用する。また、CONCOCTは、変分ベイズモデルの選択によって最適なOTU数を自動的に決定する。 MetaBAT(Kang et al、2015)は、対のコンティグについての積分距離を計算し、次いで、modifiled K-medoids algorithmによって反復的にコンティグをクラスター化する。 MaxBin(Wu et al。、2015)は同じゲノム間およびゲノム間の距離の分布を比較している。

 COCACOLAはシーケンスの構成、カバレッジ、Co-alignment、および複数のサンプルにわたるペアエンドリンケージを組み込んでいる。デフォルトでは、COCACOLAは、複数のサンプルにわたって配列合成とカバレッジを使用してビニングを実行する。CONCOCT、GroopM、MaxBin、MetaBATと比較されており、Precision、recallでよりよい成績を出し、また、スケーラブルかつ高速であると示されている。

 

 

インストール

 ubuntu16.0.4にて、conda createでpython2.7.15環境を作ってテストした。

本体 Github

ここではPythonバージョンをインストールする。

#conda createで仮想環境を作る
conda create -n cocacola_env -y python=2.7.14
source activate cocacola_env

#他の依存
conda install -y numpy scipy pandas scikit-learn cvxopt

python版COCACOLAはdropboxからダウンロードする。

link => here

docker imageもある。

docker pull bilalarxd/cocacola

python COCACOLA-python/cocacola.py

# python COCACOLA-python/cocacola.py 

usage: cocacola.py [-h] [--contig_file CONTIG_FILE]

                   [--abundance_profiles ABUNDANCE_PROFILES]

                   [--composition_profiles COMPOSITION_PROFILES]

                   [--edge_list EDGE_LIST] [--output OUTPUT]

                   [--clusters CLUSTERS]

cocacola.py: error: Data is missing, add file(s) using --contig_file <contig_file> and/or --abundance_profiles <abund_profiles> and/or --composition_profiles <comp_profiles>

(cocacola_env) root@c875fa54ab81:/data# python COCACOLA-python/cocacola.py -h

usage: cocacola.py [-h] [--contig_file CONTIG_FILE]

                   [--abundance_profiles ABUNDANCE_PROFILES]

                   [--composition_profiles COMPOSITION_PROFILES]

                   [--edge_list EDGE_LIST] [--output OUTPUT]

                   [--clusters CLUSTERS]

 

optional arguments:

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

  --contig_file CONTIG_FILE

                        The contigs file.

  --abundance_profiles ABUNDANCE_PROFILES

                        The abundance profiles, containing a table where each

                        row correspond to a contig, and each column correspond

                        to a sample. All values are separated with tabs.

  --composition_profiles COMPOSITION_PROFILES

                        The composition profiles, containing a table where

                        each row correspond to a contig, and each column

                        correspond to the kmer composition of particular kmer.

                        All values are separated with comma.

  --edge_list EDGE_LIST

                        The edges encoding either the co-alignment or the

                        pair-end linkage information, one row for one edge in

                        the format: contig_name_A contig_name_B weight. The

                        edge is undirected.

  --output OUTPUT       The output file, storing the binning result. If not

                        specified, the result is displayed directly on the

                        console.

  --clusters CLUSTERS   specify the number of clusters. If not specified, the

                        cluster number is estimated by single-copy genes.

 

 

テストラン

contigファイル、abundanceファイルとk-merプロファイルファイルを指定する。

cd COCACOLA-python/
python cocacola.py \
--contig_file data/SpeciesMock/input/SpeciesMock_Contigs_cutup_10K_nodup_filter_1K.fasta \
--abundance_profiles data/SpeciesMock/input/cov_inputtableR.tsv \
--composition_profiles data/SpeciesMock/input/kmer_4.csv \
--output data/SpeciesMock/result.csv
  • --abundance_profiles    ABUNDANCE_PROFILES:  The abundance profiles, containing a table where each row correspond to a contig, and each column correspond to a sample. All values are separated with tabs.

  • --composition_profiles    The composition profiles, containing a table where each row correspond to a contig, and each column correspond to the kmer composition of particular kmer. All values are separated with comma.

 

引用

COCACOLA: binning metagenomic contigs using sequence COmposition, read CoverAge, CO-alignment and paired-end read LinkAge

Yang Young Lu Ting Chen Jed A. Fuhrman Fengzhu Sun

Bioinformatics, Volume 33, Issue 6, 15 March 2017, Pages 791–798