跳转到主要内容

从segmenter运行深度学习模型的脚本和API

项目描述

segmenter_model_zoo

Build Status Documentation Code Coverage

Allen Institute for Cell Science发布的基于深度学习的分割模型的批处理脚本和函数


特性

  • 在Allen Cell Data Collection中重现基于深度学习的分割结果
  • 自动从Allen Cell quilt buckets中提取模型
  • 支持命令行批处理以及在其他函数中调用的Python API
  • 作为在您自己的数据上迭代深度学习的起点
  • 当准备好时持续添加更多模型

系统要求

大多数模型可以在正确设置NVIDIA GPU的任何Linux或Windows机器上运行。唯一例外是Allen Cell Data Collection中使用的完整细胞和细胞核分割版本,它使用了一个需要编译某些CUDA代码的对象检测模型。因此,完整版本仅在Linux上支持,但我们提供了一个不包含对象检测的简化版本,它可以在Windows和Linux上运行,这将对大多数用户也有用。更多详细信息请参阅以下模型列表。

注意:如果您正在使用Windows并看到类似于“error: Microsoft Visual C++ 14.0或更高版本是必需的。请使用Microsoft C++构建工具安装它”的错误,请按照错误消息中的详细说明下载Microsoft构建工具。我们使用的特定版本是MSVC v142 - VS 2019 C++ x64/x86构建工具(v14.27)

安装

步骤1:从官方网站安装PyTorch

查看官方说明。我们已经测试了在CUDA 10.1和CUDA 10.2上运行的1.3.1、1.4.0、1.6.0和1.7.0版本

步骤2:安装segmenter_model_zoo

安装稳定版本并使用它: pip install segmenter_model_zoo

安装夜间开发头并自定义

git clone git@github.com:AllenCell/segmenter_model_zoo.git
cd segmenter_model_zoo
pip install -e .[all]

步骤3(可选):如果您想使用细胞和细胞核分割的完整版本,请安装pytorch-fnet和cell-detector(仅限Linux)

安装pytorch-fnet以运行无标记模型

git clone https://github.com/AllenCellModeling/pytorch_fnet.git
cd pytorch_fnet
git checkout ad_customization
pip install .

安装cell-detector

git clone ssh://git@aicsbitbucket.corp.alleninstitute.org:7999/assay/cell_detector.git
cd cell_detector
pip install .
cd ./cell_detector/bin/apex
python setup.py install --cuda_ext --cpp_ext
cd ..  # assume you are under /cell_detector/cell_detector/bin
rm -rf build
python setup.py build develop

注意:根据您的CUDA版本和GPU的不同代,您可能需要不同的pytorch版本才能使cell-detector正常工作。我们发现pytorch==1.3.1torchvision==0.4.2是CUDA 10.1和CUDA 10.2的稳定版本,并且在NVIDIA titanx、titanxp、gtx1080、v100 GPU上运行良好。因此,如果发现在当前环境中安装失败,您可以切换到pytorch==1.3.1torchvision==0.4.2

文档

一般来说,有两种类型的模型:基本模型和超级模型。基本模型只是一个训练好的神经网络。超级模型可以通过添加某些预处理和后处理步骤将多个基本模型组合起来以生成最终的输出。

当前基本模型

  • [v] DNA_mask_production:从细胞核图像(通过DNA染料)到DNA的语义分割掩码
  • [v] DNA_seed_production:从细胞核图像(通过DNA染料)为每个DNA生成一个种子
  • [v] CellMask_edge_production:从细胞膜图像(通过CellMask染料)到语义细胞膜分割
  • [v] CAAX_production:从CAAX图像到语义CAAX分割
  • [v] LMNB1_all_production:从lamina B1图像到lamina B1的语义分割
  • [v] LMNB1_fill_production:从lamina B1图像到细胞核的掩码(填充形状),但不包括有丝分裂细胞
  • [v] LMNB1_seed_production:从lamina B1图像为每个细胞核生成一个种子
  • [v] H2B_coarse:从H2B图像到粗略的H2B分割。注意:这不是在Allen细胞数据收集中提供的H2B分割。这是一个粗略版本,可以大致认为是核分割

当前超级模型

  • [v] DNA_MEM_instance_plus_LF:用于使用旧的单摄像头管道获取的Allen细胞数据收集图像的细胞和细胞核分割的完整版本
  • [v] DNA_MEM_instance_plus_LF_two_camera:用于使用当前双摄像头管道获取的Allen细胞数据收集图像的细胞和细胞核分割的完整版本
  • [v] DNA_MEM_instance_basic:适用于Allen细胞数据收集中所有图像的简化细胞和细胞核分割版本。与完整版本相比,为了简化,排除了无标记和细胞对校正
  • [v] LMNB1_morphological_production_alpha:用于Allen细胞数据收集中lamina B1细胞系的lamina B1形态分割。与基本语义lamina B1分割相比,形态分割指的是lamina壳完全封闭(即3D中是拓扑可填充的)
  • [v] structure_AAVS1_100x_hipsc:从CAAX图像到语义CAAX分割的最终二值结果
  • [v] structure_H2B_100x_hipsc:从H2B图像到粗略H2B分割的最终二值结果

完整细胞和细胞核分割版本中包含一些辅助模型

  • [v] LF_DNA_mask:从明场预测DNA分割掩码的无标记模型
  • [v] LF_DNA_mask_two_camera:从明场预测DNA分割掩码的无标记模型,但仅适用于使用双摄像头管道获取的图像(略有不同的明场图像)
  • [v] LF_mem_edge:从明场预测细胞膜分割的无标记模型
  • [v] LF_mem_edge_two_camera:从明场预测细胞膜分割的无标记模型,但仅适用于使用双摄像头管道获取的图像(略有不同的明场图像)
  • 细胞对检测模型[v]:一种2D物体检测模型,用于识别后期有丝分裂期间的女儿细胞对。

注意:这里使用的术语,例如核图像、细胞膜图像、双摄像头流水线和单摄像头流水线等,省略了更多可能对在非艾伦细胞数据收集图像上应用我们的模型成功至关重要的生物和成像细节。请参阅艾伦细胞数据收集的详细信息(例如,成像方式或z步长大小可能很重要)。

使用这些模型

(1) 您可以准备一个yaml配置文件(请参阅此处的示例,只需指定要使用哪个超级模型以及输入/输出路径),然后运行

run_model_zoo --config /path/to/your/config.yaml --debug

(2) 您可以使用提供的Python API运行基本模型或超级模型。请参阅此处的演示jupyter笔记本。

有关完整包文档,请访问AllenCell.github.io/segmenter_model_zoo

开发

有关开发代码的相关信息,请参阅CONTRIBUTING.md

有问题吗?

如果您有任何问题,请在我们的艾伦细胞论坛上留下评论:https://forum.allencell.org/

免费软件:艾伦研究所软件许可

项目详情


下载文件

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

源分布

segmenter_model_zoo-0.1.0.tar.gz (41.9 kB 查看哈希值)

上传时间

构建分布

segmenter_model_zoo-0.1.0-py2.py3-none-any.whl (46.1 kB 查看哈希值)

上传时间 Python 2 Python 3

由以下机构支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面