使用 HMMER 进行 PFAM 注释

1. HMMER 简介

HMMER 和 BLAST 类似,主要用于序列比对。

2. HMMER 与 PFAM 的下载安装

安装 HMMER
$ wget ftp://selab.janelia.org/pub/software/hmmer3/3.1b2/hmmer-3.1b2.tar.gz
$ tar zxf hmmer-3.1b2.tar.gz
$ cd hmmer-3.1b2
$ ./configure --prefix=/opt/biosoft/hmmer-3.1b2 && make -j 8 && make install
$ echo 'PATH=$PATH:/opt/biosoft/hmmer-3.1b2/bin/' >> ~/.bashrc
$ source ~/.bashrc
下载 HMMER 软件说明文档
$ wget ftp://selab.janelia.org/pub/software/hmmer3/3.1b2/Userguide.pdf -P  /opt/biosoft/hmmer-3.1b2/

下载 PFAM 数据库
$ cd /opt/biosoft/hmmer-3.1b2/
$ wget ftp://ftp.ebi.ac.uk/pub/databases/Pfam/releases/Pfam27.0/Pfam-A.hmm.gz
$ wget ftp://ftp.ebi.ac.uk/pub/databases/Pfam/releases/Pfam27.0/Pfam-B.hmm.gz
$ gzip -d Pfam-A.hmm.gz; gzip -d Pfam-B.hmm.gz
得到 PFAM 数据库的 HMM 文件。 HMM 文件是文本文件,需要将其变成二进制格式,以加快运算速度,同时进行压缩,并建立成索引数据库。
$ hmmpress Pfam-A.hmm
$ hmmpress Pfam-B.hmm

3. 使用 hmmscan 进行 Pfam 注释

Pfam 数据库中每个编号代表一个蛋白质家族。Pfam 分 A 和 B 两个数据库,其中 A 数据库是经过手工校正的高质量数据库, B 数据库虽然质量低些,依然可以用来寻找蛋白质家族的保守位点。Pfam 最新 v27.0 版本的数据库中, A 数据库包含 14,836 个蛋白质家族编号(以 PF 开头); B 数据库包含 20,000 个蛋白质家族编号 (以 PB 开头)。
使用 hmmscan 进行 Pfam 注释示例:

$ /opt/biosoft/hmmer-3.1b2/bin/hmmscan -o out.txt --tblout out.tbl --noali -E 1e-5 /opt/biosoft/hmmer-3.1b2/Pfam-A.hmm file.fasta

生成结果文件 out.txt 和 out.tbl
out.txt 文件信息比较全面,但是不好阅读;
out.tbl 文件则是表格形式的结果,是一般需要的结果。

hmmscan 命令的常用参数:

$ hmmscan [-options]  

-h
    显示帮助信息
-o FILE
    将结果输出到指定的文件中。默认是输出到标准输出。
--tblout FILE
    将蛋白质家族的结果以表格形式输出到指定的文件中。默认不输出该文件。
--domtblout FILE
    将蛋白结构域的比对结果以表格形式输出到指定的文件中。默认不输出该文件。该表格中包含query序列起始结束位点与目标序列起始结束位点的匹配信息。
--acc
    在输出结果中包含 PF 的编号,默认是蛋白质家族的名称。
--noali
    在输出结果中不包含比对信息。输出文件的大小则会更小。
-E FLOAT    default:10.0
    设定 E_value 阈值,推荐设置为 1e-5 。
-T FLOAT
    设定 Score 阈值。
--domE FLOAT    default:10.0
    设定 E_value 阈值。该参数和 -E 参数类似,不过是 domain 比对设定的值。
--cpu
    多线程运行的CPU。默认应该是大于1的,表示支持多线程运行。但其实估计一般一个hmmscan程序利用150%个CPU。并且若进行并行化调用hmmscan,当并行数高于4的时候,会报错:Fatal exception (source file esl_threads.c, line 129)。这时,设置--cpu的值为1即可。