deepcell-tf
是一个用于生物图像单细胞分析的深度学习库。它使用 Python 编写,并基于 TensorFlow 2 构建。
该库允许用户将预先存在的模型应用于图像数据,并开发用于单细胞分析的新深度学习模型。这个库专门用于 2D 和 3D 图像中的细胞分割(全细胞和细胞核)模型,以及 2D 时间序列数据集中的细胞跟踪模型。这些模型适用于从组织的多重荧光图像到动态活细胞成像视频等各种数据。
deepcell-tf
是 Van Valen 实验室 创建的几个资源之一,旨在促进新深度学习方法在生物学中的开发和应用。我们的 DeepCell 生态系统中的其他项目包括用于深度学习模型输出的预处理和后处理的 DeepCell Toolbox、用于基于深度学习跟踪模型创建细胞谱系的 DeepCell Tracking,以及用于在云端部署大型数据集工作流程的 DeepCell Kiosk。此外,我们还开发了 DeepCell Label 用于注释高维生物图像,以作为训练数据使用。
在 deepcell.readthedocs.io 阅读文档。
有关在云端部署模型的更多信息,请参阅 Kiosk 文档。
示例
原始图像 | 跟踪后的图像 |
入门
使用 pip 安装
使用 deepcell-tf
最快的方法是通过 pip
安装软件包:
pip install deepcell
使用 Docker 安装
DockerHub 上还提供了支持 GPU 的 docker 容器。 要在本地 GPU 上运行该库,请确保已安装 CUDA 和 Docker v19.03 或更高版本。对于较早的 Docker 版本,请使用 nvidia-docker。 或者,Google Cloud Platform (GCP) 提供预装了 CUDA、Docker 和 NVIDIA Container Toolkit 的预构建虚拟机。
安装 docker
后,运行以下命令:
# 在一个 GPU 上启动支持 GPU 的容器
docker run --gpus '"device=0"' -it --rm \
-p 8888:8888 \
-v $PWD/notebooks:/notebooks \
-v $PWD/data:/data \
vanvalenlab/deepcell-tf:latest-gpu
这将启动一个安装了 deepcell-tf
的 Docker 容器,并使用默认端口 8888 启动一个 jupyter 会话。此命令还将数据文件夹($PWD/data
)和笔记本文件夹($PWD/notebooks
)挂载到 docker 容器,以便它可以访问存储在主机工作站上的数据和 Jupyter 笔记本。数据和模型必须保存在这些挂载的目录中,以便在运行容器之外持久化它们。可以通过将 -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"' 指的是运行 DeepCell-tf 的特定 GPU,这不是必需的
docker run --gpus '"device=0"' -it \
-p 8888:8888 \
$USER/deepcell-tf:latest-gpu
挂载仓库的本地副本和笔记本也有助于加速本地开发。但是,如果要挂载仓库的本地版本,必须首先在不挂载本地仓库的情况下运行 docker 镜像,以便编译 C 扩展,然后将其复制到本地版本。
# 首先运行 docker 镜像,不挂载外部内容
docker run --gpus '"device=0"' -it \
-p 8888:8888 \
$USER/deepcell-tf:latest-gpu
# 使用 ctrl-p, ctrl-q(或 ctrl+p+q)退出正在运行的 docker 镜像而不关闭它
# 然后,获取与正在运行的 DeepCell-tf 镜像对应的 container_id
container_id=$(docker ps -q --filter ancestor="$USER/deepcell-tf")
# 将编译好的 c 扩展复制到代码库的本地版本中:
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
# 关闭正在运行的 docker
docker kill $container_id
# 现在可以启动 docker 镜像,挂载代码以便轻松编辑
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-2024 Van Valen 实验室,加州理工学院(Caltech),得到 Shurl 和 Kay Curci 基金会、Google 研究云、Paul Allen 家族基金会以及美国国立卫生研究院(NIH)资助(Grant U24CA224309-01)。 保留所有权利。
许可证
本软件基于修改后的 APACHE2 许可。完整详情请参阅 LICENSE。
商标
本文提到的所有其他商标均为其各自所有者的财产。