2018 1/9 version3のコマンドを最後に追記
2019 2/24 論文追記
2019 7/5 verrsion3向けに説明をアップデート
2019 11/24 論文追記
ゲノムのアセンブルや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からデータベースをダウンロードする。
HPからはマニュアルもダウンロードできるようになっている。
インストール
v3を導入
#2019_01/09追記 version3.02インストール(mac, linux)link
conda install -c bioconda -y busco==3.0.2
#homebrew(インストール未確認)
brew install busco
*CEGMAもbrewでインストール可能。
> 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
dockerイメージも色々上がっています。
実行方法
解析には、Core geneのデータベースを用意する必要がある。データセットは以下のリンクからダウンロードする。バクテリアも用意されている。
- BUSCO datasets
- このページから写真をクリックして自動ダウンロードすることもできる。
シロイヌナズナのデータなら陸上植物のデータベースを使う。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
追記
BUSCO: Assessing Genome Assembly and Annotation Completeness
Seppey M, Manni M, Zdobnov EM
Methods Mol Biol. 2019;1962:227-245. doi: 10.1007/978-1-4939-9173-0_14