深層学習ベースのGO termアノテーションを試してみる
TL;DR
自然言語処理技術では深層学習技術が非常に良い成果をあげています。タンパク質配列からGO Termなどのアノテーション行い、機能を推定する方法として、これまでの多くはBLASTなどの相同性検索を用いていました。最近では、いくつかのツールが深層学習ベースで機能予測を行っています。今回はdeepgoplusを試してみることにします。CNNベースっぽいです。
Maxat Kulmanov, Robert Hoehndorf, DeepGOPlus: improved protein function prediction from sequence, Bioinformatics, Volume 36, Issue 2, 15 January 2020, Pages 422–429, https://doi.org/10.1093/bioinformatics/btz595
Webサイトも作成されていて、Webで簡単に試してみることもできます。ただ、Webサイトは10タンパク質ずつしか解析できないので、ゲノムワイドにやろうとすると結構大変そうです。
そこで、今回は筆者らが提供しているモデルとDocker Imageを使って予測してみます。(github)
必要なものの準備
githubにDockerfileがおいてあるので、コピペして使います。READMEを見る限りDockerhubにはおいてなさそうな感じです。中身はpipでdeepgoplusをインストールしてるのと、diamondを使っているので、そのインストールをしているようです。
ビルドします。
モデルをダウンロードします。
とりあえず動かすのが今回の目的なので、シロイヌナズナのfastaを使っておきます。
実際に動かす
必要なのはモデルなどが置かれているディレクトリを指定する--data-rootと、fastaファイルがおいてある--in-fileです。あとはoutputの名前と、信頼度的なものであるthresholdを指定しておきます。Websiteが0.3だったので0.3にしています。