HMMER 是生物信息学上用来分析基因序列的一款软件,可以快速确定两组序列之间的相似程度,目前最新的版本为 3.1。可是 HMMER 官网 目前只提供 Linux 版,Windows 版处于停更的状态。也许跑序列分析的软件在 Linux 上才能用得顺溜?不过瞥了一眼官方文档,上面说道:「我们从 2011 年起就在进行 HMMER4 的开发,但一直处于缓慢开发的状态」,这可能才是 Windows 端 HMMER 真正的停更理由。
安装 HMMER
1. 下载
既然不能为了使用 Linux HMMER 特地开个虚拟机(好像也不是不行),那就找找看历史版本。通过已知的 Linux 版下载链接,发现 HMMER 把所有的历史软件都放在这个地方 备份着,因此得知最后一个 Windows HMMER 版本为 3.0。传送门 / 备份

下载、解压之后,是一堆看不懂的东西,没有可以直接双击打开的.exe
文件,大概是需要敲命令才能启动程序。搜索了一下安装方法
2. 安装
Windows HMMER 安装起来还算简单。
Windows10 用户打开 控制面板,搜索 环境变量,点击 编辑系统环境变量,选择 环境变量

Windows11 用户可以打开「开始菜单」,直接在上方搜索栏中键入「环境变量」。

点击第一个匹配项即可。

在 系统变量 里找到 Path
,点击 编辑

点击右边的 新建 按钮,填入 HMMER 所在的 路径

如果不知道啥叫路径,进入你放 HMMER 的地方,按照下图把地址栏里的东西复制下来,粘贴进上面的变量里,添加完成后,一路确定就行。

3. 测试
接下来 测试 看能不能用,需要用到可以输入命令的东西。常用的有 CMD 和 Windows PowerShell,二选一即可。
打开 CMD:WINDOWS 键 + R ,输入 cmd
,点击确定打开命令提示符

打开 Windows PowerShell:对着开始菜单 右键,选择 Windows PowerShell

然后输入
hmmscan -h
建议直接复制粘贴,避免出错。如果出现类似下面的东西,就说明安装上了。

使用 HMMER
参考了网上的教程
hmmbuild
和 hmmsearch
hmmbuild
:创建 hmm 模型(大概是这样)hmmsearch
:分析相似度(应该没有错)1. 获取 pfam ID
需要使用该基因的隐马尔科夫模型才能进行序列比对,而获取隐马尔科夫模型需要先得到该基因的保守蛋白结构域在 pfam 的 ID。可以通过参考文献中他人的工作,或是自己在 NCBI 中搜索来获取 pfam id,下面介绍后者。
进入 NCBI 蛋白质数据库,输入关键词,物种关键词需要其拉丁学名或是正式英文,以麻疯树的 MADS-box 基因为例,如 “MADS-box Jatropha curcas”

在搜索结果中随便选择一项查看详情,然后点击右侧 “Identify Conserved Domains” 搜索分析该蛋白保守域

从结果中可以看到,目标蛋白在 K-box 家族被命中,而且列表中已经给出 pfam id

2. 下载蛋白保守域对比序列
直接点击上图 pfam id,跳转到该蛋白家族的保守结构域详情,点击来源 pfam

在 pfam 详情页点击 Alignments,选择 Stockholm 格式,点击 generate 下载多重对比序列,得到的文件格式为.txt

3. 下载物种对比序列
下载麻疯树基因组蛋白数据。进入 NCBI 的 FTP 站点 ,找到 genomes ,利用 Ctrl
+F
在网页搜索其拉丁学名。麻疯树的拉丁学名为 Jatropha curcas ,那么我们可以尝试用 Jatropha 进行搜索

在下一个目录选择 protein ,下载 protein.fa.gz
,解压,得到 protein.fa
文件,这里也有 备份
4. 对比分析
把上面下载的两个文件全部复制到 HMMER 的文件夹里,当然也可以放在别的文件夹里,然后打开命令提示符。
命令提示符默认是在 C:\Users\用户>
这个目录里操作,而我们要切换到 HMMER 所在的目录,才能继续操作。
如果 HMMER 不在 C 盘,就需要切换盘符,比如 D 盘,就输入
D:
按下回车,就进入 D 盘了,其他盘方法类似。然后切换到 HMMER 所在的位置
cd HMMER安装位置
比如
cd D:\hmmer
若是报错,可能是因为路径包含中文或其他非英文字符,需要使用英文的单引号将路径包住,比如这样
cd 'D:\假装有中文\hmmer'
接下来,使用 hmmbuild
命令,将获取的蛋白保守域对比序列转换成 hmm 模型,我下载的文件名为 PF01486_seed.txt
,那么输入
hmmbuild hmm文件 需要转换的文件
比如
hmmbuild PF01486.hmm PF01486_seed.txt
然后将转换的 hmm 与麻疯树蛋白序列对比,使用 hmmsearch
命令,输入
hmmsearch PF01486.hmm protein.fa > PF01486.out

运行结束,生成 PF01486.out
文件,右键以记事本打开

就可以看到比对结果了。
如果这篇文章帮到了你,不妨点击下面的 “赏杯咖啡”,给我一些物质上的奖励,这样更能让我有写下去的动力。但不代表本文会持续更新 XD
- 简书:windows下安装hmmer软件进行结构域模式扫描 ↩
- OmicsClass:利用NCBI和Pfam数据库查找基因家族保守结构域相关信息 ↩
本文作者:mikusa
本文链接:https://www.himiku.com/archives/hmmer.html
版权声明:所有文章除特别声明外均系本人自主创作,转载及引用请联系作者,并注明出处(作者、原文链接等)。
Hmmer 有更新吗
Windows 版早停更了
老师,为什么我输出的 out. 文件一直是显示 0KB 啊?
大佬我输入 hmmer 所在位置以后提示不是内部或外部命令,也不是可运行的程序或批处理文件 是什么意思啊?前面的步骤的没问题呀 qaq
环境变量没有添加到系统里吧
是将 hmmer 添加进 path 那里吗?我是按照步骤添加到系统变量 - path - 新建了呀 (ノ °ο°) ノ 重新操作了一遍还是不行
不应该呀,确定准确无误地填了 hmmer 的路径吗?
解决了谢谢!请问输出结果阈值怎么设置呀?比如怎么筛掉 E-value 值高于 1e-05 的家族成员呀 55555 感谢回复!
大佬 hmmsearch 有教程没有,我自己老是搞不出来,,
出现 Failed to open sequence file protein.fa for reading
现在解决了,感谢大佬 ヾ (≧∇≦*) ゝ
意思是说 protein.fa 这个文件打不开,你看看是不是下载错了?
我这个教程只是逞一时之用,毕竟不是专业的,抱歉啊……
是我搞错了,现在问题解决了,感谢大佬的教程 ୧(๑・̀⌄・́๑)૭
请问你是怎么解决的呢
老哥您好,我想问下 HMMER 中使用 hmmbuild 将获取的蛋白保守域对比序列转换成 hmm 模型时报错,显示 “Error: Alignment file PF03106_seed.txt doesn't exist or is not readable”,但是我的 PF03106_seed.txt 文件是在 HMMER 的文件夹中,这是什么原因呢
如果是不存在的话,会不会是输命令的时候,输错了这个文件名?
如果是这个文件打不开的话,把文件后台关了再试试。
谢谢老哥,已经解决了
你好老哥,我也出现这种 “Error: Alignment file PF03106_seed.txt doesn't exist or is not readable” 但是后台没打开文件,文件名也没有输错,这是什么原因呢?感谢老哥!
那是不是输错路径了,才会报错文件不存在?
E:\hmmer>hmmsearch.exe PF01535.hmm potato_pep.fasta > PF01535.out
Error: Failed to open hmm file PF01535.hmm for reading.
我好菜,求大佬救我!!!(qq 邮箱号接收消息)
说是这个文件打不开,你把文件后台关了再试试
还真是,已经解决了,谢谢
太感谢了~~~~
我可能是傻瓜中的版本,在官网没找它的 windows 的版本,按照其他人的方法找它的源代码也没有用
找不到的话用我这里的备份吧
大大大大佬,你的 hmmer 可以正常使用么?最近有没有出现 [Alignment file PFxxxxx_seed.txt doesn't exist or is not readable] 的提示!我的突然就不能用了艾
这不就是 seed 文件不存在吗?把文件准备好啊……
是大佬,我死了