hmmer下载与安装
对于Mac OS/X, Linux, UNIX系统,用源代码编译安装:
% wget ftp://selab.janelia.org/pub/software/hmmer3/3.0/hmmer-3.0.tar.gz % tar zxf hmmer-3.0.tar.gz % cd hmmer-3.0 % ./configure % make % make check
windows系统,直接下载二进制压缩包,解压就可以使用。
hmmer包含的程序
phmmer: 与Blastp类似,使用一个蛋白质序列搜索蛋白质序列库;
>phmmer tutorial/HBB HUMAN uniprot sprot.fa
jackhmmer: 与psiBlast类似,蛋白质序列迭代搜索蛋白质序列库;
>jackhmmer tutorial/HBB HUMAN uniprot sprot.fa
hmmbuild: 用多重比对序列构建HMM模型;
hmmsearch: 使用HMM模型搜索序列库;
hmmscan: 使用序列搜索HMM库;
hmmalign: 使用HMM为线索,构建多重比对序列;
>hmmalign globins4.hmm tutorial/globins45.fa
hmmconvert: 转换HMM格式
hmmemit: 从HMM模型中,得到一个模式序列;
hmmfetch: 通过名字或者接受号从HMM库中取回一个HMM模型;
hmmpress:格式化HMM数据库,以便于hmmscan搜索使用;
hmmstat: 显示HMM数据库的统计信息;
使用HMM模型搜索序列数据库
使用hmmbuild构建HMM模型,输入为Stockholm格式或者FASTA格式的多重比对序列文件(如:tutorial/globins4.sto),命令如下:
>hmmbuild globins4.hmm tutorial/globins4.sto
globins4.hmm为输出的HMM模型
使用hmmsearch搜索蛋白质序列数据库,蛋白质序列数据库为FASTA格式,命令如下:
>hmmsearch globins4.hmm uniprot sprot.fasta >globins4.out
globins4.out为输出的结果文件,如下:
*示例使用官方教程中的示例
使用蛋白质序列搜索HMM数据库
构建HMM数据库,HMM数据库是包含多个HMM模型的文件,可以从Pfam、SMART、TIGRFams下载,也可以自己由多重比对序列集中构建,如:
>hmmbuild globins4.hmm tutorial/globins4.sto
>hmmbuild fn3.hmm tutorial/fn3.sto
>hmmbuild Pkinase.hmm tutorial/Pkinase.sto
>cat globins4.hmm fn3.hmm Pkinase.hmm >minifam
使用hmmpress格式化数据库,包括压缩以及创建索引,命令如下:
>hmmpress minifam
这个步骤可以很快的执行完成,输出的内容如下:
Working… done.
Pressed and indexed 3 HMMs (3 names and 2 accessions).
Models pressed into binary file: minifam.h3m
SSI index for binary model file: minifam.h3i
Profiles (MSV part) pressed into: minifam.h3f
Profiles (remainder) pressed into: minifam.h3p
使用hmmscan搜索HMM数据库,命令如下:
>hmmscan minifam tutorial/7LESS_DROME
这问题我也遇到了,网上找半天没找到合适的方案,于是自己写了一个,代码如下
import glob # 都是标准库的东西
import os
# 把你想建hmm的fasta文件(比对好的)和本程序放在同一个文件夹里,然后运行本程序直接跑hmmbuild
os.chdir(os.path.dirname(__file__))
fs = glob.glob('*.fasta') # 获取每个fasta文件,如果你的fasta文件里有不是.fasta后缀名的,可以改这里,或者直接改成'*.fa*'
for f in fs:
hmm = os.path.splitext(f)[0] + '.hmm'
stockholm = os.path.splitext(f)[0] + '.sto'
with open(f, 'r') as fhandle: # 这个是读fasta文件用的,把所有fasta文件都保存到列表里
fastas = ['>' + tmp.replace('n', 'r', 1).replace('n', '').replace('r', 'n') for tmp in tuple(filter(None, (fhandle.read().split('>'))))]
for i in range(len(fastas)):
fastas[i] = fastas[i].split('n')
fastas[i][0] = fastas[i][0].split()[0][1:10]
tmp = []
for j in range(len(fastas[i][1]) // 80 + 1):
tmp.append(fastas[i][1][80 * j : 80 * j + 80])
fastas[i][1] = tmp
with open(stockholm, 'w') as out: # 这里在写sto文件
out.write('# STOCKHOLM 1.0nn')
for j in range(len(fastas[0][1]) - 1):
for i in range(len(fastas)):
out.write('% -12s%sn' % (fastas[i][0], fastas[i][1][j]))
out.write('n')
for i in range(len(fastas)):
out.write('% -12s%sn' % (fastas[i][0], fastas[i][1][-1]))
out.write('//')
os.system('hmmbuild --amino %s %s' % (hmm, stockholm)) # 这里在跑hmmbuild,你可以自行修改里面的参数
1,从现有的生物信息学工具开始,要熟悉如何利用先用的软件、网络服务器、数据库等等,为生物研究服务,不要做重复工作,能用现成的就不自己开发。
2,熟悉命令行的操作系统,DOS,Linux,可以编写简单的shell;进而能安装命令行级的程序,跑一些常规的流程。要学习如何寻找和安装软件,这是最重要也是最基本的技能。其实很多问题,如果找到合适的软件包,都是迎刃而解的。
3,熟悉一种简单的脚本语言,个人推荐用python,具体原因可以见我的帖子。在没有现成工具时,或需要数据格式转换时,小的脚本是非常有用的。一般的应用无需自己写太多的代码,要相信我们通常遇到的问题,别的高手可能早就遇到了,所以网络上有大量的工具包。至于更多的编程语言,一门精则门门通,R,perl等都是类似的。
4,熟悉简单的算法和数据结构的知识,这样就可以理解很多程序的内在机制,进而知道它们的优点和缺点,对自己写程序也有帮助。有精力的话,进而学习统计、机器学习等。。
5,在自己的生物领域内扩展,调研,分析,开发。
以上是能否在Windows系统上安装HMMER软件?的详细内容。更多信息请关注PHP中文网其他相关文章!