跳转到主要内容

用于cryoEM数据的通用Python类型和验证器。

项目描述

cryotypes

License PyPI Python Version CI codecov

cryotypes 定义了一组简单、可扩展的数据结构,用于cryoEM数据的基本类型及其相关元数据

  • PoseSet:一组粒子姿态,兼容2D和3D数据
  • ProjectionModel:一组投影模型(倾斜系列对齐)的参数
  • Tomogram:一个3D图像
  • Micrograph:一个2D图像

每个cryotype定义了一个experiment_id属性,它被用作单个实验的唯一标识符。这可以用于,例如,将粒子与正确的倾斜系列和断层扫描相匹配。

图像

一个Image是一个数据类,它包含一个简单的数据数组和一些元数据。

图像字段

字段 语义
data 图像数据(ZYX排序)
experiment_id 微图/倾斜系列的标识符
pixel_spacing 各向同性的像素/体素间距
source 此数据的源文件
stack 数据是否代表一组2D图像

PoseSet

PoseSet是一个数据类,包含一些字段,描述了一组粒子的位置、方向等。它可以用于2D和3D粒子的姿态。

PoseSet字段

字段 语义
position 粒子位置(x,y,z)以像素为单位
shift 粒子位移(x,y,z)以像素为单位
orientation 粒子方向
experiment_id 微图/倾斜系列的标识符
pixel_spacing 粒子位置各向同性的像素/体素间距
source 此数据的源文件

位置

粒子位置是2D或3D图像中的坐标(对于2D,z被简单地设置为0)。第一个像素的中心被假定为原点 (0, 0, 0),粒子位置的单位是像素。

位移

粒子偏移以图像像素为单位,并添加到位置中,因此位置 + 偏移是粒子在断层扫描中的位置。

取向

粒子取向存储为scipy.spatial.transform.Rotation对象。这些转换应旋转参考的基础向量(按顺序xyz),使其在断层扫描中正确取向。

注意:这会产生旋转的基础向量顺序xyz,而图像中的维度通常是zyx!

投影模型

ProjectionModel是一个具有投影模型参数特定列标题的pandas DataFrame。这些信息共同构成“倾斜系列对齐”。

标题 Python名称 语义
rotation_x ROTATION_X 样品围绕x轴的旋转
rotation_y ROTATION_Y 样品围绕y轴的旋转
rotation_z ROTATION_Z 样品围绕z轴的旋转
dx SHIFT_X 样品在相机平面x维度的位移
dy SHIFT_Y 粒子在相机平面y维度的位移
experiment_id EXPERIMENT_ID 微图/倾斜系列的标识符
pixel_spacing PIXEL_SPACING 位移的各向同性像素/体素间距
source SOURCE 数据来源文件的引用

在显微镜参考系中,z轴是光束方向。通过rotation_xrotation_yrotation_z在x轴、y轴、然后z轴上对外部旋转断层扫描,随后沿z轴(光束方向)投影,然后通过dxdy在相机平面中移动2D图像,产生实验投影图像。

还提供了一个实用函数,用于从这些数据生成投影矩阵。这些投影矩阵可以用来从断层扫描中的3D位置计算倾斜图像中的2D位置。

from cryotypes.projectionmodel import projection_model_to_projection_matrices

projection_matrices = projection_model_to_projection_matrices(
    df=projection_model,  # ProjectionModel dataframe
    tilt_image_center=(1919, 1355),  # tilt-image rotation center (xy)
    tomogram_dimensions=(3838, 3710, 2000)  # dimensions of tomogram (xyz)
)

注意:这些投影矩阵仅适用于此函数中提供的维度断层扫描中的位置,并且必须为不同的断层扫描维度重新计算。

断层扫描

Tomogram是一个遵循特定python Protocol的断层扫描数据对象。协议指定以下属性

  • data:一个类似数组的3D图像(numpydask等)
  • experiment_id:实验标识符
  • pixel_spacing:各向同性像素/体素间距

项目详细信息


下载文件

下载适用于您的平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分布

cryotypes-0.2.0.tar.gz (13.5 KB 查看散列值

上传时间

构建分布

cryotypes-0.2.0-py2.py3-none-any.whl (11.2 KB 查看散列值

上传时间 Python 2 Python 3

由...