发展生物学实验室管理软件

由克里斯Shamloo

Kris Shamloo.

软件和实验室管理工作流程

实验室管理软件不是一个功能实验室的必要条件,但它是一个可伸缩的实验室。当你每天需要追踪成千上万个质粒的位置、质量、生长和法律地位时,就像我们在Addgene所做的那样,笔和纸会让你失望。实验室管理软件的好处不仅仅局限于大容量设备;在博士后、学生和实验伙伴频繁出入的学术实验室中,它可以很有用——这是一个为有价值的工作和材料提供的成熟环境。

在这篇文章中,我们将重点介绍这些年来我们学到的一些经验教训,希望我们的见解能够帮助您在编写自己的软件时引导正确的方向。这些都不是福音,但我们认为值得考虑。

一切都会出错

软件在Addgene每当A.订单放在addgene网站上,它阐述了整个地中用的事件的连锁反应 - 在我们的法律部门内的办公室内,当然,在实验室内。为了让质粒到你的实验室长凳,我们需要(这有点简化):

  1. 找到合适的甘油股票在我们的冰箱
  2. 将样品挑选到适当的刺伤培养物中
  3. 生长刺伤文化
  4. 发货刺伤文化到合适的位置

为了防止我们混合样品,并确保所有东西都成功生长,我们必须跟踪和管理所有这些步骤。不幸的是,生物学是一团糟。实验过程中的每一步都可能失败。有些步骤失败需要重新尝试相同的步骤,有些需要后退两个步骤,有些需要完全从头开始,我们的软件需要处理这些情况。下面的代码示例展示了如何构建软件以适应生物的混乱。这些例子是有意为之的,但它们在这里是为了帮助讲述这个故事。

软件在Addgene在这个右边的第一个例子中(#这将使你伤心),有人提出了一个特定的质粒的要求,现在是我们的实验室技术人员检索样品并准备好运费。在第一种情况下,我们天真地假设一切都会完美,我们的软件只是遵循线性进展,通过该过程指导我们的技术。

问题?正如我们上面所说的那样,这些步骤中的任何一个都可能失败,但在我们当前的设置中,没有关于在失败的情况下该做什么的明确指令。虽然我们相信我们的技术可以搞清楚他们需要,但他们必须单独跟踪任何故障并自己进行故障排除。对于一些样本,这不是那么糟糕,而且没有软件,这是一大千的困难。

跟踪实验室程序还可以让您访问有关最可能失败的步骤的硬数据。我们的实验室经理肯定有兴趣了解她的程序的哪一部分是最容易失败的。

在一个学术实验室中,如果一个与特定样本突然留下的实验室退伍军人突然离开的实验室,并且没有一个系统,她可以通过它轻松地转移她对更新实验室成员的样本来转移她的指示。

如果有成功或失败,我们可以通过软件给实验室成员明确的指示,使我们自己成功:

软件在Addgene

在第二个示例中,我们添加了一些简单但关键的逻辑。有些步骤“硬”失败,他们重置整个过程。其他步骤“软”失败,它们只是需要重复。我们现在也有一个良好的界面来开始跟踪分析数据的实验室程序。有了这些数据,我们就可以回去优化我们的流程,使整个流程工作得更有效率。

上条形码的火车吧

  1. 买一台条码标签打印机。
  2. 购买条形码扫描仪。
  3. 条形码一切
    • 如果它是条形码,则应在数据库中具有相应的条目。
  4. 祝你的实验室工作人员快乐。

条形码材料使每个人的生活更轻松,加快设置的时间和资本成本几乎总是值得。因为标签适用于容器而不是所述容器的糊状物,但仔细考虑如何如何处理这些编码的数字。

松散耦合的容器和内容

从Get-Go尽可能清晰地说明(尽管如此,它总会有混淆)关于这个事实容器与他们的内容不同。您应该在跟踪两者,您应该轻松地能够将内容从一个容器移动到另一个容器。

如果您使用条形码(并且您应该是!)请记住,您的条形码正在应用于容器,而不是内容。紧密耦合的条形码和容器可能并不是如此糟糕的想法,将它们紧紧耦合到他们的内容可能会让您难忘,并且当一个棘手的过程失败时,其中一个技术开始使用新的管子。

softwareataddgenefigure3c_ks_2016_8_15-01.png

在第一个例子中继承把管子里的东西和管子本身紧紧地捆绑在一起如果蠕虫发生了什么事,需要更换试管,没有干净的方法将容器中的内容物分离出来(当然这在实验室是一个简单的任务,但软件应该反映实验室的程序,而不是人为地限制它们)。

在第二个例子中,我们有一个单独的蠕虫模型和管型,我们可以根据需要轻松地互换。在这种情况下,实验室的物理考虑因素对象组成这是比继承更明智的选择。

一些容器是永久性的,如托盘或冰箱。有些是一次性的,就像塑料管一样。与您的实验室组成他们如何追踪这些事情。

术语和语言是棘手的

事情的名称将在某些时候绊倒每个人,在命名空间碰撞中提前决定。它甚至可以在数据库中拥有额外的列,以效果为“dev_name`和`science_name`”。您需要决定您解决问题的技术细节,但一致性是关键。您可能遇到的一些命名空间碰撞:矢量,序列,插入,特征,因子,表达等。

也会有这样的情况,你学习生物学术语(质粒、5-prime、CRISPR、生长株、载体主干等),但你根本没有足够的上下文来知道它们是什么真的是这样的。您的代码处理这些数据片段的方式可能与它们在实验室中被处理的方式不一致,因此,编写松散耦合、模块化的代码很重要。

使用验证和真实的工具

我们使用Python,Django,Apache, 和玛利亚二。使用可靠的工具意味着更少的启动和运行时间,更多的时间致力于有趣的生物技术代码。

有效的技术原因选择非Python堆栈,但如果您使用科学家,他们不太可能接触Python或Matlab以外的任何内容。选择Python可以轻松旋转一个只读的Jupyter笔记本,并让他们进入乐趣。


krisshamlooheadshot_tjf_2016_8_4-01.pngKris Shamloo是Addgene公司的软件工程师,他对编写软件工具来帮助科学家很感兴趣。你可以在推特上找到他@krisshamloo和在krisshamloo.com

Addgene博客上的其他资源伟德体育中心

更多资源请访问Addgene.org

分享科学变得更容易了……订阅博客

主题:Addgene新闻

发表评论

分享科学刚刚变得更容易...订阅我们的博客

订阅