简单的讲HMMER就是一款比对软件,可以类似于blast等,但是它提供的比对结果要精确于blast,相应的速度也要慢。与其类似的比对软件有PSI-blast、SAM、PFTOOLS等。
用途一:对于一条未知的序列在蛋白质数据库中寻找比对,HMMER完全可以取代目前常用的BLASTP 和 PSI-BLAST。
用途二:可以自动注释蛋白质结构域。包括pfam、SMART。
用途三:在数据库中寻找已有家族的相似序列。
HMMER的程序如下,注意每个程序都是输出文件在前面,输入文件在后面:
hmmbuild (建立参考数据的隐马尔可科夫模型)
输入:多重序列比对的文件(Stockholm file)
输出:建立的这些多重序列比对的隐马尔可科夫模型,
例子: hmmbuild globins4.hmm tutorial/globins4.sto
hmmalign (多重序列比对)输入:输入是fasta文件输出:Stockholm 格式的多重序列比对文件例子:hmmalign globins4.hmm tutorial/globins45.fa
hmmsearch(在数据库中寻找已经建立好的模体)
输入:建立好的参考数据模型、要搜索的数据库
输出:输出结果
例子: hmmsearch globins4.hmm uniprot sprot.fasta > globins4.out
====================================================
phmmer(对于只有一条未知蛋白序列的情况下,就省去多重序列比对和建立模型的过程直接一步到位,期间使用了BLOSUM62 scores打分矩阵,类似于BLASTP-like)
输入:tutorial/HBB HUMAN 是你要检测的fasta格式的序列,uniprot sprot.fasta你要搜索的数据库
1 | phmmer tutorial/HBB HUMAN uniprot sprot.fasta |
nhmmer(类似于blastn,输入的query可以是fasta格式的DNA或者RNA序列,但是只能是一条。如果是多条请先做多重序列比对(hmmalign),然后使用建立模型(hmmbuild),然后生成的hmm作为输入)
1 | nhmmer MADE1.hmm dna target.fa > MADE1.out |
=================================================
如果你有未知的序列去搜寻已知的模型数据库,例如:Pfam, SMART, or TIGRFams.这个时候搜寻的过程就使用hmmscan,相应的核酸序列就使用nhmmscan.
首先还是要建立模型数据库,如果你要合并多个可以直接:
1 | cat globins4.hmm fn3.hmm Pkinase.hmm > minifam |
如果你仅仅有的是模型数据库的多重序列比对格式文件例如来自pfam数据库的(Stockholm file)Pfam-A.seed文件:你可以利用hmmbuild 建立模型数据库:
1 | hmmbuild Pfam-A.hmm Pfam-A.see |
生成的文件为pfam-A.hmm由于你一般建立的模型数据库比较大,所以需要建立index,运行:hmmpress minifam(感觉有点像formatdb)
最后运行:
1 | mmscan minifam tutorial/7LESS DROME |
原文来自:http://blog.sina.com.cn/s/blog_83f77c940101rzlo.html