DIAMOND2GO (D2GO) は、配列の類似性に基づいて遺伝子またはタンパク質に遺伝子オントロジー (GO) termsを割り当てる高速なツールセットである。BLAST より 100 ~ 20,000 倍高速な DIAMOND の超高速アライメント機能を活用することで、D2GO は大規模データセットの迅速な機能アノテーションを可能にする。D2GOは、NCBIの非冗長データベースにある事前アノテーション済みの配列からクエリ配列に GO termsをマッピングする。ベンチマークでは、D2GOは標準的なラップトップで 13 分以内に、130,184 の予測ヒトタンパク質アイソフォームの 98% に200万を超えるGO termsを割り当てた。アノテーションに加えて、D2GO には、配列のサブセット間で著しく過剰表現されている GO termsをユーザーが識別できるエンリッチメント分析ツールが含まれている。D2GO を 2 つの広く使用されているツール、Blast2GOと eggNOG-mapperと比較し、生成されたアノテーションの数と種類に大きな違いがあることを観察した。これらの差異は、ツール間の感度と特異性の違いを反映しており、複数の手法を併用することで全体的なアノテーションカバレッジが向上する可能性があることを示唆している。D2GOはオープンソースであり、MITライセンスに基づき、https://github.com/rhysf/DIAMOND2GOから無料で入手できる。
インストール
git clone https://github.com/rhysf/Diamond2GO.git
cd Diamond2GO/
#docker imageのビルド
#wgetがないとDBダウンロードでエラーになる。ビルド前に以下をDockerfileの中盤に追加する
RUN apt-get update && apt-get install -y wget
#追加後にビルド
docker buildx build --platform linux/amd64 -t diamond2go .
#help
> Diamond2go.pl
Usage: Diamond2go.pl -q <query.fasta>
Main Options:
-q Input query file in FASTA format [required]
-d DIAMOND database file [/opt/diamond2go/util/../resources/nr_clean_d2go_20250812_c95.faa.dmnd]
-s Steps to run:
1 = run DIAMOND
2 = summarise GO terms
3 = prepare InterProScan input
4 = run InterProScan and combine results [default: 12]
Annotation Settings:
-e E-value cutoff [1e-10]
-n Sensitivity (default, faster, fast, mid-sensitive, sensitive, more-sensitive, very-sensitive, ultra-sensitive) [fast]
-t Query type (protein/dna) [protein]
-m Max target sequences per query [1]
InterProScan Integration:
-i Use InterProScan (h = only sequences with no D2GO hit, a = all sequences) [h]
-z Valid email address required for InterProScan web service []
Performance tuning:
-g DIAMOND block size in GB (--block-size) [default: 8]
-k Index chunk count (--index-chunks) [default: 8]
-r Threads to use (--threads) [10]
-v Verbose: print debug/progress messages to screen [off]
Output Files:
-a DIAMOND raw output file [query.fasta-diamond.tab]
-b Processed DIAMOND results [query.fasta-diamond.processed.tab]
-c Processed DIAMOND results with InterPro annotations [query.fasta-diamond.processed_with_interpro.tab]
Notes:
1) DIAMOND must be installed and in your PATH
2) Database must be created with 'diamond makedb' (e.g., diamond makedb --in <nr.faa> -d <db>)
実行方法
アノテーションを付けたいタンパク質のfastaファイルを選択する。
docker run --rm -v $(pwd):/data -w /data diamond2go \
-q ./query.faa -t protein
初回はDIAMONDデータベースのダウンロードとビルドが行われるので時間がかかる。

出力例
DIAMOND生の出力(TSV)とGO term annotation結果(TSV)が出力される。
.faa-diamond.tab

.faa-diamond.processed.tab

gene_id、gene_name、species、e-value、GO-term (割り当てられた遺伝子オントロジー )、
evidence (IEAは電子的に注釈された(Inferred from Electronic Annotation)ことを意味する)、qualifier、category(3大カテゴリのどれに属するか)が示されている。
上のコマンドだと、DBはジョブが終了すると消えてしまう。作成したDBが残るように変える。
mkdir -p diamond2go_DB
docker run --rm -v $(pwd):/data \
-v $(pwd)/diamond2go_DB:/opt/diamond2go/resources \
-w /data diamond2go -q nsKO4_vamb_22292.faa -t protein
2回目以降は作成したnr_clean_d2go_20250812_c95.faa.dmndを-dで指定する。
docker run --rm -v $(pwd):/data \
-v $(pwd)/diamond2go_DB:/opt/diamond2go/resources \
-w /data diamond2go \
-d /opt/diamond2go/resources/nr_clean_d2go_20250812_c95.faa.dmnd \
-q nsKO4_vamb_22292.faa -t protein
サポートスクリプト
- blast_database_to_new_description.pl — FASTAヘッダーにGO termを追加
- iprscan5_RF.pl — InterProScanジョブを実行
- iprscan_tsv_to_GO_summary.pl — InterProScan TSVを解析
- iprscan_summary_and_d2go_processed_combine.pl — InterProアノテーションとGOアノテーションを結合
- ncbi_gene2go_merge.pl — NCBI gene2goとgene2accessionをマージ
- test_enrichment.pl — GO termエンリッチメントテストを実行
- make_new_database.sh — 新しいD2GOデータベースを作成(依存関係:diamond、mmseq2またはcd-hit)
レポジトリより
- デスクトップマシンで約15分でFASTA形式の10万個以上のタンパク質またはヌクレオチド配列をアノテーションすることができる。サンプルデータセット(/data/query.pep): 実行時間は3分42秒、フルスケールテスト (予測ヒトタンパク質アイソフォーム数 130,184)で実行時間6時間53分
- Zenodo による自動データベースセットアップ:Zenodo から最新の構築済みリファレンスデータベースを自動的にダウンロード、検証、再構築する。
- 新しいデータベースまたはカスタムデータベースが必要な場合は、完全な自動化ワークフローを参照し、util/make_new_database.shを使用する。nrのサイズとクラスタリングの計算負荷により、新しいデータベースの作成には数日かかる場合がある。
- カスタムデータベース生成:GO termアノテーション付きリファレンスデータベースを再作成または新規構築するためのパイプラインが含まれている。
- エンリッチメント分析:Storey-Tibshirani多重検定補正を用いた両側 Fisher の正確検定を用いたGO termエンリッチメント機能を実装している。
- InterProScanも使う場合はInterProScanの実行環境も作る必要がある。
引用
DIAMOND2GO: rapid Gene Ontology assignment and enrichment detection for functional genomics
Christopher Golden, David J Studholme, Rhys A Farrer
Front. Bioinform., 15 August 2025
関連