配置DeepTMHMM环境

DeepTMHMM 1.0 Conda 环境配置文档

文档日期|Date: 2026-07-02
工具路径|Tool path: ~/software/deeptmhmm/DeepTMHMM-Academic-License-v1.0
Conda 环境|Conda env: deeptmhmm_v.1.0
适用场景|Scope: 在超算上为 biopytools tmhmm 模块切换到 DeepTMHMM 后端准备运行环境


一、背景|Background

DTU 的 DeepTMHMM 1.0 取代老的 TMHMM 2.0c(Perl 实现)作为跨膜螺旋/信号肽预测工具。两者差异较大:

维度 TMHMM 2.0c DeepTMHMM 1.0
实现 Perl 脚本 Python + PyTorch + ESM1b
调用 tmhmm -noplot in.fa python predict.py --fasta in.fa --output-dir out/
输出 文本统计(# ID Length: ...) predicted_topologies.3line + TMRs.gff3 + *.md + plot.png
运行 秒级,轻量 加载多个大模型,需计算节点
依赖 自带模型,无外部依赖 Python 3.8 + PyTorch 1.5.0 + fair-esm 等

DeepTMHMM 官方安装说明要求 Python 3.8PyTorch 1.5.0+cu92(CUDA 9.2,2020 年)。


二、关键决策:PyTorch 用 CPU 版|Key Decision: CPU-only PyTorch

为什么不按官方用 cu92 版?

torch==1.5.0+cu92 锁定在 CUDA 9.2 运行时,CUDA 9.2 只支持最大 compute capability 7.5 的卡(Turing 架构,如 T4 / RTX 2080)。超算上的 GPU 一般是 A100(cc 8.0)/ H100(cc 9.0)等新卡,CUDA 9.2 无法驱动它们,GPU 路走不通。

结论: 采用 CPU 推理。DeepTMHMM 推理在 CPU 上完全可用,只是慢一些;丢到计算节点多线程跑即可(predict.py 内部已 torch.set_num_threads(os.cpu_count()))。


三、配置步骤|Setup Steps

1. 创建 conda 环境|Create conda env

1
2
conda create -n deeptmhmm_v.1.0 python=3.8 pip -y
conda activate deeptmhmm_v.1.0

Python 3.8 是硬要求(predict.py 及其依赖只在 3.8 上验证过)。

2. 安装构建工具|Install build tools

1
pip install wheel Cython==0.29.37 pkgconfig==1.5.5

3. 安装 PyTorch(CPU 版)|Install PyTorch (CPU)

1
pip install https://download.pytorch.org/whl/cpu/torch-1.5.0%2Bcpu-cp38-cp38-linux_x86_64.whl

若确认有老式 Turing 卡且驱动足够旧,可改用 cu92 版(一般不推荐):

1
pip install https://download.pytorch.org/whl/cu92/torch-1.5.0%2Bcu92-cp38-cp38-linux_x86_64.whl

4. 安装其余依赖|Install remaining dependencies

requirements.txt 里有一行 torch==1.5.0+cu92,直接 pip install -r 会让 pip 去 PyPI 找这个带 +cu92 本地版本的包而失败。需先把 torch 那行剔除:

1
2
3
cd ~/software/deeptmhmm/DeepTMHMM-Academic-License-v1.0
grep -v '^torch==' requirements.txt > /tmp/deeptmhmm_req.txt
pip install -r /tmp/deeptmhmm_req.txt

其余依赖(biopython==1.79fair-esm==0.4.0h5py==3.7.0matplotlib==3.5.2numpy==1.23.4PeptideBuilder==1.1.0tqdm 等)均有现成 cp38 wheel 或纯 Python,安装无障碍。


四、验证|Verification

1
2
3
cd ~/software/deeptmhmm/DeepTMHMM-Academic-License-v1.0
python predict.py --fasta sample.fasta --output-dir result1
ls result1/

期望输出|Expected output:

  • predicted_topologies.3line — 三行格式拓扑(>id | 类型 / 序列 / 逐残基标签)
  • TMRs.gff3 — 跨膜区/信号肽 GFF3
  • deeptmhmm_results.md — Markdown 报告
  • plot.png — 拓扑图(序列较少时生成)
  • probabilities/ — 逐残基概率

出现 predicted_topologies.3lineTMRs.gff3 即环境配置成功。


五、注意事项与已知坑|Notes & Caveats

  1. 出网限制|Restricted egress: 超算出网受限。若 download.pytorch.org 拉不下来,需在有网机器下好 wheel,再 pip install <本地wheel路径>。其余 pip 包同理,依赖是否配了 PyPI 镜像。
  2. 正式运行必须上计算节点|Run on compute node: predict.py 要加载 ESM1b + 5 个 CV 模型,吃 CPU/内存。登录节点仅用于 sample.fasta 这类小数据验证;正式跑整批蛋白必须通过作业调度系统(如 sub)提交到计算节点。
  3. numpy ABI 风险|numpy ABI risk: torch 1.5.0 是 2020 年编译的,搭配 numpy==1.23.4 偶尔出现 numpy.ndarray size changed 警告。一般只是警告,不影响运行;若崩溃,降级 numpy 重试:
    1
    pip install numpy==1.21.6
  4. predict.py 输出目录不能预先存在|Output-dir guard: predict.py 源码第 42-45 行:若 --output-dir 已存在则直接报错退出。批处理/断点续传时需绕过(先跑进临时目录再搬结果,模块封装时会处理)。

六、环境信息记录|Environment Record

| 项目|Item | 值|Value |
|------|------|------|
| Conda env | deeptmhmm_v.1.0 |
| Python | 3.8.x |
| PyTorch | 1.5.0+cpu |
| 工具目录|Tool dir | ~/software/deeptmhmm/DeepTMHMM-Academic-License-v1.0 |
| 入口脚本|Entry | predict.py |
| 许可|License | Academic only(禁止商业用途)|


七、依赖清单(requirements.txt,剔除 torch 后)|Dependencies

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
biopython==1.79
certifi==2022.9.24
charset-normalizer==2.1.1
cycler==0.11.0
fair-esm==0.4.0
fonttools==4.38.0
future==0.18.2
h5py==3.7.0
idna==3.4
kiwisolver==1.4.4
matplotlib==3.5.2
numpy==1.23.4
packaging==21.3
PeptideBuilder==1.1.0
Pillow==9.3.0
pyparsing==3.0.9
python-dateutil==2.8.2
requests==2.28.1
six==1.16.0
tqdm==4.64.1
urllib3==1.26.12

配置DeepTMHMM环境
https://lixiang117423.github.io/article/deeptmhmm/
作者
李详【Xiang LI】
发布于
2026年7月2日
许可协议