このカテゴリーの記事では、「Pythonを使った機械学習やケモ・バイオインフォマティクスの実装や論文」を紹介していきたいと考えています。Python は3系(3.7)、anacondaを中心にして環境構築していきます。以下のようなハード・ソフト環境(CentOS Linux)を用いますが、Python(anaconda)が利用できれば、異なる環境下でも類似の実装が可能かと思います。
- CPU Intel® Core™ i7-6700K CPU @ 4.00GHz × 8
- メモリ 64GB
- GPU GeForce GTX 1080/PCIe/SSE2
- OS CentOS Linux 8
- Python 3.7
はじめに
タンパク質はアミノ酸(通常20種類)が数十〜数百個程度ペプチド結合で連結した生体高分子です。タンパク質の3次元構造・機能は、そのアミノ酸配列、一次構造によって決まっていると考えられています。従って、タンパク質同士の一次構造の比較や類似性の解析、それにもとづく「相同性検索」はバイオインフォマティクスの根幹をなす技術となっています。以前、以下のような記事で、BLASTプログラムによる相同性検索のやり方や分析を紹介しました。
今回の記事では、隠れマルコフモデル(HMM)によるペアワイズアラインメントに基づいて、より高感度な(類似性が低いタンパク質を見つけることが可能な)タンパク質配列検索を行うことが可能な、HH-suite を導入し、使えるようにしたいと思います。
HH-suite3 for fast remote homology detection and deep protein annotation https://bmcbioinformatics.biomedcentral.com/articles/10.1186/s12859-019-3019-7
condaによる HH-suite3 のインストール
以前の記事と同様に、conda を用いて仮想環境 hhsuite をつくり、そこにインストールします。conda や仮想環境、パッケージについては、別記事を参照して下さい。まずはターミナルで、
$ conda create -n hhsuite python=3.7
を実行します。y を選択し、完了してください。以下のように、この環境 hhsuite をアクティブにした上で、インストールします。
$ conda activate hhsuite $ conda install -c conda-forge -c bioconda hhsuite
y を選択し、完了してください。以下のように hhbilts コマンドを実行してみましょう。これが実際に検索の際に使用するコマンドです。
$ hhblits -h
HHblits 3.3.0: HMM-HMM-based lightning-fast iterative sequence search HHblits is a sensitive, general-purpose, iterative sequence search tool that represents both query and database sequences by HMMs. You can search HHblits databases starting with a single query sequence, a multiple sequence alignment (MSA), or an HMM. HHblits prints out a ranked list of database HMMs/MSAs and can also generate an MSA by merging the significant database HMMs/MSAs onto the query MSA. . . . Examples: hhblits -i query.fas -o query.hhr -d ./uniclust30 hhblits -i query.fas -o query.hhr -oa3m query.a3m -n 1 -d ./uniclust30 Download databases from <http://wwwuser.gwdg.de/~compbiol/data/hhsuite/databases/hhsuite_dbs/>.
というような表示が出れば、hhsuite のインストールが完了しており、hhblits による検索ができる状態になっています。
HH-suite用のデータベースのダウンロード
さきほどの表示の最後にも書かれていますように、hhblits 検索の対象となるデータベースをダウンロードする必要があります。今回は、Pfam (タンパク質ファミリーのデータベース)を基にしたデータベースを使用したいと思います。下記のコマンドを実行して、ファイルをダウンロードします。
$ curl -OL http://wwwuser.gwdg.de/~compbiol/data/hhsuite/databases/hhsuite_dbs/pfamA_34.0.tar.gz
圧縮状態でファイルサイズが2.0GB程ありますので、ネットワークが安定した環境で実行し、気長に待ってください。ダウンロードが完了したら、下記のコマンドで、解凍します。
$ tar -zxvf pfamA_34.0.tar.gz
pfamで始まるファイルが7つ得られると思います。これで、Pfamデータベースに対するhhblits検索が可能な状態になりました。
hhblits の使い方
それでは、実際にhhblitsを実行してみたいと思います。以前の記事でも用いた、マウス(ハツカネズミ)のミオグロビンの一次構造をクエリにした検索を行ってみましょう。UniProtデータベースのこちらから取得できます。これをテキストファイルとして保存します。ここでは myg.fasta という名前にしました。それでは、下記を実行してください。
$ hhblits -i myg.fasta -o myg.hhr -d ./pfam
-i myg.fasta でクエリを指定しています。また、-o 以下には保存ファイル名を指定します。さらに、-d ./pfam によって、先程解凍したPfamデータベースを指定しています(pfamで始まる7つのファイルが存在するディレクトリを指定する必要があります。今回の例では、./ としてカレントディレクトリを指定)。
Query sp|P04247|MYG_MOUSE Myoglobin OS=Mus musculus OX=10090 GN=Mb PE=1 SV=3 Match_columns 154 No_of_seqs 346 out of 349 Neff 10.923 Searched_HMMs 183 Date Fri Mar 26 20:12:26 2021 Command hhblits -i myg.fasta -o myg.hhr -d ./pfam No Hit Prob E-value P-value Score SS Cols Query HMM Template HMM 1 PF00042.23 ; Globin ; Globin 98.9 1.2E-13 2.5E-17 85.9 0.0 102 7-110 1-104 (107) 2 PF11563.9 ; Protoglobin ; Prot 95.7 3.9E-05 8.6E-09 46.3 0.0 132 2-147 10-150 (153) 3 PF12395.9 ; DUF3658 ; Protein 6.5 29 0.0057 18.7 0.0 18 3-20 8-25 (115) 4 PF07813.13 ; LTXXQ ; LTXXQ mot 4.5 43 0.0089 16.3 0.0 15 3-17 15-29 (107) 5 PF02184.17 ; HAT ; HAT (Half-A 2.7 86 0.017 11.9 0.0 10 29-38 9-18 (32) 6 PF08013.12 ; GatZ_KbaZ-like ; 1.8 1.3E+02 0.027 19.4 0.0 28 127-154 99-126 (418) 7 PF14842.7 ; FliG_N ; FliG N-te 1.7 1.4E+02 0.029 14.2 0.0 36 1-36 25-60 (104) 8 PF14722.7 ; KRAP_IP3R_bind ; K 1.5 1.9E+02 0.035 16.2 0.0 23 132-154 20-42 (145) 9 PF00380.20 ; Ribosomal_S9 ; Ri 1.3 2E+02 0.039 14.2 0.0 22 131-152 74-95 (122) 10 PF05823.13 ; Gp-FAR-1 ; Nemato 1.3 2E+02 0.04 14.7 0.0 18 1-18 116-133 (149)
上のような出力が得られると思います。また、myg.hhr ファイルにはこの出力と、それぞれのアライメントが保存されていると思います。PfamデータベースのPF00042.23 (Globin : E-value = 1.2E-13)がトップヒットし、PF11563.9 (Protoglobin: E-value = 3.9E-05)が2番目にヒットしています。
今回は、詳細が調べられているミオグロビンをクエリとし、上記のようにGlobin、Protoglobinがヒットする結果が得られました。次回以降、機能不明なタンパク質について、同様な検索を行ってみたいと思います。
コメント