macでインフォマティクス

macでインフォマティクス

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

BUSCOを使った系統樹構築ツール Buscogeny

 

 生物間の進化的な関係を正確に解明することは進化生物学の根幹をなすものであり、そのために系統樹が重要なツールとして活用されている。単一遺伝子に基づく系統解析は広く行われているが、特にゲノム構造が複雑あるいは多様な生物においては、進化プロセスの全体像を十分に捉えられないことが少なくない。複数のオーソログ(オルソログ)遺伝子を連結したアラインメント(連結アラインメント)を用いる手法は、より強固な解析基盤を提供するが、その作成には困難が伴う。特に、ゲノム情報が不完全であったりアノテーションの精度が低かったりする分類群(菌類など)では、その傾向が顕著である。こうした課題に対処するため、本著者らはBuscogeny (Busco Phylogeny)を開発した。これは、BUSCOを用いて同定されたシングルコピー・オーソログを利用し、連結アラインメントの作成から系統樹の構築までを自動化するオープンソースのコマンドラインツールである。Buscogenyは、ゲノム品質評価、オーソログ抽出、多重配列アラインメント、ギャップおよび組換え領域のフィルタリングといった主要な工程を統合し、その後の系統推定までを自動的に実行する。ユーザーは解像度の異なるオーソログデータセットを選択したり、フィルタリングの閾値を調整したりできるため、近縁な分類群から遠縁な分類群まで、幅広い対象に柔軟に対応できる。本研究ではアノテーションやゲノムの完全性に大きなばらつきがあるAlternaria属のような複雑なグループを含め、細菌および菌類のゲノムを用いた系統解析において、Buscogenyの有用性を実証した。Buscogenyが提供する効率的かつ再現性の高いワークフローにより、様々な分野の研究者がBUSCOに基づく系統推定を容易に行えるようになり、全ゲノムデータから確かな進化的知見を得ることが可能になる。

 

Buscogeny Workflow.  

(論文より転載)

 

インストール

windows11のWSLに環境を作ってインストールした。

依存

Buscogeny requires the following software and libraries:

  • Biopython
  • pandas
  • matplotlib
  • plotly
  • numpy
  • alive bar
  • mafft
  • iqtree
  • clipkit
  • ClonalFrameML
  • maskrc-svg
  • BUSCO (5.4.0+ for -s correct behaviour) - Note: For odb10 databases please use
  • BUSCO > 5.4.0 and < 5.8.0. For odb12, please use BUSCO 5.8.0+

Github

git clone https://github.com/Jwebster89/Buscogeny.git
cd Buscogeny
mamba create -n buscogeny -c conda-forge -c bioconda python=3.11 biopython pandas numpy matplotlib plotly mafft iqtree busco clipkit maskrc-svg clonalframeml -y
conda activate buscogeny

#alive-progress
python -m pip install alive-progress

> python buscogeny.py --help

usage: buscogeny.py -i INPUT -d DB -o OUTPUT [-h] [-t THREADS] [-g GAPPY_THRESHOLD] [-e EXCLUDE_THRESHOLD] [-s {prot,nucl}] [-r]

        Create Phylogenies from BUSCO output.

        Version: 2.1.0

Required Arguments:

  -i, --input INPUT     Input folder of Genomes

  -d, --db DB           Location of odb database

  -o, --output OUTPUT   Location of output [prefix]_Buscogeny_out

Optional Arguments:

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

  -t, --threads THREADS

                        Number of threads to use. Default 8

  -g, --gappy_threshold GAPPY_THRESHOLD

                        Specifies gaps threshold used by clipkit. Default 0.05

  -e, --exclude_threshold EXCLUDE_THRESHOLD

                        Specifies proportion of alignments an isolate is allowed to be missing from. Default 0.2

  -s, --seq_type {prot,nucl}

                        Alignment using: 'prot' for protein, 'nucl' for nucleotide. Default is 'prot'.

  -r, --rc_filt         Enable recombination filtering

 

 

実行方法

1、系統解析をしたい分類群のBUSCO DBを取得する。

#利用できるデータベースの確認
busco --list-datasets

#ダウンロード、個々では汎用の細菌用bacteria_odb12を指定
busco --download bacteria_odb12 --download_path . --datasets_version odb12

カレントにlineages/bacteria_odb12/ができる。BuscogenyではこのDBパスを-dで指定する。

 

2、Buscogenyのラン。ゲノムのfastaファイルを1つのディレクトリに配置して-iでそのディレクトリを指定する。-dでBUSCO DBを指定する。デフォルトのタンパク質モードではBUSCO proteinが使用される。

# デフォルトのタンパク質モードでラン
python buscogeny.py -i genome_dir -o result_dir -d lineages/bacteria_odb12/ -t 12 -s prot
  • -i     Input folder of Genomes
  • -d    Location of odb database
  • -o    Location of output [prefix]_Buscogeny_out
  • -t     Number of threads to use. Default 8 
  • -s     Alignment using: 'prot' for protein, 'nucl' for nucleotide. Default is 'prot'. 

 

出力例

result_dir/Genome_ortholog_counts.png

(Genome_ortholog_counts.htmlも同じファイル)

result_dir/ortholog_counts.tsv

result_dir/BUSCO/

result_dir/targets/

それぞれのBUSCOタンパク質を含むfastaファイル (ここでは4ゲノム使っているので4配列ずつのmulti-fasta)。多重整列前。

result_dir/alignments/

(多重整列後)

result_dir/supermatrix/

複数の配列の連結アラインメント。superaln.degapped.fastaは  ClipKITによって保存性の低いサイトをトリミングした連結配列 (全配列の長さは同じ)。

result_dir/iqtree/

 

ヌクレオチドモード

デフォルトはBUSCOタンパク質を使ったタンパク質モードだが、ヌクレオチドモードに変更できる。

# ヌクレオチドモードのラン
python buscogeny.py -i genome_dir -o result_dir -d lineages/bacteria_odb12/ -t 12 -s nucl
  • -s     Alignment using: 'prot' for protein, 'nucl' for nucleotide. Default is 'prot'. 

ヌクレオチドモードではBUSCO遺伝子の塩基配列を使って系統解析が行われる。近縁な株同士など、アミノ酸では差が少なすぎる場合に有用。ただし塩基配列は変異が多く、ノイズの影響も受けやすいので結果の解釈には注意する。

 

ヌクレオチドモード + 組換え領域のフィルタリングON

ヌクレオチドモードでは、組換え領域のフィルタリング機能をONにできる。これをONにすると、ClonalFrameMLとmaskrc-svgを使って組換えが起こっている可能性がある領域をフィルタリングしてから系統推論が行われる。

# ヌクレオチドモードのラン
python buscogeny.py -i genome_dir -o result_dir -d lineages/bacteria_odb12/ -t 12 -s nucl -r
  • -r     Enable recombination filtering

主に原核生物、とくに細菌の近縁株解析向けの機能。近縁種間では、遺伝子水平伝播や相同組換えが起きることがあり、そのような近縁株の解析で有用と考えられる。

 

レポジトリより

  • odbデータベースを指定する際は、相対パスまたは絶対パスを使用する
  • Buscogenyは、以前の出力が検出されると該当するフォルダをスキップする。
  • 組換えのフィルタリングは塩基配列に対してのみ利用可能。-rオプションを使用する場合は、-s nuclを指定してBuscogenyを実行する。
  • BUSCO 5.7.0以降、真核生物ゲノムに対しては `miniprot` がデフォルトのパイプラインとして使用される。真核生物のodbを使用し、かつ --seq_typeでprotが選択されていない場合、Buscogenyは必要な塩基配列を生成するために、自動的に metaeukモード (metaeuk紹介)でBUSCOを実行する。

引用

Buscogeny: A BUSCO leveraged phylogenomic tree builder

John Webster, Toni A Chapman 

Int Microbiol. 2026 Feb;29(2):255-267

 

関連