提交新活动

感谢!您的提交已收到!
糟糕!提交表单时出现问题。

提交新闻专题

感谢!您的提交已收到!
糟糕!提交表单时出现问题。

订阅新闻通讯

感谢!您的提交已收到!
糟糕!提交表单时出现问题。
2021年3月4日

了解生命科学社区

作者

执行摘要

Dask 希望更好地支持生命科学家的需求。我们一直在了解社区,以便更好地理解

  1. 都有哪些人在?
  2. 他们正在尝试解决什么类型的问题?

我们了解到

  • 很多人希望有更多针对其特定科学领域的量身定制示例。
  • 将 Dask 更好地集成到其他软件中被认为非常重要。
  • 处理大数据时管理内存限制是一个常见的痛点。

我们今年的战略计划包括三个并行方向

  • 基础设施 (60%) - 对 Dask 或其他拥有大量生命科学用户的软件进行的改进。
  • 外展 (20%) - 博客文章、讲座、网络研讨会、教程和示例。
  • 应用 (20%) - 将 Dask 应用于特定的生命科学问题,与个人实验室或团队合作。

如果您仍然想发表意见,还不晚 -点击此链接联系我们!

目录

背景

最近 Dask 获得了一些资金,用于聘请一名开发者(Genevieve Buckley),专门改进 Dask 以支持生命科学。

与科学家合作是推动开源项目增长的绝佳方式。科学家和软件开发者都能从中受益。早期,Dask 在与地球科学社区集成方面取得了很大的成功。很高兴看到生命科学领域也能取得类似的成功。

目前我们看到 Dask 在生命科学的几个领域得到应用

  • 生物图像处理
  • 单细胞分析
  • 统计遗传学
  • ……等等

我们征求了生命科学社区的反馈,以制定未来一年的战略计划。

我们学到了什么

来自 Dask 用户

当我们与 Dask 个人用户交流时,听到他们的评论中有很多相似的主题。

人们希望

  1. 更好的文档和示例
  2. 更好地支持处理受限资源
  3. 更好地与其他软件工具互操作

最常见的请求是提供更多示例的更好文档。生命科学许多不同领域的人都表示,这可以帮助他们很多。相应的挑战在于生命科学领域众多,都需要有针对性的文档。

GPU 支持也常被提及。关于 GPU 的评论属于上述两类:GPU 内存通常是一个限制,而且生命科学家也希望更容易地将深度学习模型应用于他们的数据。

来自其他软件库

我们不仅与 Dask 的个人用户交流,也与科学软件项目的开发者进行了交流。

为什么其他软件库会采用 Dask?

软件项目希望解决与以下方面相关的问题

  • 更容易部署到分布式集群
  • 处理大型数据集时管理内存
  • 现有功能的并行化

Dask 擅长解决这些类型的问题,并且可能是个不错的解决方案。

我们交流过的人

我们交流过的一些软件项目包括

当前状态

napari 是一个基于 python 的图像查看器。Dask 已经与 napari 良好集成。这里的机会领域包括

  • 改进关于如何在 napari 中高效使用 Dask 数组的文档。
  • 更智能地缓存相邻图像块以避免延迟。
  • 关于如何为 napari 创建插件的指南,以便社区可以发展。

sgkit 是一个统计遗传学工具包。Dask 已经与 sgkit 良好集成。开发者希望在主要的 Dask 仓库中有改进的基础设施,他们可以从中受益。期望清单包括

  • 更好地理解数组块等内容如何在 Dask 计算过程中变化。
  • 更好的高级图可视化。显示所有底层操作的图可视化可能令人不知所措。
  • 更好地识别 Dask 计算中效率低下的区域。
  • 发布新版本 Dask 时的稳定性
  • 使在云中运行 Dask 更容易。他们目前正在使用 dask-cloudprovider 并发现它非常有用。

scanpy 是一个用于 Python 中单细胞分析的库。它与 anndata(一个带注释的数据结构)一起构建。

  • 对于 scanpy 用户来说,数据大小不是一个大问题,尽管 anndata 开发者认为增加对 Dask 的支持会很有用。
  • 对稀疏数组的支持对这些社区非常重要。

squidpy 是一个用于空间分子数据分析和可视化的工具。它构建在 scanpy 和 anndata 的基础上。由于 squidpy 在 scanpy/anndata 数据集的基础上涉及大型成像数据,这是一个对 Dask 来说有巨大机会的领域。

  • 将 Dask 与 squidpy 的 ImageContainer 类集成是处理可用 RAM 限制内大型图像数据的好第一步。

ilastik 目前完全不使用 Dask。他们很好奇 Dask 是否能让从单机扩展到集群更容易。用户通常以交互方式训练 ilastik 模型,然后希望将其应用于许多图像。第二步通常是人们希望轻松扩展可用计算资源的时候。

CellProfiler 是一个用于图像处理的流水线工具。他们之前曾短暂尝试过 Dask。

  • 主要地,他们希望并行化现有功能。
  • 最常见的流水线属于三个主要的“用户故事”,这些方面集中努力会产生最大影响
  • 图像处理
  • 对象处理
  • 测量

我们看到的机遇

由于大型科学软件项目拥有大量用户,因此在此处的改进对科学界具有很高价值。这是一个巨大的机会领域。我们计划尽可能与这些开发者社区合作,推动其向前发展。

另一个机会领域是改进用于高级图可视化的基础设施。无论是高级用户还是初学者,都将受益于更好地识别 Dask 计算中低效率区域的工具。

最后,继续构建对非 NumPy 块的 Dask 数组的支持也是一个高影响的机会领域。特别是,对稀疏数组的支持以及对 GPU 上数组的支持被强调对生命科学社区非常重要。

战略方向

我们将通过三个并行方向管理这个项目

每个方向在任何时候都可能有一个主要项目,还有许多项目在队列中。在每个方向内,提案的项目将根据影响程度、所需时间和其他开发者资源的可用性进行排序。

基础设施

基础设施项目是对以下方面的改进

  • Dask 组织内的项目,或
  • 其他涉及 Dask 且拥有大量生命科学用户的软件项目

我们将把大约 60% 的项目精力用于基础设施。

外展

外展活动包括博客文章、讲座、网络研讨会、教程和为文档创建示例。我们旨在将大约 20% 的项目精力用于外展。

如果您有想分享的外展想法(也许您管理着一个学生团体或热门的聚会),那么您可以在此联系我们

应用

最后一个方向侧重于将 Dask 应用于生命科学中的特定问题。

这些项目通常涉及与个人实验室或团队合作,最终目标是将他们的工作流程总结成一篇博客文章。这会反馈到我们的外展活动中,以便社区中的其他人可以从中学习。

理想情况下,这些是短期项目,这样我们可以展示 Dask 的许多不同应用。我们旨在将大约 20% 的项目精力用于应用。

如果您使用 Dask 并心中有想分享的示例,那么您可以在此联系我们

我们如何判断成功?

Dask 生命科学研究员的角色范围非常广泛,因此在这个领域我们有很多不同的方式可以取得成功。

一些成功的指标包括

  • Bug 被清晰描述,或瓶颈被清晰识别
  • Bug 修复
  • 对 Dask 基础设施进行的改进或新增功能
  • 在相关项目仓库中进行的改进或新增功能
  • 在生命科学相关项目仓库中对 Dask 进行更好的集成或支持
  • 更好的文档,包含针对生命科学特定领域的定制示例
  • 撰写的博客文章(理想情况下与 Dask 用户合作)
  • 举办的讲座
  • 制作的网络研讨会
  • 创建的教程

我们没有时间和资源去做所有事情,但通过专注于其中一部分,我们可以产生影响。

局限性

我们在与生命科学社区交流时发现的信息可能在几个方面存在偏差。

我(Genevieve)的人脉在成像科学家和澳大利亚人中最强。对于生命科学的其他领域则弱得多,因为我最初的训练是物理学。

Dask 项目与包括科学软件在内的其他开源 Python 项目有很强的联系。Dask 开发者社区也与包括 NVIDIA、Quansight 等公司有很强的联系。他们在我们交流过的人中可能占比过高。

很难找到那些还完全不使用 Dask 但其问题非常适合 Dask 的人。这些人不太可能关注 Dask 的 twitter 等,而且可能不知道我们正在寻找他们。

我认为这些问题没有完美的解决方案。我们试图通过利用松散的二级和三级联系来传播意识,以及在科学公共论坛发帖来减轻这些影响。

方法

我们使用了多种方法来收集生命科学社区的反馈。

  • 创建了一个简短的调查来收集评论
  • 通过 @dask_dev 的 twitter 账号进行了宣传
  • 我们请相关软件项目考虑转发以扩大触达范围(示例
  • 我们在科学 Slack 群组和在线公共论坛发帖
  • 我们给网络中的其他生命科学家发邮件,请他们也告知他们的人脉
  • 我们直接联系了一些生命科学研究人员。
  • 我们直接联系了其他几个科学软件团队,并与开发者进行了交流。

加入讨论

快来加入我们的 Dask Slack 群组吧!我们有一个 #life-science 频道,以便讨论与 Dask 生命科学社区相关的事情。您可以在此申请加入 Slack