跳转到主要内容

具有自监督学习的图像特征提取器

项目描述

cytoself

Code style: black PyPI Python Version DOI License

A rotating 3D UMAP

自监督深度学习编码蛋白质亚细胞定位的高分辨率特征

cytoself是我们开发的一个自监督模型,用于从显微镜图像中学习蛋白质亚细胞定位的特征。该模型在本文中详细描述:[1]。由cytoself推导出的图像表示包含了高度特定的特征,这些特征可以从蛋白质的定位中得出功能见解。

将cytoself应用于最近发布的OpenCell数据库中内源标记蛋白质的图像,创建了一个高度解析的蛋白质定位图谱[2]

[1] 小林宏文,等。“基于自监督深度学习的蛋白质亚细胞定位的高分辨率特征编码。” 自然方法 (2022)。 https://www.nature.com/articles/s41592-022-01541-z
[2] Cho, Nathan H,等。“OpenCell:人类细胞组织的内源性标记绘图。” 科学 375.6585 (2022): eabi6983。 https://www.science.org/doi/10.1126/science.abi6983

cytoself 的工作原理

cytoself 使用图像及其关联的标识信息(ID)作为标签,学习蛋白质的定位模式。当应用于 OpenCell 时,我们使用了细胞图像,其中每个图像中的蛋白质都是内源性标记的。对于每个图像,我们知道哪种蛋白质被标记,这就是使用的 ID。我们的模型隐含地学习忽略与相同 ID 关联的图像之间的差异,并尽力区分不同 ID 关联的图像。在实践中,cytoself 可以解决图像类别之间的非常细微的纹理差异,也可以忽略非常复杂的图像变化来源,如细胞形状、状态等...

A schematic of cytoself

此存储库包含的内容

此存储库提供三个主要组件:DataManagercytoself.modelsAnalytics

DataManager 是一个简单的模块,用于处理训练、验证和测试数据。您可能需要修改它以适应自己的数据结构。此模块位于 cytoself.data_loader.data_manager

cytoself.models 包含 cytoself 模型的三个不同变体的模块:无分割量化的模型、无预训练任务的模型以及“完整”模型(有关这些变体的详细信息,请参阅我们的预印本)。每个模型变体都有一个子模块,提供构建、编译和训练模型的方法(使用 tensorflow 构建)。

Analytics 是一个简单的模块,用于执行分析过程,如降维和绘图。您也可能想修改它以执行自己的分析。此模块位于 cytoself.analysis.analyticsOpen In Colab

预训练模型权重包含在 示例脚本 中。

注意:cytoself 将在不久的将来迁移到 PyTorch 实现。

安装

推荐:创建一个新环境,并在此环境中通过 PyPI 安装 cytoself

conda create -y -n cytoself python=3.7
conda activate cytoself
pip install cytoself

(可选)安装 TensorFlow GPU

如果您的计算机配备了支持 TensorFlow 1.15 的 GPU,则可以安装 TensorFlow-gpu 以利用 GPU。在安装 cytoself 之前安装以下包,或使用 conda 卸载现有的 CPU 版本并重新安装 GPU 版本。

conda install -y h5py=2.10.0 tensorflow-gpu=1.15

对于开发者

您还可以从本 GitHub 存储库安装 cytoself。

git clone https://github.com/royerlab/cytoself.git
pip install .

故障排除

如果在安装时遇到错误,请在 cytoself 文件夹内运行以下代码以手动安装依赖项。

pip install -r requirements.txt

作为完整依赖项的参考,可以在 environment.yml 中找到一个工作环境的快照。

示例脚本(如何使用 cytoself)

一个最小示例脚本位于 example/simple_training.py。通过 Open In Colab 学习如何使用 cytoself。

使用以下命令测试此软件包是否能在您的计算机上运行:

python examples/simple_example.py

计算资源

强烈建议使用 GPU 来运行 cytoself。例如,一个图像形状为 (100, 100, 2) 且批处理大小为 64 的完整模型需要约 9GB 的 GPU 内存。

测试环境

Google Colab (CPU/GPU/TPU)

macOS 10.14.6,RAM 32GB(CPU)

Windows10 Pro 64位,RTX 1080Ti,CUDA 11.6(CPU/GPU)

Ubuntu 18.04.6 LTS,RTX 2080Ti,CUDA 11.2(CPU/GPU)

数据可用性

预训练模型

论文 中使用的预训练模型。请按照 示例脚本Open In Colab 学习如何使用预训练模型。

model_protein_nucleardistance.h5:在目标蛋白质和核距离上训练的模型。
model_protein.h5:仅针对目标蛋白质训练的模型。
model_protein_nucleus.h5:在目标蛋白质和核上训练的模型。

本工作中使用的图像和蛋白质标签的全数据可在此找到。图像数据的形状为 [batch, 100, 100, 4],其中最后一个通道维度对应于 [目标蛋白质,核,核距离,核分割]

嵌入

全局表示及其标签的嵌入向量可通过以下链接获取。由于它们的大小很大,仅提供从测试数据提取的嵌入。

Global_representation.npy 形状为 114,806 张图像 x 9,216 个潜在维度。(3.9 GB)
label.csv 114,806 行 x 7 列。(6.2 MB)

图像和标签数据

由于数据量很大,整个数据被分割成 10 个文件。这些文件旨在连接在一起,形成一个大的 numpy 文件或一个大的 csv 文件。

Image_data00.npy
Image_data01.npy
Image_data02.npy
Image_data03.npy
Image_data04.npy
Image_data05.npy
Image_data06.npy
Image_data07.npy
Image_data08.npy
Image_data09.npy
Label_data00.csv
Label_data01.csv
Label_data02.csv
Label_data03.csv
Label_data04.csv
Label_data05.csv
Label_data06.csv
Label_data07.csv
Label_data08.csv
Label_data09.csv

项目详情


下载文件

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

源分发

cytoself-0.0.1.4.tar.gz(47.9 KB 查看哈希值

上传时间

构建分发

cytoself-0.0.1.4-py3-none-any.whl (60.3 kB 查看哈希值)

上传时间 Python 3

支持