[Rosetta]在Ubuntu 22.04上用Docker安装Rosetta
Rosetta 是计算结构生物学领域最强大的分子建模与设计套件之一,但由于其复杂的依赖环境,编译安装对新手极不友好。本教程将带你通过 Docker 的方式,一键部署官方最新版 Rosetta,并完成你的第一个结构优化任务。
第一部分:准备工作——安装 Docker 环境
如果你的机器上尚未安装 Docker,请先执行以下步骤。
1. 卸载旧版本(可选但推荐)
sudo apt-get remove docker docker-engine docker.io containerd runc2. 设置 Docker 官方仓库并安装
# 更新软件包索引并安装依赖
sudo apt-get update
sudo apt-get install ca-certificates curl
# 添加 Docker 官方 GPG 密钥和软件源
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
# 安装 Docker 引擎及插件
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin3. 验证安装并配置用户权限
# 验证 Docker 是否安装成功
sudo docker run hello-world看到欢迎信息即表示安装成功。为了避免每次输入 sudo,将当前用户加入 docker 组:
sudo usermod -aG docker $USER执行后请务必注销并重新登录,或者执行 newgrp docker 刷新权限。
第二部分:拉取并运行 Rosetta 官方镜像
Rosetta Commons 在 Docker Hub 上维护了官方镜像,我们可以直接拉取。
1. 拉取最新版 Rosetta 镜像
docker pull rosettacommons/rosetta:latest镜像大小约为数 GB,请耐心等待。下载完成后会自动解压。
2. 创建本地工作目录并启动容器
为了在宿主机(你的 Ubuntu)和容器之间交换文件,我们采用挂载目录的方式启动容器。
# 在你的家目录下创建一个专门的工作目录
mkdir -p ~/rosetta_work
cd ~/rosetta_work
# 启动容器,并将当前目录 (pwd) 映射到容器内的 /data 目录
docker run -it --rm -v "$(pwd)":/data -w /data rosettacommons/rosetta:latest参数解释:
-it:以交互式终端运行。--rm:容器退出后自动删除,保持系统整洁。-v "$(pwd)":/data:将当前宿主机目录挂载到容器的/data。-w /data:进入容器后自动切换到/data工作目录。
执行后,终端提示符会变为类似 root@3c9fd86bee54:/data#,说明你已成功进入 Rosetta 运行环境。
第三部分:验证安装可用性
在容器内部执行以下命令,确认 Rosetta 核心程序已就绪。
1. 查看版本信息
rosetta_scripts --version正常输出应包含类似以下内容:
core.init: Rosetta version: 2025.51+HEAD.612b6ef9e9
core.init: command: rosetta_scripts --version
...2. 确认可执行文件的真实位置
在官方镜像中,Rosetta 的所有可执行程序已被放置在系统的默认搜索路径 /usr/local/bin/ 中,你可以直接通过命令名调用它们。运行以下命令即可查看完整列表:
ls /usr/local/bin/ | grep -E "rosetta|relax|Abinitio"你会在输出中看到 relax、rosetta_scripts、AbinitioRelax 等数十个常用程序。由于这些目录已包含在环境变量 PATH 中,后续使用时无需输入完整路径,直接键入程序名即可。
第四部分:运行一个简单的结构优化任务 (Relax)
现在我们用一个真实的蛋白结构文件来测试 Rosetta 的 relax 功能。
1. 准备输入文件
在你的宿主机(Ubuntu)上,将任意一个 PDB 格式的蛋白结构文件放入 ~/rosetta_work/ 目录。例如,我们假设文件名为 input.pdb。
2. 在容器内运行优化命令
在刚才的容器终端中执行:
relax -s input.pdb -use_input_sc -ignore_unrecognized_res -nstruct 1参数解释:
-s input.pdb:指定输入结构文件。-use_input_sc:保留输入文件中的原始侧链构象作为起始点。-ignore_unrecognized_res:忽略文件中可能存在的非标准残基或断点。-nstruct 1:只生成一个输出结构(不进行多次采样)。
3. 观察计算过程
程序会打印大量初始化信息和迭代日志。对于较大的蛋白(例如几百个残基),计算可能需要几分钟到几十分钟。日志末尾出现以下内容时表示任务成功完成:
protocols.jd2.JobDistributor: input_0001 reported success in XXX seconds
protocols.jd2.JobDistributor: 1 jobs considered, 1 jobs attempted in XXX seconds此时,退出容器(输入 exit 或按 Ctrl+D),回到宿主机终端,在 ~/rosetta_work/ 目录下你会看到生成的 input_0001.pdb 文件,这就是优化后的结构。
第五部分:常见问题与进阶技巧
问题1:运行 docker 命令时提示 permission denied
原因:当前用户没有操作 Docker 守护进程的权限。
解决:执行 sudo usermod -aG docker $USER 并注销重新登录。
问题2:如何对 AlphaFold 预测的模型进行高质量优化?
对于 AlphaFold 模型,直接无约束优化容易导致结构变形。推荐添加强约束进行局部弛豫:
relax -s alphafold_model.pdb \
-use_input_sc \
-ignore_unrecognized_res \
-relax:constrain_relax_to_start_coords \
-relax:coord_constrain_sidechains \
-relax:ramp_constraints false \
-nstruct 20此命令会在强力坐标约束下生成 20 个优化结构,避免骨架发生大幅漂移。
问题3:如何查看其他可用的 Rosetta 应用程序?
使用 ls /usr/local/bin/ | grep default 可以列出所有已编译的标准应用程序。每个以 .default.linuxgccrelease 结尾的文件都有一个同名的快捷方式,直接使用快捷方式名称即可运行。
总结
通过本教程,你完成了:
- 在 Ubuntu 22.04 上安装 Docker 并配置权限。
- 拉取 Rosetta 官方 Docker 镜像。
- 挂载本地目录启动容器,实现文件互通。
- 确认了 Rosetta 可执行文件的正确路径并验证版本。
- 运行
relax协议完成首个结构优化任务。
Docker 化的 Rosetta 让你无需关心复杂的编译依赖,将精力专注于科学问题本身。现在,你可以自由探索 Rosetta 强大的功能库,开启你的计算结构生物学研究之旅!
最后,Rosetta使用过程中可能需要众多的官方库和脚本,这些内容你可以从rosetta官方教程继续深入学习,
Rosetta官方教程:https://docs.rosettacommons.org/demos/latest/Home
Rosetta官方GitHub库:https://github.com/RosettaCommons/rosetta
版权声明:本文为原创教程,基于作者实际部署经验整理。Rosetta 对学术及非商业用途免费,商业使用需购买许可。



