我该如何修改我的Python脚本,以确保暂停步骤在Opentrons OT-2上不会被跳过?
目前在运行开始处的暂停步骤都被跳过。Opentrons软件在按下继续按钮并继续执行之前不会暂停协议。我也实现过其他带有叠加暂停步骤的协议,它们都能正常工作,所以不明白这一版为何就不行。
def run(protocol: protocol_api.ProtocolContext):
# Confirmations
protocol.pause(f"Confirm deck locations: Sample plate{'s' if number_sample_columns > 21 else ''} in {location_samples}. Evotip plate{'s' if number_evotips > 12 else ''} in {location_evotips}. 20 uL tips in {location_p20_tips}.300 uL tips in {location_p300}.Solvent reservoir in {location_solvent_plate}. All lids are off tip boxes.")
if number_sample_columns > 0:
protocol.pause(f"Confirm: {number_sample_columns} sample column{'s' if number_sample_columns != 1 else ''} in 96 well plate {'are' if number_sample_columns != 1 else 'is'} being processed, starting from column {sample_plate_first_column}.")
else:
protocol.pause("Confirm: No sample columns will be added.")
blank_start_col = number_sample_columns + 1
if number_blank_evotips > 0:
protocol.pause(f"Confirm: {number_blank_evotips} blank column{'s' if number_blank_evotips != 1 else ''} will be added after the samples starting at evotip column {blank_start_col}.")
else:
protocol.pause("Confirm: No blank columns will be added.")
protocol.pause(f"Confirm: 1 column of p300 tips from column {p300_first_column} is being used for solvent transfer.")
protocol.pause(f"Confirm: {number_evotips} column{'s' if number_evotips != 1 else ''} of p20 tips from column {p20_first_column} {'are' if number_evotips != 1 else 'is'} being used for sample and blank transfers.")
protocol.pause(f"Confirm: Buffer A reservoir loading plan is {buffer_volumes} between wells 1-11 and {iso_volume} uL isopropanol is in reservoir tray in well position {iso_location}.")
OpentronsTiploader(protocol, True).load_columns(True, True, False)
解决方案
创建一个包含所需信息的定义,然后对移液枪进行回原点定位。这种“移动”让2.9 API能在确认按钮被继续之前显示文本框。其中一个缺点是回原点定位的时间比简单移动要长,但目前还没能通过移动而不是回原点来让它工作。
def pause_then_home(protocol: protocol_api.ProtocolContext, message: str):
protocol.pause(message)
protocol.home()
def run(protocol: protocol_api.ProtocolContext):
pause_then_home(protocol, f"Confirm deck locations: Sample plate{'s' if number_sample_columns > 21 else ''} in {location_samples}. Evotip plate{'s' if number_evotips > 12 else ''} in {location_evotips}. 20 uL tips in {location_p20_tips}.300 uL tips in {location_p300}.Solvent reservoir in {location_solvent_plate}. All lids are off tip boxes.")
pause_then_home(protocol, f"Confirm: Buffer A reservoir loading plan is {buffer_volumes} between wells 1-11 and {iso_volume} uL isopropanol is in reservoir tray in well position {iso_location}.")
OpentronsTiploader(protocol, True).load_columns(True, True, False)
站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。