配置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: 在超算上为 biopytoolstmhmm模块切换到 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.8 和 PyTorch 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 | |
Python 3.8 是硬要求(predict.py 及其依赖只在 3.8 上验证过)。
¶2. 安装构建工具|Install build tools
1 | |
¶3. 安装 PyTorch(CPU 版)|Install PyTorch (CPU)
1 | |
若确认有老式 Turing 卡且驱动足够旧,可改用 cu92 版(一般不推荐):
1pip 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 | |
其余依赖(biopython==1.79、fair-esm==0.4.0、h5py==3.7.0、matplotlib==3.5.2、numpy==1.23.4、PeptideBuilder==1.1.0、tqdm 等)均有现成 cp38 wheel 或纯 Python,安装无障碍。
¶四、验证|Verification
1 | |
期望输出|Expected output:
predicted_topologies.3line— 三行格式拓扑(>id | 类型 / 序列 / 逐残基标签)TMRs.gff3— 跨膜区/信号肽 GFF3deeptmhmm_results.md— Markdown 报告plot.png— 拓扑图(序列较少时生成)probabilities/— 逐残基概率
出现 predicted_topologies.3line 和 TMRs.gff3 即环境配置成功。
¶五、注意事项与已知坑|Notes & Caveats
- 出网限制|Restricted egress: 超算出网受限。若
download.pytorch.org拉不下来,需在有网机器下好 wheel,再pip install <本地wheel路径>。其余 pip 包同理,依赖是否配了 PyPI 镜像。 - 正式运行必须上计算节点|Run on compute node:
predict.py要加载 ESM1b + 5 个 CV 模型,吃 CPU/内存。登录节点仅用于sample.fasta这类小数据验证;正式跑整批蛋白必须通过作业调度系统(如sub)提交到计算节点。 - 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 - 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 | |