macでインフォマティクス

macでインフォマティクス

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

アセンブル結果をCore gene setの検出数で評価する BUSCO

2018 1/9 version3のコマンドを最後に追記

2019 2/24 論文追記

2019 7/5  verrsion3向けに説明をアップデート

 

 ゲノムのアセンブルやde novo transcriptomeの評価手法の1つに、Core gene setがアセンブルされた配列の中にどれだけあるか調べる方法がある(core genesは構成的に発現していると考える)。そのようなツールとしてCEGMAがよく知られている。CEGMAはversion2.5までアップーデートされていたが、2015年にはその後継のBUSCOが発表され、CEGMAはサポートが中止された。BUSCOはCEGMA3.0とも言うべきツールで、CEGMAより随分高速化されているらしい。ここではBUSCOを紹介する。

 

開発者のブログにCEGMAサポート停止の経緯が詳しく書かれている。リンクを貼っておきます。

Goodbye CEGMA, hello BUSCO! — ACGT

 

BUSCOは、90%以上の種でsingle copy orthologousな遺伝子をcore geneとして定義し、それをデータベースにしてクエリー配列を検索する。100%でなく90パーセントで線を引いたのは、一部の種ではcore geneが複製したり、アセンブルが不完全で抜けているため見つからなかったなどの理由で100%保存にできなかったためらしい。そのため90という数値に生物的な意味はないが、core geneヒット数が90パーセントを大きく割るようならおそらくアセンブルが不完全と判断できる。

 

 

公式ページ 解析対象の生物に応じてHPからデータベースをダウンロードする。

https://busco.ezlab.org

f:id:kazumaxneo:20180410124024j:plain

HPからはマニュアルもダウンロードできるようになっている。 

 

インストール

v3を導入

#2019_01/09追記 version3.02インストール(mac, linux)
conda install -c bioconda -y busco==3.0.2

#homebrew(インストール未確認)
brew install busco

*CEGMAもbrewでインストール可能。

VMのイメージもあります(リンク)。 

 > run_BUSCO.py -h

# run_BUSCO.py -h

usage: python BUSCO.py -i [SEQUENCE_FILE] -l [LINEAGE] -o [OUTPUT_NAME] -m [MODE] [OTHER OPTIONS]

 

Welcome to BUSCO 3.0.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.

 

optional arguments:

  -i FASTA FILE, --in FASTA FILE

                        Input sequence file in FASTA format. Can be an assembled genome or transcriptome (DNA), or protein sequences from an annotated gene set.

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

  -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

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

  -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_path LINEAGE

                        Specify location of the BUSCO lineage data to be used.

                        Visit http://busco.ezlab.org for available lineages.

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

  -r, --restart         Restart an uncompleted run. Not available for the protein mode

  -sp SPECIES, --species SPECIES

                        Name of existing Augustus species gene finding parameters. See Augustus documentation for available options.

  --augustus_parameters AUGUSTUS_PARAMETERS

                        Additional parameters for the fine-tuning of Augustus run. For the species, do not use this option.

                        Use single quotes as follow: '--param1=1 --param2=2', see Augustus documentation for available options.

  -t PATH, --tmp_path PATH

                        Where to store temporary files (Default: ./tmp/)

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

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

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

  -z, --tarzip          Tarzip the output folders likely to contain thousands of files

  --blast_single_core   Force tblastn to run on a single core and ignore the --cpu argument for this step only. Useful if inconsistencies when using multiple threads are noticed

  -v, --version         Show this version and exit

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

 

 

実行方法

解析には、Core geneのデータベースを用意する必要がある。データセットは以下のリンクからダウンロードする。バクテリアも用意されている。

 

シロイヌナズナのデータなら陸上植物のデータベースを使う。wgetでダウンロードする。

wget http://busco.ezlab.org/v2/datasets/embryophyta_odb9.tar.gz
tar -zxvf embryophyta_odb9.tar.gz

ダウンロードが終わったら解凍する。遺伝子リストは解凍したディレクトリのinfo/~info.txt.gzに保存されている。中身を見てみる。

user$ gzip -dc embryophyta_3193_OrthoDB9_orthogroup_info.txt.gz |head -10 |cut -f 1-2

OrthoGroupID Description

EOG09360002 "Zinc finger, UBR-type"

EOG0936000A "Zinc finger, RING/FYVE/PHD-type"

EOG0936001N "PIK-related kinase"

EOG0936001W "Uncharacterized protein"

EOG09360025 "SNF2-related, N-terminal domain"

EOG0936003Z "P-loop containing nucleoside triphosphate hydrolases superfamily protein"

EOG0936004R "Telomere length regulation protein, conserved domain"

EOG0936004W "DNA-directed DNA polymerase, family B"

EOG0936008E "Zinc finger, RING/FYVE/PHD-type"

左端1、2列目にIDとdescriptionがある。植物のcore geneデータベースは1440遺伝子ある。この解凍してできたembryophyta_odb9/をランする時に指定する ("-l embryophyta_odb9")。

 

 

Genome assembly

run_BUSCO.py -i scaffolds.fasta -o OUTPUT -l embryophyta_odb9 -m genome -c 8
  •  -i   Input sequence file in FASTA format. Can be an assembled
  • -o   output
  • -l  lineage,lineage Which BUSCO lineage to be used.(ここではembryophyta_odb9を指定)
  • -m      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)
  • -c Number of threads/cores to use.

 

Transcriptome 

run_BUSCO.py -i transcripts.fasta -o OUTPUT -l embryophyta_odb9 -m transcriptome -c 8

アラビのRNAをde novoでアセンブルした配列(fasta)をクエリーとしている。

  • -l ここではembryophyta_odb9を指定

アラビのtranscriptomeデータをde novo assemblyして作った配列(54000 transcrpts)を解析したところ、10分くらいかかった。

 

full_table_OUTPUT~が詳細なデータとなる。またshort_summary_OUTPUT_PLANTに結果がまとめられている。summaryには以下のような情報が載っている。

#Summarized BUSCO benchmarking for file: transcripts.fasta 

#BUSCO was run in mode: trans

Summarized benchmarks in BUSCO notation

 : C:0%[D:0%],F:0%,M:0%,n:1440

 1357 Complete BUSCOs

 896 Complete and single-copy BUSCOs

 461 Complete and duplicated BUSCOs

 17 Fragmented BUSCOs

 66 Missing BUSCOs

 1440 Total BUSCO groups searched

 

植物用のcore geneのカタログは合計1440遺伝子あるが、1357見つかり、そのうち461はduplicateしているとの結果が出た。また、1440遺伝子のうち66が見つからないと出ている。

missing_buscos_list~には見つからなかった66のIDが載っている。orthoDBを検索して、どんな遺伝子がsingle copy orthologousとして見つからなかったか確認する。

Ortholog Search | cegg.unige.ch Computational Evolutionary Genomics Group

 

 今回の検証ではシロイヌナズナのリファレンスcDNAを使っている。ハウスキーピング遺伝子の発現がゼロになるとは考えにくいので、ナズナのゲノムにはmissingの66遺伝子の大半が存在しないということだろうか。

 

 

ラン途中にエラーが起きたら、fastaのヘッダーが悪さをしている可能性もあります。以下のようなコマンドでシンプルな名前に修正してランし直してみて下さい。

perl -ane 'if(/\>/){$a++;print ">name_$a\n"}else{print;}' input.fa > rename.fa

 

 

追記

アセンブリmetricsを調べるツールには、TransrateやDRAPなどもあります。DRAPにはBUSCOも取り込まれています。

 

追記 

version3.02は少しコマンドが変更されている。

ここではdockerhubのイメージを使う(link)。

docker pull comics/busco

例えばバクテリアゲノムのアセンブル結果を評価

#ここでは中に入ってランする
docker run --rm -itv $PWD:/data/ comics/busco
cd /data/

run_BUSCO.py -i assembly.fasta -o busco -l bacteria_odb9/ -m genome -c 1

 

追記

Insect Genomics

Using BUSCO to Assess Insect Genomic Resources

https://link.springer.com/protocol/10.1007/978-1-4939-8775-7_6

引用

BUSCO: assessing genome assembly and annotation completeness with single-copy orthologs
Felipe A. Simão, Robert M. Waterhouse, Panagiotis Ioannidis, Evgenia V. Kriventseva, and Evgeny M. Zdobnov
Bioinformatics, published online June 9, 2015