[Rosetta]在Ubuntu 22.04上用Docker安装Rosetta

发布者: 站长-R 分类: Rosetta,生物信息,计算机大类 发布时间: 2026-05-25 17:14 访问量: 95 次浏览

Rosetta 是计算结构生物学领域最强大的分子建模与设计套件之一,但由于其复杂的依赖环境,编译安装对新手极不友好。本教程将带你通过 Docker 的方式,一键部署官方最新版 Rosetta,并完成你的第一个结构优化任务。

第一部分:准备工作——安装 Docker 环境

如果你的机器上尚未安装 Docker,请先执行以下步骤。

1. 卸载旧版本(可选但推荐)

sudo apt-get remove docker docker-engine docker.io containerd runc

2. 设置 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-plugin

3. 验证安装并配置用户权限

# 验证 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"

你会在输出中看到 relaxrosetta_scriptsAbinitioRelax 等数十个常用程序。由于这些目录已包含在环境变量 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 结尾的文件都有一个同名的快捷方式,直接使用快捷方式名称即可运行。

总结

通过本教程,你完成了:

  1. 在 Ubuntu 22.04 上安装 Docker 并配置权限。
  2. 拉取 Rosetta 官方 Docker 镜像。
  3. 挂载本地目录启动容器,实现文件互通。
  4. 确认了 Rosetta 可执行文件的正确路径并验证版本。
  5. 运行 relax 协议完成首个结构优化任务。

Docker 化的 Rosetta 让你无需关心复杂的编译依赖,将精力专注于科学问题本身。现在,你可以自由探索 Rosetta 强大的功能库,开启你的计算结构生物学研究之旅!

最后,Rosetta使用过程中可能需要众多的官方库和脚本,这些内容你可以从rosetta官方教程继续深入学习,

Rosetta官方教程:https://docs.rosettacommons.org/demos/latest/Home
Rosetta官方GitHub库:https://github.com/RosettaCommons/rosetta


版权声明:本文为原创教程,基于作者实际部署经验整理。Rosetta 对学术及非商业用途免费,商业使用需购买许可。

    如果觉得本站对您有帮助,请随意赞赏。您的支持将鼓励本站走向更好!!

    发表回复

    您的邮箱地址不会被公开。 必填项已用 * 标注