OT-2 Python协议API第2版

OT-2 Python协议API是一个简单的Python框架,旨在使编写自动化的生物实验室协议变得容易。

我们以基本Python和Wetlab技能​​的任何人都可以使用我们希望的方式设计。作为一个替补科学家,您应该能够以像实验室笔记本一样读取的方式编写自动协议。

API的第2版是编写Python协议的新方法。它更可靠,更简单,更容易被支持。与版本1不同,它支持像Thermocycler这样的新模块。虽然版本1仍然会修复bug,但新特性和改进将会出现在版本2中。有关如何将协议从API的版本1转换到版本2的指南,请参阅本文介绍迁移。关于为什么要开发API版本2以及它与版本1有什么不同的更深入的讨论,请参见这篇文章为什么我们写了API v2


入门

蟒蛇新手?看看我们的使用Python协议页面首先继续。要了解我们脚本的典型结构,请看看我们的例子页。

要在你的笔记本电脑上模拟协议,请检查模拟您的脚本。当您准备在机器人上运行脚本时,请下载我们的最新版本桌面应用程序

故障排除

如果您使用我们的产品遇到问题,请查看我们的支持文档或通过我们网站上的对讲机联系我们的团队www.richardlipsey.com


概述

它看起来如何

这个API的设计目标是使代码易于阅读和理解。例如,下面是一套简短的指令从井转移'a1'好吧'b1'连电脑都能理解

本协议由我制定;它被称为opentron协议教程,用于演示OT-2 Python协议API。它使用这个API的2.0版本。

开始协议

添加一个96孔板,并把它放在机器人甲板的槽' 2 '

添加300μl尖端架,并将其放入机器人甲板的插槽'1'中

添加一个单通道300µL移液管到左边安装,并告诉它使用尖端架

将100μl从板的'A1'转移到其'B2'井中

如果我们用Python协议API重写它,它会像下面这样:

opentrons进口protocol_api#元数据元数据={'protocolname'“我的协议”'作者'的名字< email@address.com > '“描述”'简单的协议开始使用OT2'“apiLevel”'2.9'}#协议运行功能。冒号后的部分让编辑器知道#在哪里寻找自动完成建议def运行协议protocol_apiProtocolContext):#实验室的器具盘子=协议load_labware“corning_96_wellplate_360ul_flat”'2'tiprack.=协议load_labware“opentrons_96_tiprack_300ul”'1'#移液器左撇子=协议load_instrument.'p300_single'“左”tip_racks.=[tiprack.])#命令左撇子pick_up_tip()左撇子吸入One hundred.盘子['a1'])左撇子分发One hundred.盘子['b2'])左撇子drop_tip.()

它是如何组织的

使用Python协议API编写协议时,通常有五个部分:

  1. 元数据和版本选择

  2. 运行功能

  3. 实验室的器具

  4. 移液器

  5. 命令

元数据和版本选择

元数据是服务器读取并返回到客户端应用程序的数据字典(例如Opentrons应用程序)。运行协议不需要大多数元数据,但如果存在的话可以帮助OpenTrons应用程序显示关于当前正在执行的协议的其他数据。这些可选(但推荐)字段是(“protocolName”“作者”,“描述”)。

元数据所需的元素是“apiLevel”。这必须包含一个字符串,指定您的协议所设计的Python协议API的主版本和次版本。例如,为Python协议API 2.0版本编写的协议(只有协议API的启动版本才应该包含在其元数据中“apiLevel”:“2.0”

有关Python协议API版本控制的更多信息,请参见版本控制

Run函数和协议上下文

协议是围绕一个被调用的函数来构建的运行(协议),在代码中定义如下:

必须确切地命名此功能运行并且必须采取一个强制性的一个强制性的论点(它的名字无关紧要,但我们推荐协议由于此参数表示机器人将执行的协议)。

这个函数运行是定义协议的代码的容器。

的对象协议协议内容,代表机器人及其能力。它总是一个实例opentrons.protocol_api.contexts.ProtocolContext班级(虽然你永远不必自己实例化 - 它总是通过run ()),它被标记为在示例协议中,以允许大多数编辑器给您自动完成。

协议上下文有两个职责:

  1. 记住,跟踪并检查机器人的状态

  2. 公开使机器人执行动作的函数

协议上下文扮演相同的角色机器人实验室的器具仪器,模块对象,有一个重要的区别:它只是一个对象;而且,由于它是传递到协议中的,而不是导入的,所以API在将模拟与现实分离方面可能更加严格。

关键是没有必要再这样做了进口opentrons在每个协议的顶端,自从机器人现在运行该协议,而不是运行机器人的协议。示例协议导入协议上下文的定义以提供具有自动完成源的编辑器。

实验室的器具

下一步是定义协议所需的实验设备。你必须告诉协议上下文什么应该出现在甲板上,以及在哪里。您可以通过调用该方法来告诉协议上下文labwareprotocol.load_labware(名称、槽)保存结果。

LabWare的名称是针对每种实验软件的字符串。您可以查找LabWare在Opentrons上添加到您的协议必威体育打水套利

插槽是您放置了实验软件的甲板上的标记位置。可用插槽的编号为1-11。

我们的示例协议上面的负载

盘子=协议load_labware“corning_96_wellplate_360ul_flat”2
tiprack.=协议load_labware“opentrons_96_tiprack_300ul”1

这些实验件可以稍后在协议as中引用盘子tiprack.分别。退房Python文档进一步说明如何在代码中有效地使用变量。

您可以找到有关处理实验室软件的更多信息实验室的器具部分。

移液器

定义了实验设备之后,你要定义你的协议所需的仪器。通过调用该方法,您可以告诉协议上下文应该连接哪个移液器,以及它们应该连接到哪个槽protocol.load_instrument(模型,山,tip_racks)保存结果。

模型移液管的移液管是一种应该附着的移液管;的或者是“左”“正确”;和tip_racks.是表示该仪器应该使用的尖端架的对象列表。指定tip_racks.是可选的,但如果你不这样做,那么你就必须手动指定仪器应该从哪里拾取提示,每次你尝试拾取提示。

移液器了解更多关于创建和使用移液管的信息。

我们上面的示例协议加载一个P300单通道移液器('p300_single')在左mount (“左”),并使用Opentrons 300µL tiprack,我们之前加载作为提示来源(tip_racks = [tiprack])。

命令

一旦定义了协议所需的仪器和LabWare,下一步是定义构成协议的命令。最常见的命令是Aspirate()分配()pick_up_tip (),drop_tip ()。这些和许多其他的在构建块命令复杂命令部分,将详细介绍命令及其工作方式。这些命令通常指定使用您之前定义的实验室设备与哪个孔进行交互,并且是您在移液管部分创建的仪器的方法。例如,在我们的示例协议中,你使用你定义的移液管:

  1. 拾取一个提示(隐式地从您在槽1中指定的tiprack,并分配给移液管):pipette.pick_up_tip ()

  2. 从槽2中指定的96孔板的A1孔中抽取100µL:pipette.aspirate (100板['a1'])

  3. 将100µL分配到槽2中指定的96孔板的A2孔中:pipette.dispense (100板['a2'])

  4. 将提示(隐式地放入机器人甲板后右侧的垃圾中):pipette.drop_tip()


特征请求

对我们的软件有一个有趣的想法或改进?通过遵循这些,在github上创建一个票证指导方针。

开发人员指南

你想为我们的开源API做出贡献吗?您可以找到有关如何参与的更多信息在这里。