具有自监督学习的图像特征提取器
项目描述
cytoself
自监督深度学习编码蛋白质亚细胞定位的高分辨率特征
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 可以解决图像类别之间的非常细微的纹理差异,也可以忽略非常复杂的图像变化来源,如细胞形状、状态等...
此存储库包含的内容
此存储库提供三个主要组件:DataManager
、cytoself.models
和 Analytics
。
DataManager
是一个简单的模块,用于处理训练、验证和测试数据。您可能需要修改它以适应自己的数据结构。此模块位于 cytoself.data_loader.data_manager
。
cytoself.models
包含 cytoself 模型的三个不同变体的模块:无分割量化的模型、无预训练任务的模型以及“完整”模型(有关这些变体的详细信息,请参阅我们的预印本)。每个模型变体都有一个子模块,提供构建、编译和训练模型的方法(使用 tensorflow 构建)。
Analytics
是一个简单的模块,用于执行分析过程,如降维和绘图。您也可能想修改它以执行自己的分析。此模块位于 cytoself.analysis.analytics
。
预训练模型权重包含在 示例脚本 中。
注意: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
。通过 学习如何使用 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)
数据可用性
预训练模型
在 论文 中使用的预训练模型。请按照 示例脚本 或 学习如何使用预训练模型。
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的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 046d892821d7b2e66d07546f30dc6d2b2ff8918b3271f2374e76cec40b6a84fa |
|
MD5 | dd8007250699343129e455d21e7d212a |
|
BLAKE2b-256 | 463383e92b7277081bae443add8b0b2da9f73aa05cb1017f04aba843ebc262b7 |
cytoself-0.0.1.4-py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 9849c38fa53e62c46f09c2fce6a859d3464c2410a2ff866570be4ec0e0ee817c |
|
MD5 | cfba582b9b4a0e5be6829caf4528c838 |
|
BLAKE2b-256 | c8dcc4bf8e63314c94cb8bd683c2bc7bd834b98ae43077fd280a6020609ff8f3 |