macでインフォマティクス

macでインフォマティクス

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

半教師あり正規化カットでメタゲノムビニングする SolidBin

2025/9/26 追記

 

 微生物群集は多数の微生物のmixtureからなる。メタゲノミクス研究では、遺伝物質は微生物群集から直接抽出され、ハイスループットシークエンシング技術を使用してシークエンスされ、異なるリード長の大量のシークエンスリードが得られる。
 通常、メタゲノムデータ解析の最初のステップは、リードのオーバーラップ情報に基づいてリードをコンティグと呼ばれる比較的長いゲノムフラグメントにアセンブリする「リードアセンブリ」で、次に、同じビンにゲノムまたはcloselt relatedなゲノムを仕分ける。 3番目のステップでは、リードを既知のゲノム配列またはビン内のコンティグにマッピングし、ゲノムとゲノムビンの相対存在量プロファイルを各サンプルで推定する。最後に、統計学的方法を用いて、ゲノム/ビンの存在量プロファイルを個体の環境因子または表現型と関連付ける。メタゲノム研究は、ヒトの腸内の微生物群集がいくつかの疾患(Khor et al、2011; Jostins et al、2012)および免疫療法の効果(Wilck et al、2017; Chen et al)と有意に関連していることを示した。本稿では、メタゲノムデータ解析の通常の第2段階であるコンティグビニングに焦点を当てる。
 利用可能なコンティグビニング方法は、2つの大きなカテゴリーに分類することができる:MEGAN(Husons et al, 2007)のようなコンティグを既知のリファレンスデータベースにマッピングするtaxonomy依存の方法(教師あり方法とも呼ばれる)、MaxBin 、CONCOCT、MetaBAT、COCACOLAおよびMBC3Cなどの教師なし方法。これらの方法にはそれぞれ独自の限界がある。既知のゲノムは限られており、多数のゲノムが未だに未知であるため、多くの未知コンティグが存在する。さらに、アラインメントは計算上高価であり、したがってアラインメントに基づくコンティニングビニング方法は一般に遅い。教師なしビニング方法は上記の欠点のいくつかを部分的に克服することができる。既存の教師なしビニング方法は、いくつかのコンティグの既知のゲノムへのアラインメントなど、利用可能な追加の生物学的情報を十分に活用していないため、ビニング性能が向上する可能性がある。したがって、未知のゲノムからの大量のコンティグを含むデータセットに使用できるだけでなく、より良いビニング性能のためにアラインメントから利用可能な生物学的情報を利用することができる効果的なコンティグビニングアプローチを開発することが不可欠である。

 この問題に取り組むために、本著者らは、ペアワイズ組み入れによってクラスタリング性能を改善することができる様々な半教師クラスタリング研究(Wagstaff et al、2001; Gu et al、2013)に触発され、新規コンティグビニング方法SolidBinを開発した。

 

インストール

本体 Github

python3.6の仮想環境を作って導入することが推奨されている。

git clone https://github.com/sufforest/SolidBin
cd SolidBin/
conda create -n solidbin -y python=3.6 numpy pandas scikit-learn scipy
conda activate solidbin

>python SolidBin.py -h

$ python SolidBin.py -h

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

                   [--coverage_profiles COVERAGE_PROFILES]

                   [--composition_profiles COMPOSITION_PROFILES]

                   [--priori_ml_list PRIORI_ML_LIST]

                   [--priori_cl_list PRIORI_CL_LIST] [--output OUTPUT]

                   [--log LOG] [--clusters CLUSTERS] [-a A] [-b B] [--use_sfs]

 

optional arguments:

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

  --contig_file CONTIG_FILE

                        The contigs file.

  --coverage_profiles COVERAGE_PROFILES

                        The coverage 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.

  --priori_ml_list PRIORI_ML_LIST

                        The edges encoding either the co-alignment or other

                        priori information, one row of an edge is in the

                        format: contig_name_A contig_name_B 1. The edge is

                        undirected.

  --priori_cl_list PRIORI_CL_LIST

                        The cannot-link information, one row of an edge is in

                        the format: contig_name_A contig_name_B 1. The edge is

                        undirected.

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

  --log LOG             Specify where to store log file

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

                        cluster number is estimated by single-copy genes.

  -a A                  weight of must-link constraints

  -b B                  weight of cannot-link constraints

  --use_sfs             use SFS as constraints

 

docker imageも 公開されている。

docker pull sufforest/solidbin

 

テストラン

naiveモードでの実行

git clone https://github.com/sufforest/SolidBin
 
#docker立ち上げ(shシェル)

docker run -itv $PWD:/data --rm -w /data sufforest/solidbin sh
cd SolidBin/test_data/input/
cp -r ../../auxiliary/ .

#run
python ../../SolidBin.py \
--contig_file final.contigs_1000.fa \
--coverage_profiles coverage_f1000.tsv \
--composition_profiles kmer_4_f1000.csv \
--output result.tsv \
--log log.txt
  • --output    The output file, storing the binning result.
  • --contig_file    The contigs file.

     

  • --coverage_profiles    The coverage_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.

  • --clusters    Specify the number of clusters. If not specified, the cluster number is estimated by single-copy genes.

  • --log    Specify where to store log file          

出力例: result.tsv

 

SolidBinの欄にはカバレッジプロファイルcompositionプロファイル(コンティグの 配列組成情報)を必要とする。coverageファイルはscripts/gen_cov.shでBAMファイルから生成できる。

sh scripts/gen_cov.sh

同様に、composition_profilesファイルはgen_cov.shで生成できる。

sh scripts/run.sh test_data/input/final.contigs.fa 1000 4 

 

引用

SolidBin: Improving Metagenome Binning with Semi-supervised Normalized Cut
Ziye Wang, Zhengyang Wang, Yang Young Lu, Fengzhu Sun, Shanfeng Zhu
Bioinformatics, Published: 12 April 2019