Cellpose
这是一种通用的细胞和细胞核分割算法(v1.0),可以针对您自己的数据进行优化(v2.0),并且(新功能)执行图像修复(v3.0)。
Cellpose由Carsen Stringer和Marius Pachitariu编写。要了解Cellpose3(图像修复),请阅读论文。要了解Cellpose 2.0(人机交互循环),请阅读论文或观看演讲。要了解Cellpose 1.0,请阅读论文或观看演讲。如需支持,请提交问题。 请查看下方的安装说明https://github.com/MouseLand/cellpose/blob/main/README.md/#Installation,也请查看cellpose.readthedocs.io上的详细文档以获取更多信息。
:star2: v3(2024年2月):star2:
Cellpose3在图形用户界面、API和命令行界面中启用了图像恢复功能(保存为_seg.npy
)。想了解更多...
- 查看论文。
- API文档在此
- 图像恢复的Google Colab示例笔记本:,使用新的
CellposeDenoiseModel
。 - 使用新的超通用"cyto3"模型的Google Colab示例笔记本:。使用
model_type="cyto3"
尝试新的cyto3
超通用Cellpose模型。
去噪 | 去模糊 | 上采样 |
---|---|---|
引用
如果您使用Cellpose 1、2或3,请引用Cellpose 1.0论文: Stringer, C., Wang, T., Michaelos, M., & Pachitariu, M. (2021). Cellpose: a generalist algorithm for cellular segmentation. Nature methods, 18(1), 100-106.
如果您使用人机交互训练,请同时引用Cellpose 2.0论文: Pachitariu, M. & Stringer, C. (2022). Cellpose 2.0: how to train your own model. Nature methods, 1-8.
如果您使用新的图像恢复模型或cyto3,请同时引用Cellpose3论文: Stringer, C. & Pachitariu, M. (2024). Cellpose3: one-click image restoration for improved segmentation. bioRxiv.
:triangular_flag_on_post: Cellpose中的所有模型,除了yeast_BF_cp3
、yeast_PhC_cp3
和deepbacs_cp3
之外,都在一定程度上使用了CC-BY-NC许可的数据进行训练。Cellpose注释数据集也采用CC-BY-NC许可。
:star2: v2.0(2022年4月):star2:
Cellpose 2.0支持人机交互式模型训练!了解更多信息...
- 查看这个Twitter帖子以获取概述。
- 查看这篇论文了解算法和性能的更多细节。此外,这里有一篇简短的论文评论链接。
- 观看简短的概述讲座和更长的教程讲座,介绍如何在GUI和Jupyter notebook中运行Cellpose 2.0。
- 查看完整的人机交互视频。
- 查看Colab notebook,获取云端GPU访问权限以训练模型或运行自定义模型:。
- 查看文档了解如何使用,并查看GUI中"Models"菜单的帮助信息。
Cellpose不再支持Mxnet。如需使用Mxnet,请使用v1.0.2版本(不推荐)。
安装
如果您的电脑上安装了Python 3.8或更高版本,可以使用conda或原生Python安装Cellpose。
本地安装(< 2分钟)
系统要求
支持在Linux、Windows和Mac OS上运行代码。要运行图形界面,您需要Yosemite之后的Mac OS版本。运行软件至少需要8GB RAM。对于较大的图像和3D体积,可能需要16GB-32GB内存。该软件在Windows 10和Ubuntu 18.04上经过大量测试,在Mac OS上的测试相对较少。如果安装出现问题,请提交issue。
依赖项
Cellpose依赖以下优秀的包(如果缺失,conda/pip会自动安装):
选项1:使用conda安装
如果您有旧的cellpose
环境,可以在创建新环境之前使用conda env remove -n cellpose
删除它。
如果使用GPU,请确保正确安装了驱动程序和CUDA库。
- 安装Anaconda Python发行版。注意,如果没有将anaconda添加到路径中,可能需要使用anaconda提示符。
- 打开anaconda提示符/命令提示符,确保路径中包含Python 3的
conda
- 使用
conda create --name cellpose python=3.8
创建新环境。我们推荐使用Python 3.8,但Python 3.9和3.10也可能正常工作。 - 运行
conda activate cellpose
激活新环境 - (选项1)要安装带GUI的cellpose,运行
python -m pip install cellpose[gui]
。如果使用zsh服务器,可能需要使用引号:python -m pip install 'cellpose[gui]'
。 - (选项2)要安装不带GUI的cellpose,运行
python -m pip install cellpose
。
要升级cellpose(包在这里),在环境中运行以下命令:
python -m pip install cellpose --upgrade
注意,运行cellpose之前必须先运行conda activate cellpose
。如果要在此环境中运行Jupyter notebooks,还需执行python -m pip install notebook
和python -m pip install matplotlib
。
您也可以尝试从基础环境使用以下命令安装cellpose和GUI依赖项:
python -m pip install cellpose[gui]
如果安装出现问题,请查看文档了解更多细节。您也可以使用仓库中包含的cellpose环境文件,通过conda env create -f environment.yml
创建cellpose环境,这可能解决某些依赖问题。
如果这些建议无效,请提交issue。
选项2:使用Python的venv安装
Venv(感兴趣的可以参考这个教程)是Python内置的创建虚拟环境的工具。如果您不想安装conda且已经安装了Python3,这是一个很好的替代方案。主要区别在于您需要选择安装环境和包的位置。Cellpose将存在于这个环境中,无法从其他环境访问。每次运行cellpose之前,您需要导航到环境目录并激活它。步骤与conda安装类似:
如果使用GPU,请确保正确安装了驱动程序和CUDA库。
-
从python.org安装Python 3.8或更高版本。这将是环境中使用的Python版本。你可以使用
python --version
命令检查你的Python版本。 -
导航到你想要创建环境的目录,运行
python3 -m venv cellpose
命令创建一个名为cellpose
的新环境。 -
在Mac/Linux上使用
source cellpose/bin/activate
或在Windows上使用cellpose\Scripts\activate
激活环境。终端中应出现(cellpose)
前缀。 -
使用pip通过
python -m pip install cellpose
命令在cellpose
虚拟环境中安装cellpose。 -
使用
python -m pip install cellpose[gui]
安装cellpose GUI。根据你的终端软件,可能需要使用引号,如:python -m pip install 'cellpose[gui]'
。 -
现在你可以通过
python -m cellpose
或在cellpose目录中使用cellpose
命令从这个环境运行cellpose。 -
要退出环境,运行
deactivate
命令。
Windows或Linux上的GPU版本(CUDA)
如果你计划处理大量图像,可能需要安装torch的GPU版本(如果尚未安装)。
要在Python中使用NVIDIA GPU,首先需要为你的GPU安装NVIDIA驱动程序,可以访问这个网站下载。你也可以安装CUDA工具包,或使用pytorch cudatoolkit(通过下面的conda安装)。如果遇到安装问题,我们建议自行安装CUDA工具包,从这里选择11.x版本之一。
接下来需要卸载CPU版本的torch:
pip uninstall torch
要安装torch的GPU版本,请按照这里的说明操作。强烈推荐使用conda安装,然后选择你的GPU支持的CUDA版本(较新的GPU可能需要高于10.2的CUDA版本)。例如,这个命令将在Linux和Windows上安装11.6版本(注意删除了torchvision
和torchaudio
命令,因为cellpose不需要它们):
conda install pytorch pytorch-cuda=11.6 -c pytorch -c nvidia
如果最新的CUDA版本不工作,尝试较旧的版本,如cuda 11.3:
conda install pytorch==1.12.0 cudatoolkit=11.3 -c pytorch
有关如何安装几个较旧版本的信息可在这里找到。安装后,你可以检查conda list
中的pytorch
,其版本信息应该包含cuXX.X
,而不是cpu
。
安装GitHub版本
按照上面的步骤安装依赖项。然后运行
pip install git+https://www.github.com/mouseland/cellpose.git
如果你想要编辑代码的能力,在GitHub仓库文件夹中运行pip install -e .
。如果你想回到cellpose的pip版本,只需运行pip install cellpose
。
无需本地Python安装运行cellpose 1.0
你可以先在网站上快速试用Cellpose(许多功能被禁用)。
你还可以在Google Colab上使用GPU运行Cellpose:
- 基于代码的notebook:
- 由@pr4deepr编写的更加用户友好的2D分割notebook:
- 由@guijacquemet编写的用户友好的ZeroCostDL4Mic notebook,包括训练cellpose模型:
如果你在本地计算机上遇到MKL问题或运行速度问题(尤其是处理3D数据时),推荐使用Colab notebooks。Colab不允许运行GUI,但你可以在Colab中保存*_seg.npy
文件,下载后可以在GUI中打开。
可执行文件:你可以下载为Windows 10或Mac OS(High Sierra或更高版本)制作的可执行文件,这些文件是使用PyInstaller在Intel处理器上制作的(MKL加速可用,但不支持GPU)。请注意,在两种情况下,打开都需要几秒钟时间。
- Mac OS文件将下载为
cellpose_mac
或cellpose_mac.dms
。您需要将其转换为可执行文件并通过终端运行:
- 打开终端并运行
cd ~/Downloads/
。 - 运行
chmod 777 cellpose_mac
或chmod 777 cellpose_mac.dms
使文件可执行。 - 运行
./cellpose_mac
或./cellpose_mac.dms
以打开cellpose图形界面。cellpose的消息将显示在终端中。 - 您也可以使用命令行界面运行,例如
./cellpose_mac --dir ~/Pictures/ --chan 2 --save_png
。
- Windows 10文件是一个exe文件,您可以点击它来运行图形界面。您也可以使用命令行界面运行,例如
cellpose.exe --dir Pictures/ --chan 2 --save_png
在本地运行cellpose
最快的开始方式是从命令行终端打开图形界面。如果您没有将anaconda添加到路径中,可能需要打开anaconda提示符:
python -m cellpose
cellpose首次运行时会从网站下载最新可用的训练模型权重。
现在您可以将任何图像(.tif、.png、.jpg、.gif)拖放到图形界面中并运行Cellpose,和/或手动分割它们。当图形界面处理时,您会看到进度条填满,在此期间您无法点击图形界面中的任何内容。有关图形界面正在执行的操作的更多信息,您可以查看打开图形界面的终端/提示符。示例数据请参见网站或此zip文件。为获得最佳准确性和运行时性能,请调整图像大小使细胞宽度小于100像素。
对于具有多个Z层的3D数据,请使用3D版本的图形界面:
python -m cellpose --Zstack
分步演示
- 下载并解压这个文件夹中的图像。这些是论文中测试图像的一个子集。
- 使用
python -m cellpose
启动图形界面。 - 将文件夹中的图像拖入图形界面。
- 设置模型(在演示中全部为
cyto
)和要分割的通道(在演示中全部为green
)。如果您正在分割cyto
并有可用的细胞核通道,可以选择设置第二个通道。 - 点击
calibrate
按钮以估计图像中对象的大小。或者(推荐)您可以手动设置cell diameter
并按回车键。您将在图像左下角看到设置的大小作为一个红色圆盘。 - 点击
run segmentation
按钮。如果选中了MASKS ON,您应该会看到图像上绘制的掩码。 - 现在您可以点击左/右箭头键在文件夹中移动并分割另一张图像。
要在图像上绘制ROI,您可以右键点击然后悬停以完成ROI(不要右键点击并拖动)。要删除ROI,按住CTRL键的同时左键点击。更多详细信息请参见这里。
在演示图像上,在标准笔记本电脑或台式机上(MKL正常工作的情况下),这些步骤中的每一步都应该在几秒钟内完成。
3D分割
对于多通道、多Z层的tiff文件,预期的格式是Z x 通道 x Ly x Lx。
下载预训练模型
当您首次在cellpose中运行预训练模型时,模型将自动从网站下载。如果您在下载时遇到问题,可以从这个Google Drive zip文件下载,解压文件并将模型放在您的主目录下的.cellpose/models/路径中,例如在Windows上路径为C:/Users/YOUR_USERNAME/.cellpose/models/,在Linux上路径为/home/YOUR_USERNAME/.cellpose/models/,因此/home/YOUR_USERNAME/.cellpose/models/cyto_0是一个模型的完整路径示例。如果您无法访问Google Drive,模型也可在百度网盘上获取:链接:https://pan.baidu.com/s/1CARpRGCBHIYaz7KeyoX-fg ;提取码:pose ;感谢@qixinbo!
旧版软件发布
更新v1.0(2022年1月)
Cellpose已经相对稳定一段时间了。小的错误将继续修复,但我们现在发布一个参考1.0版本。Cellpose的更大更新将朝着即将发布的新2.0候选版本进行。
此更新修复了GUI和绘图中的错误。它还停止了模型权重的重新加载以提高速度。resample=True
再次成为默认设置,如同早期版本,可以使用--no_resample
关闭。现在默认关闭日志记录。在CLI中使用--verbose
标志或在脚本/笔记本中通过以下方式打开:
from cellpose.io import logger_setup
logger_setup();
要安装此版本,请使用
pip install cellpose==1.0.2
更新v0.7(2021年11月)
查看Omnipose,这是Cellpose的一个扩展,用于长丝状细菌。Omnipose由Kevin Cutler (@kevinjohncutler)编写。要了解Omnipose,请阅读论文。
更新v0.6(2020年12月)
Pytorch现在是cellpose的默认深度神经网络软件。Mxnet仍将得到支持。要安装mxnet(CPU版本),请运行pip install mxnet-mkl
。要在notebook中使用mxnet,在创建模型时声明torch=False
,例如model = models.Cellpose(torch=False)
。要在命令行中使用mxnet,添加标志--mxnet
,例如python -m cellpose --dir ~/images/ --mxnet
。在GPU上运行时,pytorch实现比mxnet实现快20%,而在CPU上运行时慢20%。
默认情况下,动态计算使用双线性插值而非最近邻插值。在model.eval
中设置interp=False
可以关闭此功能。双线性插值在CPU上会稍慢,但如果使用torch且启用GPU,它比最近邻插值更快。
计时(v0.6版本)
您可以通过添加--check_mkl
标志来检查cellpose是否正在运行MKL版本(如果您使用的是CPU而非GPU)。如果不使用MKL,cellpose会慢得多。以下是Cellpose的运行时间,分为运行深度神经网络(DNN)的时间和后处理(梯度追踪、分割、质量控制等)的时间。DNN运行时间显示了使用GPU(Nvidia GTX 1080Ti)或CPU(Intel 10核7900X)的情况,有无网络集成(4net vs 1net)。无论是否进行集成或使用CPU/GPU版本,后处理运行时间都相似。运行时间针对不同的图像大小显示,所有图像的细胞直径均为30像素(我们训练集的平均值)。
256像素 | 512像素 | 1024像素 | |
---|---|---|---|
DNN(1net,GPU) | 0.054秒 | 0.12秒 | 0.31秒 |
DNN(1net,CPU) | 0.30秒 | 0.65秒 | 2.4秒 |
DNN(4net,GPU) | 0.23秒 | 0.41秒 | 1.3秒 |
DNN(4net,CPU) | 1.3秒 | 2.5秒 | 9.1秒 |
后处理(CPU) | 0.32秒 | 1.2秒 | 6.1秒 |