微生物群集は複雑であるため、次世代シーケンサーデータを用いたde novoアセンブリでは、完全な微生物ゲノムを作成することができないのが一般的である。メタゲノム解析のビニングは、コンティグの塩基組成とリードデプスに基づき、断片化したコンティグをクラスターに分類し、微生物ゲノムを表現するために不可欠なステップとなる。これらの機能は長いコンティグには有効であるが、短いコンティグには安定しない。コンティグは、配列のオーバーラップによって(アセンブリグラフ)、またはペアエンドリードによって(PEグラフ)リンクすることができ、リンクしたコンティグは同じクラスターに由来する確率が高い。
アセンブリグラフとPEグラフの両方を統合した、マルチビューグラフベースのメタゲノムコンティグビニングアルゴリズムであるMETAMVGLを開発した。METAMVGLは、短いコンティグを救い、デッドエンドからのビニングエラーを修正することができる。METAMVGLは、2つのグラフの重みを自動的に学習し、均一なマルチビューラベル伝播フレームワークでコンティグラベルを予測する。実験では、METAMVGLが結合グラフからより多くの信頼性の高いエッジを利用し、デッドエンドをメイングラフにリンクすることが確認された。また、シミュレーション、2つの模擬コミュニティ、Sharon infant fecal sampleのメタゲノム配列データにおいて、MaxBin2、MetaBAT2、MyCC、CONCOCT、SolidBin、GraphBinなどの多くの最先端コンティグビニングアルゴリズムより優れていた。METAMVGLは、シミュレーション、模擬コミュニティ、乳児の糞便サンプルのメタゲノム配列データにおいて、短いコンティグのビニングを顕著に改善し、他の既存のコンティグビニングツールを凌駕することを実証した。
インストール
ubuntu18でテストした。
依存
- GCC with C++11, HTSlib.
- Python3 with numpy, scipy, networkx and Bio.
- Initial binning tools MaxBin2 and MetaBat2.
- Alignment tools bwa and samtools.
#HTSlibのインストール
wget https://github.com/samtools/samtools/releases/download/1.15.1/samtools-1.15.1.tar.bz2
tar -xvf samtools-1.15.1.tar.bz2
cd samtools-1.15.1/htslib-1.10/
make -j
sudo make install
#もしくはconda(link)
mamba install -c bioconda htslib -y
#numpy, scipy, networkx and Bio
mamba install numpy scipy networkx -y
mamba install -c bioconda Biopython -y
#MEGAHIT
mamba install -c bioconda megahit
#Maxbin2 *1
mamba install -c bioconda maxbin2 -y
#Metabat2
mamba install -c bioconda metabat2 -y
#本体
git clone https://github.com/ZhangZhenmiao/METAMVGL.git
cd METAMVGL && make && chmod +x *.py
export PATH=$PWD:$PATH
> ./run_METAMVGL.py -h
usage: run_METAMVGL.py [-h] -a ASSEMBLER [-b INITIAL_BINNING] -r1 READS1 -r2 READS2 -c CONTIGS [-p PATHS] -g ASSEMBLY_GRAPH [-m MAPPING_QUALITY] [-s IDENTITY] [-i INSERT_SIZE] [-n PE] [-u MAX_ITER] [-d THRESHOLD] [-t THREADS] -o OUTPUT
optional arguments:
-h, --help show this help message and exit
-a ASSEMBLER, --assembler ASSEMBLER
the assembler that was used to generate contigs (choose from metaSPAdes and MEGAHIT)
-b INITIAL_BINNING, --initial_binning INITIAL_BINNING
the initial binning tool to create initial binning results (choose from MetaBat2 and MaxBin2, default MetaBat2)
-r1 READS1, --reads1 READS1
the path to reads1
-r2 READS2, --reads2 READS2
the path to reads2
-c CONTIGS, --contigs CONTIGS
the path to the contigs
-p PATHS, --paths PATHS
the path to the contigs.paths file under metaSPAdes output folder, needed for metaSPAdes
-g ASSEMBLY_GRAPH, --assembly_graph ASSEMBLY_GRAPH
the path to the assembly_graph.fastg file under metaSPAdes output folder (metaSPAdes), or fastg format file ceretad by megahit_toolkit (MEGAHIT)
-m MAPPING_QUALITY, --mapping_quality MAPPING_QUALITY
the threshold of mapping quality for reads alignment (default 10)
-s IDENTITY, --identity IDENTITY
the threshold of alignment identity for reads alignment (default 0.95)
-i INSERT_SIZE, --insert_size INSERT_SIZE
the insert size of paired-end reads (default 270)
-n PE, --pe PE the minimum number of paired-end reads to support a PE link (default 3)
-u MAX_ITER, --max_iter MAX_ITER
the maximun number of iteration of label propagation (default 100)
-d THRESHOLD, --threshold THRESHOLD
the threshold to stop iteration of label propagation (default 0.00000001)
-t THREADS, --threads THREADS
the number of threads for initial binning tools (default 16)
-o OUTPUT, --output OUTPUT
output dir
実行方法
前もってメタゲノムのアセンブルとビニングを実行しておく。初期ビニングは任意のビニングツールを使用できる(2でbinのfastaファイルを指定する)。またcontigにショートリードをマッピングしてbamも作っておく。
1、fastgの準備。
metaSPAdesとMEGAHITがサポートされている。metaSPAdesの場合、アセンブリグラフ(assembly_graph.fastg)は出力フォルダに存在する。MEGAHITの場合、アセンブリグラフはfinal.contigs.faからmegahit_toolkitコマンドで作成する。k値を指定する必要がある。ここでは141。
megahit_toolkit contig2fastg 141 final.contigs.fa > final.contigs.fastg
2、ラッパーが用意されており、METAMVGLを1つのコマンドで実行できる。使用するBinnerのパスが通っている必要がある。
#MEGAHIT
run_METAMVGL.py -a megahit -b maxbin2 -r1 reads1.fq.gz -r2 reads2.fq.gz -c final.contigs.fa -g final.contigs.fastg -o outdir -t 32
#metaSPAdes
run_METAMVGL.py -a metaspades -r1 reads1.fq.gz -r2 reads2.fq.gz -c contigs.fasta -p contigs.paths -g assembly_graph.fastg -o outdir -t 32
- -a the assembler that was used to generate contigs (choose from metaSPAdes and MEGAHIT)
- -b the initial binning tool to create initial binning results (choose from MetaBat2 and MaxBin2, default MetaBat2)
- -r1 the path to reads1
- -r2 the path to reads2
- -c the path to the contigs
- -p the path to the contigs.paths file under metaSPAdes output folder, needed for metaSPAdes
- -g the path to the assembly_graph.fastg file under metaSPAdes output folder (metaSPAdes), or fastg format file ceretad by megahit_toolkit (MEGAHIT)
出力例
outdir/
Metabat2/
テストに使ったデータでは、Metabat2単独よりBin数は数十個増えていた(Metabat2単独では250強のbin)。短いcontigの数が増えたため、平均長はやや減少していた。
ステップバイステップで進めることもできる。
2、初期ビニングの結果をMETAMVGLの入力フォーマットに変換する。アセンブラがmetaSPAdesとMEGAHITのどちらかを"--assembler "で指定する。
prepResult.py --binned /path/to/initial_binning_result --assembler MEGAIHT --output output_dir1
出力例
output_dir1/
3、グラフファイルの準備
prep_graph --assembler=MEGAIHT --assembly-graph=string --bam=input.bam --output=output_dir2
4、Multi viewグラフベースのビニング
METAMVGL.py --contigs final.contigs.fa --assembler MEGAIHT \
--assembly_graph ASSEMBLY_GRAPH --PE_graph output_dir2/PE.graph \
--binned output_dir1/initial_contig_bins.csv --max_iter 100 \
--thresh 0.00000001 --output output_dir3
引用
METAMVGL: a multi-view graph-based metagenomic contig binning algorithm by integrating assembly and paired-end graphs
Zhenmiao Zhang & Lu Zhang
BMC Bioinformatics volume 22, Article number: 378 (2021)
関連
*1
maxbin2の共有ライブラリのエラーは以下で対処
> export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/lib"