macでインフォマティクス

macでインフォマティクス

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

de novo transcriptome向けのアノテーションツール; Trinotate

2018 10/30 コード修正

2019 10/11 インストール追記、関連ツールリンク追記

2019 10/12 help追記、

2020 2/1 間違ったdockerリンク消去

 

de novo transcriptomeのアノテーションツールとしてblast2GOがよく知られているが、Trinotateというツールが発表された(論文はまだ)。Trinotateは非モデル生物のデータにも対応したde novo transcriptome向けアノテーションツールである。解析・付与できるアノテーション情報は、blastの解析結果、hmmerのドメイン検索結果、SignalPによるトランジットペプチドの予測結果、TMHMMによる膜タンパク質の予測結果、eggNOG/protein/Kegg databasesによるオーソログ、GO、 keggデータベースの情報などである。

各ツールを使った解析が終わると、Trinotateは各アノテーション結果を統合してSQLiteのデータベースにまとめてくれる。デーベース化することで柔軟かつ高速に取り扱うことが可能になる。データベースを作ったら、Trinotateのツールでローカルサーバーを立てて、htmlベースでグラフィカルにGO解析を行うことができる。

 

Blast2GOとの違いは、このペーパー

https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4956038/#pone.0158565.ref026のFig .1がわかりやすいと思う。de novo transcriptome解析を行い、Blast2GOとTrinotateでアノテーションをつけている。

f:id:kazumaxneo:20170731210136j:plain

The De Novo Transcriptome and Its Functional Annotation in the Seed Beetle Callosobruchus maculatus より引用。

 

こちらも参考になる。

https://www.researchgate.net/post/Is_Trinotate_good_for_functional_annotation_of_de_novo_assembled_transcriptomes

 アノテーション情報を統合できるのは魅力的である。しかもblast2goの有償版と違いこちらは無料であり、高速に使えるなら心強い。論文発表前ではあるが、すでに7つの論文で使われている(リンクの一番下を参照)。導入して使い勝手をテストしてみる。問題がなさそうなら、普段の解析に取り入れることを目標に進める。

 

追記1; perlのライブラリを全て入れて、2017/12月の最新版を入れ直すと、最後までランできるようになりました。

追記2; condaを使って導入する。

 

まとめ直しました。

 

 インストール

追記

一部依存を除き、condaでインストールできる(リンク)。

#bioconda 依存が多いツールは仮想環境を作って導入するのが無難
conda create -n trinotate
conda activate trinotate
conda install -c bioconda trinotate

 >  autoTrinotate.pl -h

$ autoTrinotate.pl -h

 

##############################################################################

#

# Required:

#

#  --Trinotate_sqlite <string>                Trinotate.sqlite boilerplate database

#

#  --transcripts <string>                     transcripts.fasta

#

#  --gene_to_trans_map <string>               gene-to-transcript mapping file

#

#  --conf <string>                            config file

#

#  --CPU <int>                                number of threads to use.

#

#

##############################################################################

 

 

> Build_Trinotate_Boilerplate_SQLite_db.pl

$ Build_Trinotate_Boilerplate_SQLite_db.pl

 

 

usage: //anaconda3/envs/trinotate/bin/Build_Trinotate_Boilerplate_SQLite_db.pl Database_prefix [no_cleanup_flag]

 

 

 

以前苦労していた時==============================================

TMHMMがmacでは動かなかった(decodeanhmm.Linux_x86_64がlinux用にbuidされている)。cent OS6に導入する。

Trinotateのダウンロード(本体)

https://github.com/Trinotate/Trinotate/releases

perlのモジュールを適当な場所にコピーし、読み込めるようにしておく。

sudo cp -i ~/Trinotate-3.0.2/PerlLib/*pm /usr/share/perl5/

追記 

その他、不足している、動かないperlのライブラリがあったら、

https://sourceforge.net/p/trinotate/mailman/message/31312982/の解答を参考に導入してください。私はリンク先の質問者と同じライブラリが入っていませんでした。

依存するもの

  • blast+
  • Trinity(utilityツールも使う)- Trinitiyのアセンブルデータを使うように設計されている
  • TransDecoder - code領域探索
  • sqlite - データベース
  • NCBI BLAST+ - ホモロジー検索
  • tmhmm v2 - 膜タンパク質探索
  • RNAMMER - rNRA探索
  • HMMER - PFAMに対してドメイン探索
  • signalP v4 - シグナルペプチド切断領域の探索

 いくつかはbrewでインストールできる。"brew list"で確認し、持ってないツールだけ導入。

brew install blast
brew install trinity
brew install sqlite
brew install TransDecoder
brew install HMMER
brew install RNAMMER

注;Trinityのutil/も必要だが、brewでは入らない。

GitHub - trinityrnaseq/trinityrnaseq: Trinity RNA-Seq de novo transcriptome assemblyからダウンロードしておく。必要になる。

 Trinityと同じく、TransDecoderのutil/も必要になる。ダウンロードしておく。

Releases · TransDecoder/TransDecoder · GitHub

 

 以下はTransDecoder.Predictの371行目についてのエラーメッセージが出る人だけ。

cd-hit-estにパスが通っていても変な場所から取ってこようとしてバグが起こる。応急措置で

my ($cd_hit_est_exec) = &check_program('cd-hit-est');

 ↓

my ($cd_hit_est_exec) = 'cd-hit-est';

に修正。

 TMHMM、SignalPのインストールについては別にまとめています。こちらを参考にしてください。

TMHMM

SignalP

 RNAMMER、HMMER、TransDecorderはbrewで入ります。

============================================== 

 

 

データベースの準備

 データのダウンロード

cd Trinotate-3.0.2/ #移動
admin/Build_Trinotate_Boilerplate_SQLite_db.pl Trinotate #スクリプト実行

fam-A.hmm.gzuniprot_sprot.pepTrinotate.sqliteがダウンロードされる。Trinotate.sqliteは予めUniprotのデータ(SwissProt、Uniref90)からTrinotateでデータベース化されたファイルである。自分で準備する場合、Trinotateのツールで作ることになる。

 blastデータベースの準備

makeblastdb -in uniprot_sprot.pep -dbtype prot

pfamデータベースの準備

gunzip Pfam-A.hmm.gz #解凍
hmmpress Pfam-A.hmm #index作成

ここで一旦テストランを行う。

テストラン

Trinotateは複数のツールを走らせる上に、あまり堅牢な作りでないので少しのことでバグが出る。テストランを行ってエラーが出ないか確実に見極めて使う必要がある。

 

auto/testing/にTrinityでアセンブルされたデータが準備されている。

cd auto/testing/
ls -l #ファイルを確認

$ ls -l

total 8344

-rwxr-xr-x@ 1 user  staff      620  3  3 06:13 cleanme.pl

-rwxr-xr-x@ 1 user  staff     3929  3  3 06:13 conf.txt

-rwxr-xr-x@ 1 user  staff   170122  3  3 06:13 mini_sprot.pep.gz

-rwxr-xr-x@ 1 user  staff    63469  3  3 06:13 myTrinity.fasta.gene_to_trans_map.gz

-rwxr-xr-x@ 1 user  staff  4019376  3  3 06:13 myTrinity.fasta.gz

-rwxr-xr-x@ 1 user  staff      674  3  3 06:13 runMe.sh

myTrinity.fasta.gene_to_trans_map.gzmyTrinity.fasta.gzを解凍する。

 

.pepファイルのblastデータベースを作る。

makeblastdb -in mini_sprot.pep -dbtype prot

 

confファイルを編集する。auto/conf.txtの13行目から25行目が編集する箇所である。

13-25行目を以下のように編集した。

----------------------------------------------------------------------------------------------------

# ** edit the progs and dbs section to point to your local resources.

 

# progs

TRANSDECODER_DIR=/home/uesaka/TransDecoder-3.0-2.1/

BLASTX_PROG=blastx

BLASTP_PROG=blastp

SIGNALP_PROG=~/signalp-4.1/signalp

TMHMM_PROG=/usr/local/bin/tmhmm

RNAMMER_TRANS_PROG=/home/uesaka/Trinotate-3.0.2/util/rnammer_support/RnammerTranscriptome.pl

RNAMMER=~/.linuxbrew/bin/rnammer

HMMSCAN_PROG=hmmscan

 

# dbs

SWISSPROT_PEP=mini_sprot.pep

PFAM_DB=/home/uesaka/Trinotate-3.0.2/Pfam-A.hmm

----------------------------------------------------------------------------------------------------

プログラムのパスによって変えてください。

 

 

テストラン

perl ../autoTrinotate.pl  --Trinotate_sqlite ../../Trinotate.sqlite --transcripts myTrinity.fasta --gene_to_trans_map myTrinity.fasta.gene_to_trans_map --conf conf.txt --CPU 20
  • --Trinotate_sqlite   Trinotate.sqlite boilerplate database.
  •  --transcripts     Transcripts.fasta.
  • --gene_to_trans_map Gene-to-transcript mapping file.
  • --conf         Config file.
  • --CPU         Number of threads to use.

上記で指定しているファイルだが、--gene_to_trans_mapで指定しているGene-to-transcript mappingはtrinityのツールで作る。テストデータには最初から用意されている。--Trinotate_sqliteで指定しているTrinotate.sqliteは最初のデータベースの準備のところでダウンロードしたファイルである。中身はUniprotのデータ(SwissProt、Uniref90)をデータベース化したファイルになる。

 

Triniityでアセンブルされたcontigは15Mほどのサイズで、解析にはかなりの時間がかかる。終わるとExcelファイルで結果が出力される。

 

f:id:kazumaxneo:20180211151219j:plain

 

アノテーションできなかったセルや、ツールが正常に動作しなかったfeatureの列は"."で表示される 。その場合、公式の解説を真似してランできなかったツールだけ個別に走らせた方が早いかもしれない。

 

 

 

 

引用

The De Novo Transcriptome and Its Functional Annotation in the Seed Beetle Callosobruchus maculatus

 Ahmed Sayadi, Elina Immonen, Helen Bayram, and Göran Arnqvist*

 PLoS One. 2016; 11(7): e0158565. Published online 2016 Jul 21.

 

 解析の流れ

http://informatics.fas.harvard.edu/trinotate-workflow-example-on-odyssey.html

 

https://omictools.com/transcriptome-annotation-category

 

 

関連