单细胞图像分割的深度学习
项目描述
deepcell-tf是一个用于生物图像单细胞分析的深度学习库。它是用 Python 编写的,并使用TensorFlow 2构建。
该库允许用户将预先存在的模型应用于成像数据以及开发用于单细胞分析的新深度学习模型。该库专门研究 2D 和 3D 图像中的细胞分割(全细胞和核)模型以及 2D 延时数据集中的细胞跟踪。这些模型适用于从组织的多路复用图像到动态活细胞成像电影的数据。
deepcell-tf是Van Valen 实验室创建的多个资源之一,旨在促进新的深度学习方法在生物学中的开发和应用。我们 DeepCell 生态系统中的其他项目包括用于预处理和后处理深度学习模型输出的DeepCell 工具箱、用于使用基于深度学习的跟踪模型创建细胞谱系的 DeepCell 跟踪,以及用于在大型数据集上部署工作流的DeepCell Kiosk云。此外,我们还开发了DeepCell 标签,用于注释高维生物图像以用作训练数据。
阅读deepcell.readthedocs.io上的文档。
有关在云中部署模型的更多信息,请参阅Kiosk 文档。
如需 TensorFlow 1.X 或 Python 2.7 支持,请使用 deepcell 0.7.0或更早版本。
例子
| 原始图像 | 跟踪图像 |
|
|
|
入门
使用 pip 安装
最快的入门方法deepcell-tf是使用以下命令安装软件包pip:
pip install deepcell
使用 Docker 安装
DockerHub 上还有支持 GPU 的 docker 容器。要在 GPU 上本地运行库,请确保已安装CUDA和Docker v19.03或更高版本。对于以前的 Docker 版本,请使用nvidia-docker。或者,谷歌云平台 (GCP) 提供预装了 CUDA、Docker 和 NVIDIA Container Toolkit 的预构建虚拟机。
安装docker后,运行以下命令:
# Start a GPU enabled container on one GPUs
docker run --gpus '"device=0"' -it --rm \
-p 8888:8888 \
-v $PWD/notebooks:/notebooks \
-v $PWD/data:/data \
vanvalenlab/deepcell-tf:latest-gpu
这将启动一个已安装的 Docker 容器,deepcell-tf并使用默认端口 8888 启动一个 jupyter 会话。此命令还将一个数据文件夹 ( $PWD/data) 和一个笔记本文件夹 ( $PWD/notebooks) 安装到 docker 容器,以便它可以访问存储在主机上的数据和 Juyter 笔记本工作站。数据和模型必须保存在这些挂载的目录中,才能将它们保存在正在运行的容器之外。默认端口可以更改为任何非保留端口-p 8888:8888,例如更新为-p 8080:8888. 如果您在开始时遇到任何错误,您应该参考deepcell-tf开发人员部分或在 GitHub 上提出问题。
有关如何使用deepcell-tf库训练模型的示例,请查看以下笔记本:
DeepCell 应用程序和 DeepCell 数据集
deepcell-tf包含两个模块,极大地简化了用于单细胞分析的深度学习模型的开发和使用。第一个是deepcell.datasets,一组具有单细胞注释的生物图像。这些数据包括荧光核的活细胞成像电影(约 10,000 个单细胞轨迹,超过 30 帧),以及全细胞的静态图像(相位和荧光图像 - 约 75,000 个单细胞注释)。第二个是deepcell.applications,其中包含用于单细胞分析的预训练模型(荧光核和相位/荧光全细胞)。如果数据经过缩放,使得每个像素的物理尺寸与训练数据集中的尺寸相匹配,这些模型就可以开箱即用地用于活细胞成像数据。我们目前正在努力扩展这些模块,以包括组织图像的数据和模型。请注意,它们可能会在不久的将来被分拆到自己的 GitHub 存储库中。
面向开发人员的 DeepCell-tf
deepcell-tf使用docker和tensorflow启用 GPU 处理。如果使用 GCP,则预装了 CUDA 和 Docker 的预构建镜像。否则,您将需要分别安装docker和CUDA。
构建本地 docker 容器,使用 TF_VERSION 指定 tensorflow 版本
git clone https://github.com/vanvalenlab/deepcell-tf.git
cd deepcell-tf
docker build --build-arg TF_VERSION=2.8.0-gpu -t $USER/deepcell-tf .
运行新的 docker 镜像
# '"device=0"' refers to the specific GPU(s) to run DeepCell-tf on, and is not required
docker run --gpus '"device=0"' -it \
-p 8888:8888 \
$USER/deepcell-tf:latest-gpu
挂载存储库和笔记本的本地副本以加快本地开发也很有帮助。但是,如果您要挂载存储库的本地版本,则必须首先在未挂载本地存储库的情况下运行 docker 映像,以便可以编译 C 扩展,然后将其复制到本地版本。
# First run the docker image without mounting externally
docker run --gpus '"device=0"' -it \
-p 8888:8888 \
$USER/deepcell-tf:latest-gpu
# Use ctrl-p, ctrl-q (or ctrl+p+q) to exit the running docker image without shutting it down
# Then, get the container_id corresponding to the running image of DeepCell-tf
container_id=$(docker ps -q --filter ancestor="$USER/deepcell-tf")
# Copy the compiled c extensions into your local version of the codebase:
docker cp "$container_id:/usr/local/lib/python3.6/dist-packages/deepcell/utils/compute_overlap.cpython-36m-x86_64-linux-gnu.so" deepcell/utils/compute_overlap.cpython-36m-x86_64-linux-gnu.so
# close the running docker
docker kill $container_id
# you can now start the docker image with the code mounted for easy editing
docker run --gpus '"device=0"' -it \
-p 8888:8888 \
-v $PWD/deepcell:/usr/local/lib/python3.6/dist-packages/deepcell/ \
-v $PWD/notebooks:/notebooks \
-v $PWD:/data \
$USER/deepcell-tf:latest-gpu
如何引用
- 深度学习使活细胞成像实验中单个细胞的定量分析自动化
- 通过深度学习在活细胞成像实验中进行准确的细胞跟踪和谱系构建
- DeepCell Kiosk:使用 Kubernetes 扩展支持深度学习的细胞图像分析
- 使用大规模数据注释和深度学习对具有人类水平性能的组织图像进行全细胞分割
版权
版权所有 © 2016-2022加州理工学院 (Caltech)的 Van Valen 实验室,得到了 Shurl 和 Kay Curci 基金会、谷歌研究云、保罗艾伦家庭基金会和美国国立卫生研究院 (NIH) 的资助,U24CA224309 -01。版权所有。
执照
该软件在修改后的APACHE2下获得许可。有关完整详细信息,请参阅许可证。
商标
此处引用的所有其他商标均为其各自所有者的财产。