macでインフォマティクス

macでインフォマティクス

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

BUSCO v5

2021 8/14 誤字修正

2021 11/29 誤字修正

2022/06/08 インストールのバージョン更新, 7/3 追記, 7/20 追記

2024/03/07 追記, 3/16 BUSCOv5.7.0について追記

 

 ゲノムデータやメタゲノムデータの品質を評価する方法は、ゲノムアセンブリを助け、その後の解析結果を正しく解釈するために不可欠である。BUSCOは、ユニバーサル・シングルコピー・オルソログに基づいて、処理されたゲノムデータの完全性と冗長性を評価する。ここでは、BUSCOソフトウェアの新機能と大幅な改良、およびOrthoDB v10のリリースに合わせた基礎データの更新と拡張について紹介する。主な改良点としては、BUSCOでは入力配列の系統的な配置が可能になり、評価に最適なデータセットを自動的に選択することができるようになったため、起源が不明なメタゲノムアセンブリゲノム解析が可能になった。新たに導入されたゲノムワークフローにより、特に大規模な真核生物のゲノムに対する効率と実行時間が向上している。BUSCOは、真核生物と原核生物の両方の種を評価できる唯一のツールであり、ゲノムアセンブリやメタゲノムビン、トランスクリプトームや遺伝子セットなど、さまざまな種類のデータに適用することができる。

新しいアプローチ
BUSCO v3のリリース後に導入された新機能とデータセットについて説明する。 BUSCOの最終バージョンであるv5には以下の特徴がある。1) OrthoDB v10と同期して基礎データセットの大幅なアップグレード、2) 遺伝子予測ツールProdigalを使用した原核生物およびウイルスゲノムの評価のための更新されたワークフロー、3) 遺伝子予測ツールMetaEuk、4)最適なBUSCOデータセットを自動的に選択し、由来不明の配列の解析を可能にするワークフロー、5)大規模なデータセットやメタゲノムビンのハイスループット評価を容易にするために、複数の入力のバッチ解析を実行するオプション、6)コードの大幅なリファクタリングを行い、Bioconda(Grüning et al. 2018)とDocker(Merkel 2014)の2つの配布チャネルの整備した。これらの開発により、BUSCOは、大規模な真核生物のゲノムから、微生物の真核生物、原核生物、ウイルスのメタゲノムアセンブリゲノムまで、大規模な異種データセットの包括的な解析に適している。

 

HP

https://busco.ezlab.org/

Manual

https://busco.ezlab.org/busco_userguide.html

Best practices

https://busco.ezlab.org/busco_userguide.html#best-practices

 

(説明するスレッドになっています。読んでください)

 

インストール

GitLab

#conda (link) 最新はv5.7.0
mamba create -n busco5 -y
conda activate busco5
mamba install -c conda-forge -c bioconda busco=5.7.0 -y

#docker (v5.2.2の場合)
docker pull ezlabgva/busco:v5.2.2_cv1

> busco -h

$ busco -h

usage: busco -i [SEQUENCE_FILE] -l [LINEAGE] -o [OUTPUT_NAME] -m [MODE] [OTHER OPTIONS]

 

Welcome to BUSCO 5.2.2: the Benchmarking Universal Single-Copy Ortholog assessment tool.

For more detailed usage information, please review the README file provided with this distribution and the BUSCO user guide. Visit this page https://gitlab.com/ezlab/busco#how-to-cite-busco to see how to cite BUSCO

 

optional arguments:

-i SEQUENCE_FILE, --in SEQUENCE_FILE

Input sequence file in FASTA format. Can be an assembled genome or transcriptome (DNA), or protein sequences from an annotated gene set. Also possible to use a path to a directory containing multiple input files.

-o OUTPUT, --out OUTPUT

Give your analysis run a recognisable short name. Output folders and files will be labelled with this name. WARNING: do not provide a path

-m MODE, --mode MODE Specify which BUSCO analysis mode to run.

There are three valid modes:

- geno or genome, for genome assemblies (DNA)

- tran or transcriptome, for transcriptome assemblies (DNA)

- prot or proteins, for annotated gene sets (protein)

-l LINEAGE, --lineage_dataset LINEAGE

Specify the name of the BUSCO lineage to be used.

--augustus Use augustus gene predictor for eukaryote runs

--augustus_parameters "--PARAM1=VALUE1,--PARAM2=VALUE2"

Pass additional arguments to Augustus. All arguments should be contained within a single pair of quotation marks, separated by commas.

--augustus_species AUGUSTUS_SPECIES

Specify a species for Augustus training.

--auto-lineage Run auto-lineage to find optimum lineage path

--auto-lineage-euk Run auto-placement just on eukaryote tree to find optimum lineage path

--auto-lineage-prok Run auto-lineage just on non-eukaryote trees to find optimum lineage path

-c N, --cpu N Specify the number (N=integer) of threads/cores to use.

--config CONFIG_FILE Provide a config file

--datasets_version DATASETS_VERSION

Specify the version of BUSCO datasets, e.g. odb10

--download [dataset ...]

Download dataset. Possible values are a specific dataset name, "all", "prokaryota", "eukaryota", or "virus". If used together with other command line arguments, make sure to place this last.

--download_base_url DOWNLOAD_BASE_URL

Set the url to the remote BUSCO dataset location

--download_path DOWNLOAD_PATH

Specify local filepath for storing BUSCO dataset downloads

-e N, --evalue N E-value cutoff for BLAST searches. Allowed formats, 0.001 or 1e-03 (Default: 1e-03)

-f, --force Force rewriting of existing files. Must be used when output files with the provided name already exist.

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

--limit N How many candidate regions (contig or transcript) to consider per BUSCO (default: 3)

--list-datasets Print the list of available BUSCO datasets

--long Optimization Augustus self-training mode (Default: Off); adds considerably to the run time, but can improve results for some non-model organisms

--metaeuk_parameters "--PARAM1=VALUE1,--PARAM2=VALUE2"

Pass additional arguments to Metaeuk for the first run. All arguments should be contained within a single pair of quotation marks, separated by commas. 

--metaeuk_rerun_parameters "--PARAM1=VALUE1,--PARAM2=VALUE2"

Pass additional arguments to Metaeuk for the second run. All arguments should be contained within a single pair of quotation marks, separated by commas. 

--offline To indicate that BUSCO cannot attempt to download files

--out_path OUTPUT_PATH

Optional location for results folder, excluding results folder name. Default is current working directory.

-q, --quiet Disable the info logs, displays only errors

-r, --restart Continue a run that had already partially completed.

--tar Compress some subdirectories with many files to save space

--update-data Download and replace with last versions all lineages datasets and files necessary to their automated selection

-v, --version Show this version and exit

> generate_plot.py -h

$ generate_plot.py -h

usage: python3 generate_plot.py -wd [WORKING_DIRECTORY] [OTHER OPTIONS]

 

BUSCO plot generation tool.

Place all BUSCO short summary files (short_summary.[generic|specific].dataset.label.txt) in a single folder. It will be your working directory, in which the generated plot files will be written

See also the user guide for additional information

 

required arguments:

-wd PATH, --working_directory PATH

Define the location of your working directory

 

optional arguments:

-rt RUN_TYPE, --run_type RUN_TYPE

type of summary to use, `generic` or `specific`

--no_r To avoid to run R. It will just create the R script file in the working directory

-q, --quiet Disable the info logs, displays only errors

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

 

 

 

 

 実行方法

1、利用できるデータベースを確認

busco --list-datasets

 

2、BUSCOのラン。モードは3つある。ゲノムアセンブリを評価するなら”-m genome”、de novo transcriptomeアセンブリアノテーションして得たcDNA配列から評価するなら”-m transcriptome”、アノテーションして得たタンパク質配列セットから評価するなら”-m protein”。

#genome
busco -m genome -i INPUT.nucleotides -o OUTPUT -l LINEAGE -c 20

#transcriptome
busco -m transcriptome -i INPUT.nucleotides -o OUTPUT -l LINEAGE -c 20

#protein
busco -m protein -i INPUT.amino_acids -o OUTPUT -l LINEAGE -c 20
  • -i   Input sequence file in FASTA format. Can be an assembled genome or transcriptome (DNA), or protein sequences from an annotated gene set. Also possible to use a path to a directory containing multiple input files.
  • -o   Give your analysis run a recognisable short name. Output folders and files will be labelled with this name. WARNING: do not provide a path
  • -m   Specify which BUSCO analysis mode to run
  • -c   Specify the number (N=integer) of threads/cores to use. 
  • --update-data  Download and replace with last versions all lineages datasets and files necessary to their automated selection

-l bacteria_odb10 のようにデータセットの名前が渡されると、BUSCO は自動的にダウンロードを行う。BUSCOに-l /my/own/path/bacteria_odb10のようにデータベースのフルパスが渡された場合、こちらが使用される。ファイルの新バージョンが利用可能な場合、BUSCOは警告を出す。引数 --update-data を渡すと、BUSCO は現在のファイルやフォルダを最新のバージョンに置き換え、以前のバージョンをアーカイブする。

 

 

系統の自動選択が出来るようになった。オプションの”--auto-lineage, --auto-lineage-prok, --auto-lineage-euk"のいずれかをつける。

busco -m MODE -i INPUT -o OUTPUT --auto-lineage

#ignoring eukaryotes to save runtim
busco -m MODE -i INPUT -o OUTPUT --auto-lineage-prok

#ignoring non-eukaryotes to save runtim
busco -m MODE -i INPUT -o OUTPUT --auto-lineage-euk

細菌ゲノム(シアノバクテリア)でテストした。 bacteria_odb10とsynechococcales_odb10が評価に使用された。

f:id:kazumaxneo:20210813180830p:plain

 

scripts/generate_plot.pyスクリプトを使用すると、BUSCOのサマリー結果を分かりやすい棒グラフで素早く表示することができる。使用するには、BUSCOの出力ディレトリにできるショートサマリ―ファイルをディレクトリにコピーする(比較するには複数ランしておく必要がある)。そのディレクトリを指定してランする。

generate_plot.py -wd BUSCO_summaries/

 

メタゲノムのbin配列の評価にBUSCOを使ってみる。bin1.fastaからbin10.fastaまでを自動系統モードで評価する(mockデータ使用)。ショートサマリ―ファイルをディレクトリにコピーする。

mkdir BUSCO_summaries
for file in `\find bin*fasta -maxdepth 1 -type f`; do
genome=${file}
folder=${file%.fasta}
busco -m genome -i $genome -o ${folder} --auto-lineage-prok -c 40 -q
cp ${folder}/short_summary* BUSCO_summaries/
done

#評価
generate_plot.py -wd BUSCO_summaries/

 

f:id:kazumaxneo:20210813185122p:plain

実際にはバッチモードで複数のゲノムの評価を実行することができます。

https://currentprotocols.onlinelibrary.wiley.com/doi/full/10.1002/cpz1.323

のBasic Protocol 3を参照して下さい。

 

Manualより

  • BUSCOは、ゲノムアセンブリ、トランスクリプトーム、アノテーションされた遺伝子セットの期待される遺伝子含有量の観点から、その完全性を定量的に評価しようとするものです。結果は「Complete and single-copy」、「Complete and duplicated」、「Fragmented」、「Missing BUSCO」というカテゴリーに分類されます。

  • BUSCOの完全性の結果は、あなたの生物学的な観点からのみ意味を持ちます。欠落している遺伝子や重複している遺伝子が、生物学的なものなのか、技術的なものなのかを理解する必要があります。例えば、高いレベルの重複は、最近の全重複イベント(生物学的)またはハプロタイプのキメラ的アセンブリ(技術的)(*1)によって説明されるかもしれません。トランスクリプトームやタンパク質のセットでアイソフォームのフィルターをかけていないものは、重複の割合が高くなります。そのため、BUSCO解析を行う前にフィルターをかける必要があります。最後に、トランスクリプトーム実験において、特定の組織や特定のライフステージや条件に焦点を当てても、BUSCO完全なトランスクリプトームが得られる可能性は低い。このような場合、サンプル間の一貫性が目標となります。

  • Complete
    シングルコピーでも重複でも、BUSCOマッチのスコアが予想範囲内であり、BUSCOプロファイルとのアラインメントの長さも予想範囲内であり、完全であることが判明した場合Completeとなります。実際に入力データにオルソログが存在しないか、オルソログが部分的にしか存在しない(断片化が激しい)場合に、同一性の高い完全長のホモログが存在すると、そのホモログが誤って完全なBUSCOとして同定される可能性があります。スコアのしきい値はこの可能性を最小限にするように最適化されていますが、それでも発生する可能性はあります。

  • Fragmented
    断片化されていると判断された場合、BUSCOのマッチはスコアの範囲内ではあるが、BUSCOプロファイルとの長さの整合性の範囲内ではない。トランスクリプトームやアノテーションされた遺伝子セットの場合は、トランスクリプトや遺伝子モデルが不完全であることを示します。ゲノムアセンブリの場合は、遺伝子が部分的にしか存在していないか、完全な遺伝子がアセンブリ内に存在していても、配列検索と遺伝子予測のステップで完全長の遺伝子モデルを生成できなかったことを示しています。真核生物のデータセットを実行する際、このような断片的な結果が得られたマッチには、完全であると判断されたBUSCOでトレーニングされたパラメータを使用して再度配列検索と遺伝子予測を行うという「セカンドチャンス」が与えられるが、それでも遺伝子全体を復元できない場合があります。ゲノムアセンブリ評価で断片化されたBUSCOの中には、完全なものもありますが、発散しすぎていたり、非常に複雑な遺伝子構造をしていたりして、そのようなものから完全なものを探し出して予測するのは非常に難しい。

  • Missing
    欠落していると判断された場合、有意なマッチが全くないか、BUSCOマッチのスコアがBUSCOプロファイルのスコア範囲を下回っている。トランスクリプトームやアノテーションされた遺伝子セットの場合は、これらのオルソログが実際に見つからないか、トランスクリプトや遺伝子モデルがあまりにも不完全で断片化されているため、断片化されているとみなされる基準を満たすことすらできないことを示します。ゲノムアセンブリの場合は、オルソログが実際に見つからないか、配列検索ステップで重要なマッチを特定できなかったか、遺伝子予測ステップで断片化されたBUSCOマッチとして認識される可能性のある部分的な遺伝子モデルすら作成できなかったことを示しています。フラグメントの場合と同様に、真核生物のデータセットを実行する際には、最初のラウンドで欠落したBUSCOは、2回目のシーケンス検索と、完全なBUSCOでトレーニングされたパラメータを使用した遺伝子予測によって「2度目のチャンス」が与えられますが、それでも遺伝子を復元できない場合があります。ゲノムアセンブリ評価で欠落したBUSCOの中には、部分的に存在していたり、完全である可能性もありますが、あまりにも分岐していたり、非常に複雑な遺伝子構造を持っていたりするため、正確に位置を特定したり、部分的にでも予測することが非常に困難です。

  • 一般的に、評価のために選択する系統は、利用可能な最も具体的な系統でなければならない。例えば、魚類のデータを評価する場合は、Metazoa(後生動物)ではなく、actinopterygiiを選択する。例えば、20個の鳥類ゲノムをそれぞれ数種類の異なるアセンブリバージョンで評価する場合、少なくとも評価の最初のラウンドでは、aves系統ではなくvertebrata系統またはmetazoa系統を選択することができます。

  • BUSCO v5には27個のウイルスデータセットが含まれており、ウイルスのサブセットの解析をサポートしています。

  • -downloadオプションを使用すると、データセットまたはデータセットをダウンロードすることができる(全データは約127GB)(論文より)。
  • インターネットに接続できる別のマシンでデータセットをダウンロードしてコピーしておけば、インターネットに接続できないシステムでBUSCOをランできる。具体的には--offlineフラグを追加して実行する(論文より)。
  • 入力ファイルがタンパク質の場合、BUSCO遺伝子の重複の量を適切に評価するためには、前もってアイソフォームタンパク質をフィルタリングする必要がある。転写産物を評価する時も同様。
  • 新しいバージョンのデータセットが利用可能な場合、常にデータセットを更新するには、コマンドに--update-dataフラグを追加する(論文より)。
  • トランスクリプトームが特定の臓器/組織または時点から得られたものである場合、BUSCOセットのほんの一部しか含まれていない可能性がある(論文より)。
  • 2021年に出たプロトコル論文では、基本的なBUSCOの使い方の他、多数のゲノム評価に使うためにSnakemakeを使用する例や、Dockerを使ったラン方法、それ以外の発展的な使用方法について説明されています。
  • Biostars; BUSCOシングルコピーとOrthofinderのシングルコピーの違いなど(リンク)。

その他

  • 上でも説明されていますが、より系統特異的な遺伝子セットを選ぶことが重要です。例えばbacteria_odb10ではcompleteが100に近くても、系統特異的なBUSCOでは品質の低いゲノムアセンブリが見つかることがあります(例えばMAGからのbin配列など)。このようなbin配列は、寄生生活を送っているために系統特異的なBUSCOが消失し、非常な重要な遺伝子だけを保持している可能性も期待されますが、そのようなbin配列の大部分は、binningがあまり上手くいかなかったものでしょう。bacteria_odb10で定義されている遺伝子が偏ってコードされていることがあり、それが影響した可能性を考慮する必要があるからです(miCompleteの論文参照)。偏ってコードされているゲノムでは、bacteria_odb10で定義される遺伝子を含むcontigが1つでもbinningでレスキューされれば、他のcontigが回収されなくてもスコアが上がってしまいます。系統特異的な遺伝子セットはbacteria_odb10よりも数が増えるので、完全性の評価をより正しく行うことができます。

 

引用
BUSCO update: novel and streamlined workflows along with broader and deeper phylogenetic coverage for scoring of eukaryotic, prokaryotic, and viral genomes
Mosè Manni, Matthew R Berkeley, Mathieu Seppey, Felipe A Simão, Evgeny M Zdobnov
Mol Biol Evol. 2021 Jul 28;msab199

 

2022/07/03

BUSCO: Assessing Genomic Data Quality and Beyond
Mosè Manni,Matthew R. Berkeley,Mathieu Seppey,Evgeny M. Zdobnov

Curr Protoc. 2021 Dec;1(12):e323

 

関連

 

*1

https://www.biorxiv.org/content/10.1101/2021.06.01.446499v1.full.pdf

こちらのPrunus fruticosa Pall.(4倍体)のゲノムアセンブリを報告したプレプリントでは、purge_dups(紹介)を使ってヘテロ接合性の高い染色体領域からの冗長な配列を取り除いています。表1を見ると、purge_dupsの実行で、ドラフトゲノムサイズが1/4近くに減っています。BUSCOで冗長なオルソログが多く出るのは、このような背景で発生する技術的な複製を多く見てしまっている可能性もあります。

 

関連ツイート