欢迎关注我的CSDN:https://spike.blog.csdn.net/
本文地址:https://blog.csdn.net/caroline_wendy/article/details/136384544
Paper: CryoAI: Amortized Inference of Poses for Ab Initio Reconstruction of 3D Molecular Volumes from Real Cryo-EM Images
- CryoAI: 基于摊销推理(Amortized Inference) 的姿态估计用于从真实冷冻电镜图像中进行三维分子体积的初步重构
发表于 ECCV 2022,作者:Axel Levy,Stanford University
CryoAI的主要内容是,用于同质构象的初步重构算法,该算法使用直接的基于梯度的优化方法,来估计单粒子冷冻电镜数据中的分子姿态和电子散射势。CryoAI结合可学习的编码器,用于预测每个粒子图像的姿态,以及物理的解码器,用于将每个粒子图像聚合到一个隐式的散射势体积的表示中。这个体积是以傅里叶域的形式存储的,以提高计算效率,并利用了一个现代的坐标网络架构,以提高内存效率。结合了一个对称化的损失函数,这个框架在模拟和实验数据上,都达到了与现有的冷冻电镜求解器相当的质量,而且在大数据集上的速度快了一个数量级,且内存需求比现有方法低得多。
摊销推理 (Amortized Inference) 是一种利用机器学习模型来预测优化问题的解的技术,从而避免每次都要求解复杂的优化问题。CryoAI在每次迭代中直接更新姿态和体积,而不需要计算每个粒子图像的后验分布,从而节省了大量的计算时间和内存空间,提高冷冻电镜三维重构的速度和效率。
GitHub: https://github.com/compSPI/cryoAI
配置环境,比较简单,Python 环境使用 3.7,即可:
conda create -n cryoai python=3.7
pip install -r requirements.txt
依次安装 Python 包,即可。
注意:PyTorch 建议使用 1.13 + 的版本,例如1.13.0 + CUDA 11.6,因为最新 CUDA 环境不兼容较低版本,即:
pip install torch==1.13.0+cu116 torchvision==0.14.0+cu116 torchaudio==0.13.0 --extra-index-url https://download.pytorch.org/whl/cu116bypy downfile /pytorch-pip-pkg/torch-1.13.0+cu116-cp37-cp37m-linux_x86_64.whl torch-1.13.0+cu116-cp37-cp37m-linux_x86_64.whl
bypy downfile /pytorch-pip-pkg/torchvision-0.14.0+cu116-cp37-cp37m-linux_x86_64.whl torchvision-0.14.0+cu116-cp37-cp37m-linux_x86_64.whl
训练数据,使用 Ribosome 10028,即可
- 参考 冷冻电镜 EMPIAR 数据集的下载过程
需要注意的是,构建训练集的过程中,需要数据的角度信息,使用 CryoSparc 进行额外估计,即,需要完成 Ab-Initio蛋白质结构重构 和 蛋白质结构Refinement,这两步操作,注意步骤 蛋白质结构Refinement 只需要执行1轮,终止,即可预估出角度。
- 参考 使用 cryoSPARC 基于单颗粒图像从头重构蛋白质三维结构
Job 输出数据格式如下:
├── P1_J6_mask.csg
├── P1_J6_particles.csg
├── P1_J6_passthrough_particles.cs
├── P1_J6_volume.csg
├── cryosparc_P1_J6_000_particles.cs
├── cryosparc_P1_J6_000_volume_map.cs
├── cryosparc_P1_J6_000_volume_map.mrc
├── cryosparc_P1_J6_000_volume_map_half_A.cs
├── cryosparc_P1_J6_000_volume_map_half_A.mrc
├── cryosparc_P1_J6_000_volume_map_half_B.cs
├── cryosparc_P1_J6_000_volume_map_half_B.mrc
├── cryosparc_P1_J6_000_volume_map_sharp.cs
├── cryosparc_P1_J6_000_volume_map_sharp.mrc
├── cryosparc_P1_J6_000_volume_mask_fsc.cs
├── cryosparc_P1_J6_000_volume_mask_fsc.mrc
├── cryosparc_P1_J6_000_volume_mask_refine.cs
├── cryosparc_P1_J6_000_volume_mask_refine.mrc
├── events.bson
├── gridfs_data
│ └── gridfsdata_0
├── job.json
└── job.log
使用 pyem 构建数据集的 star 文件,参考