(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-01-20
(45)【発行日】2025-01-28
(54)【発明の名称】制御装置および方法
(51)【国際特許分類】
G01N 35/00 20060101AFI20250121BHJP
【FI】
G01N35/00 E
(21)【出願番号】P 2023552756
(86)(22)【出願日】2022-09-06
(86)【国際出願番号】 JP2022033379
(87)【国際公開番号】W WO2023058384
(87)【国際公開日】2023-04-13
【審査請求日】2024-03-08
(31)【優先権主張番号】P 2021164631
(32)【優先日】2021-10-06
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】000001993
【氏名又は名称】株式会社島津製作所
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】倉田 星哉
(72)【発明者】
【氏名】池上 将弘
(72)【発明者】
【氏名】伴野 太一
【審査官】野田 華代
(56)【参考文献】
【文献】特開2013-77335(JP,A)
【文献】国際公開第2021/5835(WO,A1)
【文献】特開2009-174997(JP,A)
【文献】国際公開第2021/38778(WO,A1)
【文献】特開2008-298798(JP,A)
【文献】国際公開第2020/183428(WO,A2)
【文献】国際公開第2022/4061(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G01N 35/00ー37/00
(57)【特許請求の範囲】
【請求項1】
実験プロトコルに基づいて実験装置を制御する制御装置であって、
実験の処理に対応する複数のノードを含む有向グラフで設計された実験プロトコルの入力を受け付ける入力部と、
第1ノードおよび前記第1ノードの処理の完了によって実行可能となる第2ノードが前記複数のノードに含まれる場合、前記第2ノードの処理の開始が前記第1ノードの処理の完了に依存することを示す第1依存情報を含む依存関係リストを生成する生成部と、
前記複数のノードの中から処理を開始させるノードを前記依存関係リストに基づいて選択する選択部と、
前記選択部により選択されたノードの処理を実験装置に指令する指令部と、
前記複数のノードの処理のうちのいずれかが完了した場合に、前記依存関係リストまたは前記複数のノードの状態を更新する更新部とを備え、
前記選択部は、前記第1ノードの処理が完了した場合、前記第2ノードを選択する、制御装置。
【請求項2】
前記更新部は、前記第1ノードの処理が完了した場合、前記第1依存情報を第1情報から第2情報に更新し、
前記選択部は、前記第1依存情報が前記第1情報から第2情報に更新された場合、前記第2ノードを選択する、請求項1に記載の制御装置。
【請求項3】
前記生成部は、前記複数のノードの各々のステータスを特定するためのステータスリストをさらに生成し、
前記更新部は、前記第1ノードの処理が完了した場合、前記ステータスリストにおける前記第1ノードのステータスを実行中から完了に更新し、前記第2ノードの処理を開始する場合、前記ステータスリストにおける前記第2ノードのステータスを実行待ちから実行中に更新する、請求項2に記載の制御装置。
【請求項4】
前記複数のノードは、前記第1ノードの処理の完了によって実行可能となる第3ノードを含み、
前記依存関係リストは、前記第3ノードの処理の開始が前記第1ノードの処理の完了に依存することを示す第2依存情報を含み、
前記更新部は、前記第1ノードの処理が完了した場合、前記第1依存情報および前記第2依存情報を前記第1情報から前記第2情報に更新し、
前記選択部は、前記第1依存情報および前記第2依存情報が前記第1情報から第2情報に更新された場合、前記第2ノードおよび前記第3ノードを選択する、請求項3に記載の制御装置。
【請求項5】
前記複数のノードは、前記第2ノードおよび前記第3ノードの処理が完了した後に、処理を開始することが可能となる第4ノードを含み、
前記依存関係リストは、前記第4ノードの処理の開始が前記第2ノードの処理の完了に依存することを示す第3依存情報と、前記第4ノードの処理の開始が前記第3ノードの処理の完了に依存することを示す第4依存情報とを含み、
前記更新部は、前記第2ノードの処理が完了した場合、前記第3依存情報を前記第1情報から前記第2情報に更新し、前記第3ノードの処理が完了した場合、前記第4依存情報を前記第1情報から前記第2情報に更新し、
前記選択部は、前記第3依存情報および前記第4依存情報が前記第1情報から第2情報に更新された場合、前記第4ノードを選択する、請求項4に記載の制御装置。
【請求項6】
前記依存関係リストを表示するための信号を出力する出力部をさらに備える、請求項1に記載の制御装置。
【請求項7】
前記入力部に入力された前記実験プロトコルが、サンプルを収容する容器に対応するノードを含む第1有向グラフで設計されている場合、前記入力部に入力された前記実験プロトコルを、前記容器を移動する装置の動作を含む第2有向グラフに変換する変換部をさらに備え、
前記生成部は、前記第2有向グラフに基づいて前記依存関係リストを生成する、請求項1に記載の制御装置。
【請求項8】
実験プロトコルに基づいて実験装置を制御する方法であって、
実験の処理に対応する複数のノードを含む有向グラフで設計された実験プロトコルの入力を受け付けるステップと、
第1ノードおよび前記第1ノードの処理の完了によって実行可能となる第2ノードが前記複数のノードに含まれる場合、前記第2ノードの処理の開始が前記第1ノードの処理の完了に依存することを示す第1依存情報を含む依存関係リストを生成するステップと、
前記複数のノードの中から処理を開始させるノードを前記依存関係リストに基づいて選択するステップと、
選択されたノードの処理を実験装置に指令するステップと、
前記複数のノードの処理のうちのいずれかが完了した場合に、前記依存関係リストまたは前記複数のノードの状態を更新するステップとを含み、
前記処理を開始させるノードを選択するステップは、前記第1ノードの処理が完了した場合、前記第2ノードを選択する、方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、制御装置および方法に関し、特には、実験プロトコルに基づいて実験装置を制御する制御装置および実験プロトコルに基づいて実験装置を制御する方法に関する。
【背景技術】
【0002】
従来、ユーザがコンピュータ上で設計した実験プロトコルに従って実験を行う構成が知られている。たとえば、国際公開第2016/208623号(特許文献1)に開示されているシステムは、実験プロトコルに関する情報を含むデータベースから実験の連鎖が網目状に形成されたグラフを取得して表示する。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
実験プロトコルに基づいた処理の自動化を目指す場合、実験プロトコルに基づいた一つひとつの処理を制御装置がシーケンシャルに実行する手法を採用することが考えられる。このような手法では、1つの処理の完了を待って、次の処理に進むため、制御装置の制御を単純化することができる。たとえば、制御装置は、実験プロトコルに含まれる複数の処理を1次元の配列構造を持った命令集として順次実行していくだけでよい。
【0005】
ところで、複数の処理を同時に実行することで実験効率を向上させることができる実験プロトコルも存在する。たとえば、リキッドハンドラで試料を作成している間に、別の試料を遠心分離機で分離するなど、多数の試料を複数の装置で同時に分析することで、より多くの試料を作成および分析することできる場合がある。
【0006】
このような並列処理を含む実験プロトコルは、有向グラフを用いることによって比較的容易に作成することができる。有向グラフでは、実験装置の処理などをノードで表現し、複数の処理の前後関係をエッジで表現する。エッジは、先に処理するノードから後に処理するノードへと向かう。並列処理を有向グラフで表現するためには、たとえば、あるノードと複数のノードとをエッジで接続すればよい。
【0007】
しかし、並列処理が含まれる実験プロトコルを制御装置に実行させることは容易ではない。1つの処理の完了を待って、次の処理に進むような制御を繰り返す制御装置では、1つの処理から枝分かれして並行して進む複数の処理の順序などを管理することができない。
【0008】
本発明は、このような課題を解決するためになされたものであって、その目的は、有向グラフで作成された実験プロトコルに基づいた実験効率を高めることである。
【課題を解決するための手段】
【0009】
本発明の一局面に係る制御装置は、実験プロトコルに基づいて実験装置を制御する制御装置である。制御装置は、実験の処理に対応する複数のノードを含む有向グラフで設計された実験プロトコルの入力を受け付ける入力部と、第1ノードおよび第1ノードの処理の完了によって実行可能となる第2ノードが複数のノードに含まれる場合、第2ノードの処理の開始が第1ノードの処理の完了に依存することを示す第1依存情報を含む依存関係リストを生成する生成部と、複数のノードの中から処理を開始させるノードを依存関係リストに基づいて選択する選択部と、選択部により選択されたノードの処理を実験装置に指令する指令部と、複数のノードの処理のうちのいずれかが完了した場合に、依存関係リストまたは複数のノードの状態を更新する更新部とを備え、選択部は、第1ノードの処理が完了した場合、第2ノードを選択する。
【0010】
本発明の他の局面に係る方法は、実験プロトコルに基づいて実験装置を制御する方法である。方法は、実験の処理に対応する複数のノードを含む有向グラフで設計された実験プロトコルの入力を受け付けるステップと、第1ノードおよび第1ノードの処理の完了によって実行可能となる第2ノードが複数のノードに含まれる場合、第2ノードの処理の開始が第1ノードの処理の完了に依存することを示す第1依存情報を含む依存関係リストを生成するステップと、複数のノードの中から処理を開始させるノードを依存関係リストに基づいて選択するステップと、選択部により選択されたノードの処理を実験装置に指令するステップと、複数のノードの処理のうちのいずれかが完了した場合に、依存関係リストまたは複数のノードの状態を更新するステップとを含み、処理を開始させるノードを選択するステップは、第1ノードの処理が完了した場合、第2ノードを選択する。
【発明の効果】
【0011】
本開示によれば、有向グラフで作成された実験プロトコルに基づいた実験効率を高めることができる。
【図面の簡単な説明】
【0012】
【
図1】自動実験管理システム1000の構成を示すブロック図である。
【
図2】端末装置400のハードウェア構成を示すブロック図である。
【
図3】実験プロトコル設計アプリケーション500のGUI構成を示す図である。
【
図4】自動実験システムウィンドウにおいてある処理が選択された様子を示す図である。
【
図5】選択された処理に対応する処理ノードがプロトコル設計ウィンドウに追加された様子を示す図である。
【
図6】実験プロトコルの設計例である有向グラフDG1を示す図である。
【
図7】ロボットアーム121の動作ノードを含む有向グラフDG2を示す図である。
【
図9】有向グラフDG3に基づいて制御装置110が作成するイベントハンドラを示す図である。
【
図10】有向グラフDG3に基づいて制御装置110が作成する隣接行列リストを示す図である。
【
図11】有向グラフDG3に基づいた処理の進行に応じてイベントハンドラが更新される様子を示す図である。
【
図12】有向グラフDG3に基づいた処理の進行に応じて隣接行列リストが更新される様子を示す図である。
【
図13】実験プロトコルに基づく自動実験の流れを説明するフローチャートである。
【
図14】実験プロトコルに応じて制御装置110がイベントハンドラおよび隣接行列リストを生成する処理を示すフローチャートである。
【
図15】制御装置110がイベントハンドラおよび隣接行列リストに基づいて実験プロトコルを実行する処理を示すフローチャートである。
【
図16】制御装置110の機能に関わる構成を説明するための自動実験管理システム1000の構成を示すブロック図である。
【
図17】サーバ装置200のハードウェア構成を示すブロック図である。
【
図18】変形例1に係る自動実験管理システム1100の構成を示すブロック図である。
【
図19】変形例1に関わる端末装置400Aのハードウェア構成を示すブロック図である。
【
図20】変形例2に係る自動実験システム1Bの構成を示すブロック図である。
【
図21】制御装置110Bのハードウェア構成を示すブロック図である。
【
図23】有向グラフDG4および有向グラフDG4に対してロボットアーム121のノードを追加した有向グラフDG5を示す図である。
【発明を実施するための形態】
【0013】
以下に、実施の形態について図面を参照して詳細に説明する。なお、以下では図中の同一または相当部分には同一符号を付してその説明は原則的に繰り返さない。
【0014】
図1は、自動実験管理システム1000の構成を示すブロック図である。
図1に示されるように、自動実験管理システム1000は、自動実験システム1と、サーバ装置200と、データベース300と、端末装置400とを備える。データベース300は、サーバ装置200に接続されている。データベース300には、たとえば自動実験システム1に関する情報、サンプルに関する情報、実験プロトコル、および実験プロトコルの実行による出力データ(実験結果)等が登録される。
【0015】
端末装置400は、入出力部430を含む。入出力部430は、ディスプレイ431と、キーボード432と、タッチパッド433とを含む。端末装置400は、たとえば、ノートパソコン、パーソンルコンピュータ、スマートフォン、およびタブレットである。自動実験システム1、サーバ装置200、および端末装置400は、ネットワークNWを介して互いに接続されている。ネットワークNWは、たとえばインターネット、WAN(Wan Area Network)、またはLAN(Lan Area Network)を含む。なお、ネットワークNWに接続されている端末装置400は2つ以上であってもよいし、自動実験システムは2つ以上であってもよい。
【0016】
サーバ装置200は、実験プロトコル設計アプリケーション500(特定アプリケーション)をWebアプリケーションとして端末装置400に提供する。実験プロトコル設計アプリケーション500は、端末装置400においてWebブラウザ600を介してディスプレイ431に表示される。キーボード432およびタッチパッド433は、ユーザによる実験プロトコル設計アプリケーション500へのGUI操作を受け付ける。すなわち、端末装置400のユーザは、キーボード432およびタッチパッド433を介するGUI操作によって、実験プロトコル設計アプリケーション500において自動実験システムを選択して、自動実験システムによって実行される実験プロトコルを設計する。
【0017】
実験プロトコルにおいては、ユーザによって選択された自動実験システム1に含まれる少なくとも1つの実験装置の処理順序が規定されている。端末装置400は、ユーザによって設計された実験プロトコルをサーバ装置200に送信する。サーバ装置200は、ユーザによって指定された自動実験システム1に実験プロトコルを送信する。実験プロトコルを設計する端末装置400と、実験プロトコルを実行する自動実験システム1との間にサーバ装置200を介在させることにより、複数の端末装置400および複数の自動実験システム1をサーバ装置200によって一括管理することができる。
【0018】
自動実験システム1は、制御装置110と、複数の実験装置120とを含む。制御装置110は、複数の実験装置120を制御して、サーバ装置200からの実験プロトコルを自動的に実行する。複数の実験装置120は、ロボットアーム121と、インキュベータ122と、リキッドハンドラ123と、マイクロプレートリーダ124と、遠心分離機125と、液体クロマトグラフ質量分析装置(LCMS:Liquid Chromatograph Mass Spectrometer)126とを含む。自動実験システムに含まれる実験装置は1つであってもよい。
【0019】
制御装置110は、制御部としてのプロセッサ111と、記憶部としてのメモリ112とを含む。
【0020】
プロセッサ111は、典型的には、CPU(Central Processing Unit)またはMPU(Multi-Processing Unit)などの演算処理部である。プロセッサ111は、メモリ112に記憶されたプログラムを読み出して実行することで、実験プロトコルを実行するための処理を実現する。
【0021】
メモリ112は、RAM(Random Access Memory)、ROM(Read Only Memory)およびフラッシュメモリなどの不揮発性メモリによって実現される。メモリ112は、プロセッサ111が可読可能な形式で非一時的にプログラムを記録することができれば、CD-ROM(Compact Disc - Read Only Memory)、DVD-ROM(Digital Versatile Disk - Read Only Memory)、およびUSB(Universal Serial Bus)などにより構成してもよい。
【0022】
ロボットアーム121は、実験プロトコルに規定された複数の処理の順序に従って、サンプルを収容する容器であるプレートPlt1またはPlt2を実験装置へ移動する。プレートPlt1,Plt2の各々は、たとえば培養された大腸菌を含む寒天を収容する。インキュベータ122は、温度管理を行いながら細胞を培養する。リキッドハンドラ123は、自動的に、複数のマイクロプレート(ウェル)の各々へ一定量ずつサンプルを分配(分注)する。マイクロプレートリーダ124は、マイクロプレート内のサンプルの光学的性質を測定する。マイクロプレートリーダ124は、たとえば吸光度および蛍光強度を測定する。遠心分離機125は、遠心力によってサンプルの成分を分離する。LCMS126は、液体クロマトグラフによって分離されたサンプルの成分を質量電荷比(m/z)毎に分離する質量分析を行う。
【0023】
図2は、端末装置400のハードウェア構成を示すブロック図である。
図2に示されるように、端末装置400は、プロセッサ421と、記憶部としてのメモリ422およびハードディスク423と、通信インターフェース424と、入出力部430とを含む。これらは、バス440を介して相互に通信可能に接続されている。
【0024】
ハードディスク423は、不揮発性の記憶装置である。ハードディスク423には、たとえばオペレーティングシステム(OS:Operating System)のプログラム41、およびWebブラウザのプログラム42が保存されている。
図2に示されるデータ以外にも、ハードディスク423には、たとえば各種アプリケーションの設定および出力が保存される。メモリ422は、揮発性の記憶装置であり、たとえばDRAM(Dynamic Random Access Memory)を含む。
【0025】
プロセッサ421は、CPU(Central Processing Unit)を含む。プロセッサ421は、ハードディスク423に保存されているプログラムをメモリ422に読み込んで実行する。プロセッサ421は、通信インターフェース424を介してネットワークNWに接続する。
【0026】
図3は、実験プロトコル設計アプリケーション500のGUI構成を示す図である。
図3に示されるように、実験プロトコル設計アプリケーション500は、キューリストウィンドウ510と、プロトコルリストウィンドウ520と、プロトコル設計ウィンドウ530と、自動実験システムウィンドウ540と、サンプル容器ウィンドウ550と、ツールウィンドウ560と、選択カーソルCrとを含む。
【0027】
キューリストウィンドウ510には、複数のプロコトルが順序付けられたキューが表示される。
図3においては、キューq1,q2がキューリストウィンドウ510に表示されている。プロトコルリストウィンドウ520には、実験プロトコルが表示される。
図3においては、実験プロトコルp1がプロトコルリストウィンドウ520に表示され、選択されている。
【0028】
プロトコル設計ウィンドウ530においては、実験プロトコルが有向グラフで設計される。有向グラフにおいては、複数のノード間の接続関係がエッジとして規定される。有向グラフは、予め定められた構造化データフォーマットに従って、グラフ構造データとして保存される。構造化データフォーマットとしては、たとえばXML(Extensible Markup Language)またはJson(JavaScript(登録商標) Object Notation)を挙げることができる。有向グラフの頂点として選択可能な複数のノードは、GUIとして形成され、容器ノード、処理ノード、およびデータノードを含む。容器ノードは、サンプルを収容する容器に対応するノードである。処理ノードは、自動実験システムに含まれる装置の各々の処理に対応するノードである。データノードは、実験装置の処理の出力データに対応するノードである。
【0029】
プロトコル設計ウィンドウ530は、容器領域531、処理領域532、およびデータ領域533に分けられている。ある実験プロトコルの設計を開始する初期状態において処理領域532には、実験プロトコルの開始を表すスタートノードMs、実験プロトコルの終了を表すエンドノードMe、およびスタートノードMsからエンドノードMeへ向かうエッジE10が表示されている。
【0030】
自動実験システムウィンドウ540には、ユーザによって選択された自動実験システムに含まれる少なくとも1つの実験装置の各々によって実行可能な処理が表示される。
図3においては、自動実験システム1が選択されている。ロボットアーム121によって実行可能な処理として、「容器の搬送」が表示されている。インキュベータ122によって実行可能な処理として、「細胞の培養」が表示されている。リキッドハンドラ123によって実行可能な処理として、「液体の分注」が表示されている。マイクロプレートリーダ124によって実行可能な処理として、「吸光度測定」および「蛍光強度測定」が表示されている。遠心分離機125によって実行可能な処理として、「遠心分離」が表示されている。LCMS126によって実行可能な処理として、「質量分析」が表示されている。
【0031】
サンプル容器ウィンドウ550には、サンプルを収容する容器が表示される。
図3においては、サンプルの一例である大腸菌を収容する容器として、プレートPlt1,Plt2が表示されている。
【0032】
ツールウィンドウ560には、自動実験システム1の制御装置110によって行われる特定の処理が表示される。
図3においては、「特徴量抽出」、「条件分岐」、「反復」、および「タイマ」が表示されている。「特徴量抽出」は、ユーザによって選択されたデータノードに対応するデータからユーザによって指定された特徴量を抽出する処理に対応する。「条件分岐」は、ユーザによって指定された条件の成否に基づいて分岐処理を行う処理に対応する。「反復」は、ユーザによって指定された回数だけ指定された処理を反復する処理に対応する。「タイマ」は、ユーザによって指定された時間の間、実験プロトコルの進行を待機する処理に対応する。
【0033】
図4は、自動実験システムウィンドウ540においてある処理が選択された様子を示す図である。
図4に示されるように、ユーザによって、自動実験システムウィンドウ540において「吸光度測定」が選択され、スタートノードMsとエンドノードMeとの間にドラッグされる。
【0034】
図5は、選択された処理に対応する処理ノードがプロトコル設計ウィンドウ530に追加された様子を示す図である。
図5に示されるように、「吸光度測定」に対応する処理ノードM1がスタートノードMsとエンドノードMeとの間に追加され、選択されている。処理ノードM1の追加に伴い、容器ノードC1およびデータノードD1が自動的に容器領域531およびデータ領域533にそれぞれ自動的に追加される。処理ノードM1の選択に伴い、選択されたノードに関する情報を含む情報ウィンドウ570が表示されている。
図5においては、処理ノードM1に対応する吸光度測定のパラメータとして、測定波長および測定対象ウェルが表示されている。
【0035】
スタートノードMsおよび処理ノードM1は、スタートノードMsから処理ノードM1に向かうエッジE1によって接続されている。処理ノードM1およびエンドノードMeは、処理ノードM1からエンドノードMeに向かうエッジE2によって接続されている。容器ノードC1および処理ノードM1は、容器ノードC1から処理ノードM1に向かうエッジE3(第1エッジ)によって接続されている。処理ノードM1およびデータノードD1は、処理ノードM1からデータノードD1に向かうエッジE4(第2エッジ)によって接続されている。エッジE3は、容器ノードC1に対応する容器が処理ノードM1に対応する処理に入力されることを示す。エッジE4は、処理ノードM1に対応する処理の出力データがデータノードD1に対応することを示す。処理ノードの追加に伴い、処理ノードに接続された容器ノードおよびデータノードが自動的に追加されることにより、実験プロトコルの設計を効率化することができる。なお、
図5においては、容器ノードC1が対応するサンプル容器が指定されていないため、容器ノードC1およびエッジE3が点線で示されている。
【0036】
以上に説明した手順で、ユーザは、実験プロトコル設計アプリケーション500によって提供されるウィンドウから必要な処理を選択することによって、実験プロトコルを有向グラフで設計することができる。ここで、ユーザによって有向グラフの形式で作成された実験プロトコルの設計例を示す。
【0037】
図6は、実験プロトコルの設計例である有向グラフDG1を示す図である。プロトコル設計ウィンドウ530には、有向グラフDG1が示されている。有向グラフDG1は、スタートノードMs、エンドノードMe、処理ノードM11,M12,M13,M14,M15,M16、容器ノードC11,C12,C13,C14,C15,C16,C17,C18、およびデータノードD11,D12を含む。
【0038】
処理ノードM11およびM12は、「液体の分注」に対応する。処理ノードM13は、「培養装置への取り込み」に対応する。処理ノードM14は、「吸光度測定」に対応する。処理ノードM15は、「遠心分離」に対応する。処理ノードM16は、「LCMS分析」に対応する。
【0039】
容器ノードC11,C16は、「培養プレート」に対応する。容器ノードC12,C13,C17,C18は、「測定プレート1」に対応する。容器ノードC14,C15は、「測定プレート2」に対応する。
【0040】
データノードD11は、「吸光度データ」に対応する。データノードD12は、「LCMSデータ」に対応する。
【0041】
各ノードは、エッジによって他のノードに接続される。たとえば、スタートノードMsは、エッジによってノードM11に接続される。ノードC11およびC12は、エッジによってノードM11に接続される。ノードM11は、エッジによってノードM12に接続される。さらに、ノードM11はエッジによってノードC16に接続される。
【0042】
容器ノードC11,12から処理ノードM11に向かうエッジは、培養プレートと測定プレート1とが所定の位置に搬送されることによって、処理ノードM11に対応する「液体の分注」が実行されることを表す。
【0043】
処理ノードM14からデータノードD11に向かうエッジは、吸光度測定によって吸光度データが得られることを表す。
【0044】
このように、ユーザは、実験プロトコルを設計する段階において、搬送対象のプレート名を容器ノードとして用いるとともに、実験プロトコルによって得られるデータをデータノードとして用いることができる。その結果、ユーザは、実際の実験プロトコルの流れをイメージして直感的に有向グラフを作成することができる。ユーザーは、このような有向グラフを端末装置400を用いて作成することができる。サーバ装置200は、端末装置400で作成された有向グラフを保存する。サーバ装置200は、保存した有向グラフを実験システム1の制御装置110に送信する。
【0045】
容器ノードおよびデータノードを含む有向グラフは、人間がそれを見たときに実際の実験プロトコルの流れを直感的に理解できるというメリットを有する。しかし、この有向グラフにはプレートを搬送するロボットアーム121の動作が描かれていない。実験システム1において有向グラフに基づいて自動的に実験プロトコルを実行するためには、ロボットアーム121の動作がノードとして特定される必要がある。そこで、有向グラフを受信した制御装置110は、容器ノードおよびデータノードを含む有向グラフを、ロボットアーム121の動作ノードを含む有向グラフに変換する。
【0046】
図7は、ロボットアーム121の動作ノードを含む有向グラフDG2を示す図である。制御装置110は、ユーザによって作成された有向グラフDG1(
図6参照)を、
図7に示す有向グラフDG2に変換する。有向グラフDG2には、ロボットアーム121の動作ノードに対応するノードR11~R14が含まれる。ノードR11~R14は、
図6に示される容器ノードC11~C18をロボットアーム121の動作に変換したものである。
【0047】
たとえば、ノードR11は、培養プレートに関するノードC11の処理と、測定プレート1に関するノードC12の処理とを含む。ノードR12は、測定プレート1に関するノードC13の処理と、プレート2に関するノードC14の処理と、培養プレートに関するノードC16の処理とを含む。ノードR13は、測定プレート2に関するノードC15の処理と、測定プレート1に関するノードC17の処理とを含む。ノードR14は、測定プレート1に関するノードC18の処理を含む。
【0048】
このように、制御装置110は、容器ノードおよびデータノードを含む有向グラフを、ロボットアーム121の動作ノードを含む有向グラフに変換する。
図7に示される有向グラフDG2の動作ノードR11~R14では、説明を簡単にするため、ロボットアーム121が搬送するプレートおよび搬送先の装置に関する情報の記述を省略している。実際に使用する有向グラフの動作ノードには、これらの情報が含まれる。
【0049】
以上、説明したとおり、本実施の形態によれば、ユーザは、実験プロトコルを有向グラフで容易に設計することができる。特に、ユーザは、実験プロトコルを有向グラフで作成することにより、並列処理を含む複雑な実験プロトコルを比較的簡単に設計することができる。
【0050】
本実施の形態に関わる制御装置110によれば、容器ノードおよびデータノードを含む有向グラフが、ロボットアーム121の動作ノードを含む有向グラフに変換される。このため、ユーザは、ロボットアーム121の動作を意識することなく、実際の実験プロトコルの流れをイメージして
図6に例示するような有向グラフを作成することができる。
【0051】
また、有向グラフに応じて、複数のノードの処理を同時に進めることによって、実験効率を向上させることができる。たとえば、
図7に示される有向グラフDG2では、ノードR12の処理の完了後、ノードM12とノードM13とが並列処理され、両ノードM12およびM13の処理の完了後にノードR13の処理が実行されることが規定されている。
【0052】
しかし、並列処理が含まれる実験プロトコルを制御装置110に実行させることは容易ではない。たとえば、1つのノードの処理が完了することを待って、次のノードの処理を指令するように構成された制御装置110は、並行して進む複数のノードの処理を管理することができない。
【0053】
このため、従来の実験実行ソフトウェアでは、一つひとつの装置をシーケンシャルに動作させることによって、実験作業をシーケンシャルに実行していた。一般に、複数の装置で構成される自動実験システムを動作させる場合、複数の装置を並行して動作させるよりも、一つひとつの装置をシーケンシャルに動作させる方が容易である。1次元の配列構造を持った命令集を順次実行していくことによって、実験自動システムに含まれる各装置を制御することができるからである。しかし、この方法では、実験実行ソフトウェアは、命令を与えた装置から命令に対応する動作の完了を受信してから、他の装置に対して命令を与えることになる。
【0054】
実験プロトコルでは、複数の装置を並行して動作させることによって実験効率を向上させることができる。たとえば、リキッドハンドラ123である試料を調整しているときに、別の試料を遠心分離機125で分離したり、多数の試料を複数の液体クロマトグラフ質量分析装置126で並行して分析したりすることで、より多くの試料を短時間で作成および分析することが可能となる。
【0055】
有向グラフで作成された並列処理を含む実験プロコトルを自動的に実行するために、一次元配列構造を持つ命令の配列に対して、各ノードの処理に要する時間などの各種の情報を含めることが考えられる。しかし、あるノードの処理を開始するために、処理の完了を待つ必要のあるノードの情報、各ノードの処理の所要時間に関する情報、およびノードの処理を開始する時刻などの情報をユーザが考えてシステムに設定する必要がある。このような設定作業は、ユーザの負担になる。
【0056】
そこで、本実施の形態では、上記のような設計作業をユーザに強いることなく、有向グラフで作成された実験プロトコルを制御装置110が自動的に実行できる手法を提案する。具体的には、制御装置110は、有向グラフに基づいて、イベントハンドラおよび隣接行列リストを生成する。イベントハンドラおよび隣接行列リストは、有向グラフに基づいた実験を進めるために制御装置110が利用するデータである。
【0057】
図8は、有向グラフDG3を示す図である。ここでは、イベントハンドラおよび隣接行列リストの理解を容易にするため、ノード数の少ない有向グラフDG3を用いてイベントハンドラおよび隣接行列リストを説明する。
図8に示されるように、有向グラフDG3は、スタートノードおよびエンドノードに加えて、A~Fのノードにより構成されるものとする。A~Fのノードは、たとえば、
図7に示されるロボットアーム121の動作ノードを含む各種の処理ノードである。
図8は、それらの処理ノードがA~Fという概念で表されている。
【0058】
図8に示されるように、有向グラフDG3によれば、ノードBとノードCとが並列処理される必要がある。実験効率を高めるために、ノードBおよびノードCの処理は、ノードAの処理が完了した後、速やかに実行されなければならない。しかし、ノードAの処理が完了するタイミングを正確に予測することは制御装置110にとって容易でない。制御装置110には、このような実験効率を考慮した適切な制御が求められる。
【0059】
有向グラフDG3によれば、ノードBおよびノードCの処理の完了を待ってノードDの処理が実行される必要があり、ノードDおよびノードEの処理の完了を待ってノードFの処理が実行される必要がある。実験効率を高めるために、ノードDの処理は、ノードBおよびノードCの処理が完了した段階で速やかに実行される必要がある。しかし、ノードBおよびノードCの処理が完了するタイミングを正確に予測することは制御装置110によって容易でない。同様の理由により、ノードFの処理は、ノードDおよびノードEの処理が完了した段階で速やかに実行される必要がある。しかし、ノードDおよびノードEの処理が完了するタイミングを正確に予測することは制御装置110にとって容易でない。制御装置110には、このような実験効率を考慮した適切な制御が求められる。
【0060】
有向グラフDG3によれば、ノードDとノードEとが並列処理される必要がある。ノードEの処理を進めるためには、ノードBの処理の完了を待つ必要がある。ノードDの処理を進めるためには、ノードBおよびノードCの処理の完了を待つ必要がある。ノードDおよびノードEの並列処理を効率的に進めるため、制御装置110には、ノードBおよびノードCの並列処理を実現する場合よりも複雑な制御が求められる。
【0061】
制御装置110は、各ノードの処理の順序および開始タイミングをイベントハンドラおよび隣接行列リストで制御する。次に、イベントハンドラおよび隣接行列リストの例を挙げて、それぞれについて説明する。
【0062】
図9は、有向グラフDG3に基づいて制御装置110が作成するイベントハンドラを示す図である。
図10は、有向グラフDG3に基づいて制御装置110が作成する隣接行列リストを示す図である。
【0063】
ユーザによって設計された実験プロコトルは、サーバ装置200から制御装置110に送信される。制御装置110は、受信した実験プロトコルを実行するため、実験プロトコルに基づいて隣接行列およびイベントハンドラを生成する。制御装置110は、イベントハンドラおよび隣接行列リストを利用して実験プロトコルを実行する。制御装置110は、イベントハンドラおよび隣接行列リストを利用することにより、有向グラフの形式で設計された実験プロトコルを実行することができる。
【0064】
図9に示されるように、イベントハンドラは、有向グラフD3のノードとステータスとの組み合せにより構成される。イベントハンドラは、ノードの処理のステータスを示すデータである。したがって、イベントハンドラは、ステータスリストとして機能する。ここで、「To do」は、対応するノードの処理が実行待ちであることを意味する。
図9に示されるイベントハンドラでは、すべてのノードのステータスが「To do」である。したがって、
図9のイベントハンドラは、すべてのノードの処理が実行待ちの状態であることを示す。すべてのノードの処理が実行待ちの状態であることを初期状態という。制御装置110は、有向グラフD3に基づいて、初期状態に対応するイベントハンドラおよび隣接行列リストを生成する。
【0065】
イベントハンドラの「To do」に対応するノードのうちのいずれかの処理が開始されると、対応するノードのステータスは「To do」から「Run」に変化する。「Run」に対応するノードの処理が完了すると、そのノードの処理のステータスは「Run」から「Done」に変化する。
【0066】
図10に示されるように、隣接行列リストは、有向グラフD3のすべてのノードをX軸方向とY軸方向との2方向に展開した行列形式のデータによって構成される。
図10では、理解を容易にするため、X軸方向に並ぶノード名には”x”を付加し、Y軸方向に並ぶノード名には”y”を付加している。これらの付加した記号は、実際のデータに設ける必要はない。
【0067】
隣接行列リストには、スタートx列、Ax列、Bx列、Cx列…が構成されるとともに、スタートy行、Ay行、By行、Cy行…が構成される。スタートx列、Ax列、Bx列、Cx列…は、それぞれ、Column1、Column2、Column3、Column4、…とも表現される。
【0068】
隣接行列リストには、ノードの状態を表す成分値が設定される。たとえば、
図10のBx列とAy行とによって特定される位置には、ノードの状態を表す成分値の一例として「wait」が設定されている。以下、Bx列とAy行とによって特定される位置を(Bx,Ay)のようにX軸およびY軸を用いた座標系で記載する。
【0069】
図10に示される隣接行列リストは、初期状態に対応するリストである。あるノードの処理が実行可能であるか否かは、そのノード名の列の成分値によって判定される。ここで、「ノードの処理が実行可能な状態」とは、そのノードの処理を実行するために必要となる他のノードの処理が完了していることを意味する。
【0070】
制御装置110は、あるノードの処理が完了すると、そのノード名に対応する行の成分値を「wait」から「ready」に更新する。たとえば、ノードAの処理が完了すると、Ay行に存在するすべての成分値が「wait」から「ready」に更新される。その結果、(Bx,By)および(Cx,Ay)の成分値が「wait」から「ready」に更新される。
【0071】
このように、成分値が「wait」から「ready」に更新される契機は、ノードの処理の完了である。また、「wait」から「ready」に更新される対象は、処理が完了したノード名に対応する行の成分値である。
【0072】
制御装置110は、あるノードの処理を実行可能であるか否かを判定するために、そのノードに対応する列をチェックする。そのノードに対応する列に「wait」の成分値が1つでも存在する場合、制御装置110は、その列に対応するノードの処理は実行可能でないと判定する。そのノードに対応する列に「wait」の成分値が1つも存在しない場合、制御装置110は、その列に対応するノードの処理は実行可能であると判定する。たとえば、
図10に示される隣接行列リストの状態からすると、実行できる状態にあるノードの処理は、スタートノードの処理のみである。スタートx列には「wait」の成分値が1つも存在しない一方。他の列には「wait」の成分値が少なくとも1つ存在するからである。
【0073】
スタートノードに実質的な処理は存在しないので、開始したスタートノードの処理はただちに完了する。制御装置110は、自らが出したスタートノードの処理を開始する指令を自身で受けて、スタートノードの処理の完了信号を生成する。これによって、即座にスタートノードの処理を完了させる。このとき、制御装置110は、スタートノードに対応するスタートy行の成分値を「wait」から「ready」に更新する。その結果、(Ax,スタートy)の成分値が「ready」に変化する。すると、Ax列に「wait」の成分値が存在しなくなる。
図9のイベントハンドラにおいて、ノードAは処理の実行待ちの状態である。イベントハンドラおよび隣接行列リストの状態から、ノードAの処理を実行可能な状態であることが特定される。
【0074】
制御装置110は、ノードAの処理を開始させるとともに、隣接行列リストにおいて、Ax列の成分値を「ready」から「passed」に更新する。その結果、(Ax,スタートy)の成分値が「passed」に変化する。
【0075】
このように、成分値が「ready」から「passed」に更新される契機は、ノードの処理の完了である。また、「ready」から「passed」に更新される対象は、処理が開始したノード名に対応する列の成分値である。
【0076】
次に、実験プロトコルに基づいた実験が進行しているときのイベントハンドラおよび隣接行列リストの一例を説明する。
図11は、有向グラフDG3に基づいた処理の進行に応じてイベントハンドラが更新される様子を示す図である。
図12は、有向グラフDG3に基づいた処理の進行に応じて隣接行列リストが更新される様子を示す図である。
【0077】
図11に示されるように、ここでは、有向グラフD3のうち、スタートノード、ノードA、およびノードCの処理が完了し、ノードBの処理が実行中である状態を例に挙げて、その状態に対応するイベントハンドラおよび隣接行列リストを説明する。
【0078】
イベントハンドラには、有向グラフD3におけるノードの処理の状態が反映される。
図11に示されるように、スタートノード、ノードA、およびノードCに対応するステータスは「Done」となり、ノードBに対応するステータスは「Run」となる。処理待ちとされているノードD、ノードE、ノードF、およびエンドノードに対応するステータスは「To do」である。
【0079】
図12に示される隣接行列リストにおいて、Ax列、Bx列、およびCx列の成分値は「passed」である。これらの成分値は、ノードA、ノードB、およびノードCの処理が処理待ちでないことを意味する。ここで、
図11に示されるイベントハンドラを参照することにより、ノードAおよびノードCの処理が実行済みであり、ノードBの処理が実行中であることが特定される。制御装置110は、イベントハンドラおよび隣接行列リストを参照することにより、これらの状態を特定する。
【0080】
隣接行列リストにおいて、(Dx,Cy)の値は「ready」であるが、(Dx,By)の値は「wait」である。(Dx,By)の値は、By行に対応するノードBの処理が完了していないことを意味する。(Dx,Cy)の値は、Cy行に対応するノードCの処理が完了していることを意味する。
【0081】
制御装置110は、ノードBの処理が完了すると、イベントハンドラのノードBに対応するステータスを「Run」から「Done」に変化させる。また、制御装置110は、ノードBの処理が完了すると、隣接行列リストのBy行の2箇所の「wait」を「ready」に変化させる。これにより、Dx列およびEx列には「wait」が存在しなくなる。このとき、制御装置110は、ノードDおよびノードEが実行可能な状態と判定できる。制御装置110は、ノードDおよびノードEの処理を開始させるとともに、イベントハンドラのノードDおよびノードEのステータスを「To do」から「Run」に変化させる。さらに、制御装置110は、隣接行列リストのDx列およびEx列の「ready」を「passed」に変化させる。
【0082】
以上、説明したように、制御装置110は、実験プロトコル内のノード間のつながりを行列の成分で表した隣接行列リストを生成し、隣接行列リストの成分の値を変化させることによって、ノードの処理を実行するタイミングを管理する。制御装置110は、隣接行列リストにおいて依存関係にあるノードの処理がすべて完了すると、次のノードの処理を指令する。1つのノードは、基本的に1つの装置の動作条件の情報を持つ命令で構成される。ノードに対応する処理を実行するときには、そのノードに対応する命令が制御装置110から対象の装置に送信される。制御装置110は、命令を送信した装置から動作の完了を示す完了信号を受信すると、そのノードに対応する処理が完了したもの判定する。
【0083】
制御装置110は、自動実験を実行しているときに、最新のイベントハンドラおよび隣接行列リストを端末装置400へ出力してもよい。端末装置400は、入力されたイベントハンドラおよび隣接行列リストを表示装置に表示してもよい。
【0084】
このように、制御装置110は、有向グラフに基づいてイベントハンドラおよび隣接行列リストを生成する。制御装置110は、イベントハンドラおよび隣接行列リストに基づいて、有向グラフによって設計された実験プロトコルを実行する。
【0085】
図13は、実験プロトコルに基づく自動実験の流れを説明するフローチャートである。
図13に示されるように、端末装置400は、ユーザの操作に基づいて実験プロトコルを有向グラフで設計し、実験プロトコルをサーバ装置200に送信する(ステップS11)。サーバ装置200は、ユーザの操作に従って、自動実験システム1に実験プロトコルを送信する(ステップS12)。自動実験システム1の制御装置110は、サーバ装置200から受信した実験プロトコルを自動的に実行する(ステップS13)。制御装置110は、実験プロトコルに含まれる処理の出力データをサーバ装置200に送信する(ステップS14)。
【0086】
本実施の形態においては、端末装置400において設計された実験プロトコルがサーバ装置200を介して自動実験システム1に送信される場合について説明した。端末装置400は、実験プロトコルを自動実験システム1に直接送信してもよい。
【0087】
次に、制御装置110が実験プロトコルを自動的に実行する処理(
図13のステップS13)に関して、フローチャートを用いてより具体的に説明する。
図14は、実験プロトコルに応じて制御装置110がイベントハンドラおよび隣接行列リストを生成する処理を示すフローチャートである。
【0088】
はじめに、制御装置110は、有向グラフで作成された実験プロトコルを受信する(ステップS101)。有向グラフで作成された実験プロトコルは、サーバ装置200から制御装置110に送信される。
【0089】
次に、制御装置110は、受信した有向グラフの形式を変換する(ステップS102)。具体的には、制御装置110は、受信した有向グラフがロボットアーム121の動作ノードを含むように、有向グラフ形式を変換する。これにより、たとえば、
図6に示される有向グラフが
図7に示される有向グラフに変換される。
【0090】
次に、制御装置110は、変換後の有向グラフに基づいて、イベントハンドラおよび隣接行列リストを生成し(ステップS103、ステップS104)、本フローチャートに基づく処理を終了する。たとえば、制御装置110は、
図8に示される有向グラフに基づいて、
図9に示されるイベントハンドラおよび
図10に示される隣接行列リストを生成する。
【0091】
図15は、制御装置110がイベントハンドラおよび隣接行列リストに基づいて実験プロトコルを実行する処理を示すフローチャートである。
【0092】
はじめに、制御装置110は、変数Columnを1に設定する(ステップS111)。ここで、Columnは、
図10に示される隣接行列リストの列の番号に対応する。たとえば、ステップS111において1に設定されたColumnは、
図10に示されるスタートx列に対応する。
【0093】
次に、制御装置110は、隣接行列リストのColumnに対応する列のデータを検索する(ステップS112)。次に、制御装置110は、Columnに対応する列に「wait」が存在しないか否かを判定する(ステップS113)。制御装置110は、Columnに対応する列に「wait」が存在しない場合、ステップS118の処理に進み、Columnの値を更新する。これにより、たとえば、Columnの値は1から2に更新される。
【0094】
制御装置110は、ステップS113において、Columnに対応する列に「wait」が存在しないと判定した場合、イベントハンドラにおいて、Columnに対応するノードのステータスは「To do」か否かを判定する(ステップS114)。これにより、制御装置110は、Columnに対応するノードが処理対象であり、かつ、実行待ちであることを確認する。
【0095】
制御装置110は、ステップS114において、Columnに対応するノードのステータスが「To do」でないと判定した場合、ステップS118の処理に進む。制御装置110は、ステップS114において、Columnに対応するノードのステータスが「To do」であると判定した場合、Columnに対応するイベントハンドラのノードのステータスを「To do」から「Run」に変更する(ステップS115)。これにより、新たに処理を開始させるノードが制御装置110によって選択されたことになる。次に、制御装置110は、Columnに対応する列に存在するすべての「ready」を「passed」に変更する(ステップS116)。
【0096】
次に、制御装置110は、ノードの処理に対応する装置へ動作を指示する(ステップS117)。ステップS117の処理により、ステップS115にてステータスが「Run」に変更されたノードに対応する処理が実行される。
【0097】
ノードの処理に対応する装置には、たとえば、ロボットアーム121と、インキュベータ122と、リキッドハンドラ123と、マイクロプレートリーダ124と、遠心分離機125と、液体クロマトグラフ質量分析装置126とが含まれる。これらの装置は、制御装置110からステップS117においてノードの処理に応じた動作の指示を受ける。これらの装置は、指示に応じた動作を実行することにより、実験プロトコルに含まれる処理を実現する。これらの装置は、指示に応じた動作を完了したときに、動作の完了を示す完了信号を制御装置110へ送信する。
【0098】
ノードの処理に対応する装置には、制御装置110がさらに含まれる。制御装置110は、スタートノードおよびエンドノードの処理に加えて、「特徴量抽出」などに対応するノードの処理を実行する。制御装置110は、自身の指示に応じた動作を自ら実行することにより、実験プロトコルに含まれる処理を実現する。制御装置110は、指示に応じた動作を完了したときに、動作の完了を示す完了信号を自らに返す。
【0099】
次に、制御装置110は、Columnの値を更新する(ステップS118)。次に、制御装置110は、いずれかの装置から完了信号を受信したか否かを判定する(ステップS119)。制御装置110は、完了信号を受信しない場合、ステップS122に処理を進める。制御装置110は、完了信号を受信した場合、イベントハンドラにおいて、完了した処理に対応するノードのステータスを「Run」から「Done」に変更する(ステップS120)。
【0100】
さらに、制御装置110は、隣接行列リストにおいて、完了した処理のノードに対応する行に存在するすべての「wait」を「ready」に変更する(ステップS121)。たとえば、ノードBの処理が終了した場合、
図10に示される隣接行列リストにおいて、By行に存在する2つの「wait」が「ready」に変更される。
【0101】
次に、制御装置110は、イベントハンドラおよび隣接行列リストを表示するための表示信号を出力する(ステップS122)。ユーザは、予め表示信号の出力先を制御装置110に通知してもよい。この場合、制御装置110は、通知されている出力先へイベントハンドラおよび隣接行列リストの表示信号を出力する。たとえば、制御装置110に表示装置が接続されている場合、制御装置110は、表示装置へ表示信号を出力してもよい。これにより、表示装置にイベントハンドラおよび隣接行列リストが表示される。
【0102】
端末装置400に表示装置が接続されている場合、制御装置110は、端末装置400へ表示信号を出力してもよい。この場合、端末装置400は、表示装置の画面にイベントハンドラおよび隣接行列リストを表示する。
【0103】
ユーザは、画面で最新の状態のイベントハンドラおよび隣接行列リストを見ることができる。このため、ユーザは、自動実験の進行状況を簡単に把握できる。
【0104】
次に、制御装置110は、イベントハンドラのステータスがすべて「Done」か否かを判定する(ステップS123)。イベントハンドラのステータスがすべて「Done」でない場合、実行していないノードの処理が存在することになる。そこで、この場合、制御装置110は、ステップS112に戻り、処理を繰り返す。制御装置110は、イベントハンドラのステータスがすべて「Done」であると判定した場合、予定された実験プロトコルの処理はすべて終えたと判断し、本フローチャートに基づく処理を終える。
【0105】
制御装置110は、イベントハンドラおよび隣接行列リストを用いて、以上に説明した手順で有向グラフに基づいた実験プロトコルを実行する。このため、制御装置110によれば、有向グラフDG3(
図8参照)に含まれるような複数のノードの並列処理を適切に制御することができる。また、制御装置110によれば、有向グラフDG3に含まれるノードD,Fのように、複数のノードの処理の完了を待って開始させる必要のあるノードの処理も適切に制御することができる。その結果、制御装置110によれば、有向グラフで作成された実験プロトコルに基づいた実験効率を高めることができる。
【0106】
図16は、制御装置110の機能に関わる構成を説明するための自動実験管理システム1000の構成を示すブロック図である。フローチャートに基づいて説明した制御装置110の処理に関して、ここでは、制御装置110の機能として説明する。制御装置110は、
図16に示されるように、入力部113、生成部114、選択部115、指令部116、更新部117、出力部118、および変換部119を備える。これらの構成は、
図1に示した制御装置110のプロセッサ111およびメモリ112によって実現される。
【0107】
入力部113は、実験の処理に対応する複数のノードを含む有向グラフで設計された実験プロトコルの入力を受け付ける。生成部114は、隣接行列リストなどを生成する。選択部115は、複数のノードの中から処理を開始させるノードを隣接行列リストなどに基づいて選択する。指令部116は、選択部115により選択されたノードの処理を種々の実験装置に指令する。更新部117は、複数のノードの処理のうちのいずれかが完了した場合に、隣接行列リストなどを更新する。出力部118は、隣接行列リストなどを表示するための信号を出力する。変換部119は、入力部113に入力された実験プロトコルが、サンプルを収容する容器に対応するノードを含む第1有向グラフで設計されている場合、入力部113に入力された実験プロトコルを、容器を移動する装置の動作を含む第2有向グラフに変換する。
【0108】
図17は、サーバ装置200のハードウェア構成を示すブロック図である。
図17に示されるように、サーバ装置200は、プロセッサ201と、記憶部としてのメモリ202およびハードディスク203と、通信部としての通信インターフェース204と、入出力部205とを含む。これらは、バス210を介して相互に通信可能に接続されている。
【0109】
ハードディスク203は、不揮発性の記憶装置である。ハードディスク203には、たとえばオペレーティングシステム(OS:Operating System)のプログラム51、および自動実験管理プログラム52が保存されている。ハードディスク203には、たとえば各種アプリケーションの設定および出力が保存される。メモリ202は、揮発性の記憶装置であり、たとえばDRAM(Dynamic Random Access Memory)を含む。
【0110】
プロセッサ201は、CPU(Central Processing Unit)を含む。プロセッサ201は、ハードディスク203に保存されているプログラムをメモリ202に読み込んで実行し、サーバ装置200の各種機能を実現する。たとえば、自動実験管理プログラム52を実行するプロセッサ201は、端末装置400に実験プロトコル設計アプリケーション500を提供する。プロセッサ201は、通信インターフェース204を介してネットワークNWに接続する。
【0111】
図18は実施の形態の変形例1に係る自動実験管理システム1100の構成を示すブロック図である。自動実験管理システム1100の構成は、
図1の自動実験管理システム1000からサーバ装置200およびデータベース300が除かれ、端末装置400が400Aに置き換えられた構成である。これら以外は同様であるため、説明を繰り返さない。端末装置400Aのディスプレイ431には、実験プロトコル設計アプリケーション500Aが表示されている。
【0112】
図19は、変形例1に関わる端末装置400Aのハードウェア構成を示すブロック図である。端末装置400Aの構成は、
図2のハードディスク423に自動実験管理プログラム52Aが追加された構成である。これ以外は同様であるため説明を繰り返さない。自動実験管理プログラム52Aがプロセッサ421によって実行されることにより、実験プロトコル設計アプリケーション500Aおよび自動実験システムによる実験プロトコルの自動実行が実現される。
【0113】
実験プロトコルの設計は、自動実験システムの制御装置において行われてもよい。
図20は、変形例2に係る自動実験システム1Bの構成を示すブロック図である。自動実験システム1Bの構成は、
図1の自動実験システム1において、制御装置110が110Bに置き換えられた構成である。これ以外は同様であるため、説明を繰り返さない。
【0114】
図20に示されるように、制御装置110Bは、入出力部130と、計算機140(処理部)とを含む。入出力部130は、ディスプレイ131(表示部)と、キーボード132(入力部)と、マウス133(入力部)とを含む。ディスプレイ131、キーボード132、およびマウス133は、計算機140に接続されている。ディスプレイ131には、実験プロトコル設計アプリケーション500BのGUIが表示されている。キーボード132およびマウス133は、ユーザによる実験プロトコル設計アプリケーション500BへのGUI操作を受け付ける。すなわち、ユーザは、ディスプレイ131の表示を参照しながら、キーボード132の操作、またはマウス133の操作によって、実験プロトコル設計アプリケーション500Bへ所望のGUI操作を行う。
【0115】
図21は、制御装置110Bのハードウェア構成を示すブロック図である。
図21に示されるように、計算機140は、プロセッサ141と、記憶部としてのメモリ142およびハードディスク143と、通信インターフェース144とを含む。これらは、バス145を介して相互に通信可能に接続されている。
【0116】
ハードディスク143は、不揮発性の記憶装置である。ハードディスク143には、たとえばオペレーティングシステム(OS:Operating System)のプログラム61、および自動実験管理プログラム52Bが保存されている。
図21に示されるデータ以外にも、ハードディスク143には、たとえば各種アプリケーションの設定および出力が保存される。メモリ142は、揮発性の記憶装置であり、たとえばDRAM(Dynamic Random Access Memory)を含む。
【0117】
プロセッサ141は、CPU(Central Processing Unit)を含む。プロセッサ141は、ハードディスク143に保存されているプログラムをメモリ142に読み込んで実行する。自動実験管理プログラム52Bがプロセッサ141によって実行されることにより、実験プロトコル設計アプリケーション500Bおよび複数の実験装置120による実験プロトコルの自動実行が実現される。プロセッサ141は、通信インターフェース144を介してネットワークに接続する。
【0118】
図22は、有向グラフDG4を示す図である。本実施の形態では、端末装置400を用いて様々な形式で有向グラフを作成することができる。有向グラフDG4では、ノードが装置の名称を用いて特定されている。
【0119】
ノードLH1は、リキッドハンドラ123による第1の処理を示す。リキッドハンドラ123は、たとえば、サンプルを分配する。ノードLH2は、リキッドハンドラ123による第2の処理を示す。INCは、インキュベータ122による処理を示す。インキュベータ122は、たとえば、細胞を培養する。PRは、マイクロプレートリーダ124による処理を示す。マイクロプレートリーダ124は、たとえば、マイクロプレート内のサンプルの光学的性質を測定する。CENは、遠心分離機125による処理を示す。LCMSは、液体クロマトグラフ質量分析装置126による処理を示す。
【0120】
有向グラフDG4では、ロボットアーム121のノードが省略されている。
図23は、有向グラフDG4および有向グラフDG4に対してロボットアーム121のノードを追加した有向グラフDG5を示す図である。有向グラフDG4を、ロボットアーム121のノードを追加した有向グラフDG5に変換できるように制御装置110を構成してもよい。
【0121】
以上説明した本実施の形態および変形例1に係る方法およびシステム、ならびに実施の形態の変形例2に係る装置によれば、より高度な処理に対応可能な実験プロトコルの設計方法を提供することができる。
【0122】
本実施の形態によれば、ユーザが作成した有向グラフの形式の実験プロトコルに基づいて、制御装置110により実験が自動的に進められる。このため、本実施の形態によれば、軽量な実装でグラフ構造の実験プロトコルを自動実験システム1においてそのまま実行できるようになる。
【0123】
本実施の形態によれば、可視化されたグラフ構造の実験プロトコルのとおりに、実験に関わる装置が制御される。このため、ユーザは並行して動作する装置の動作の所要時間や動作完了のタイミング、次の動作開始のタイミングなどを考慮せずに、並列処理を含む複雑な実験プロトコルを容易に作成することができる。また、並列処理を含む実験プロトコルに基づいて実験が実行されるため、実験の効率を高めることができる。
【0124】
本実施の形態によれば、装置の動作を1つのノードとしたグラフ構造のプロトコルを用いることによって、ユーザは、自身の把握している装置の動作に対応したわかりやすいプロトコルを作成することが可能となる。たとえば、ユーザは、LCMSのオートローダー、バッチファイルロード、およびバッチ開始の動作命令を1つのLCMSのノードで表現することも可能となる。
【0125】
本実施の形態によれば、ユーザは、試料を搬送するロボットアーム121の動作を省略して実験プロトコルを作成することができる。この場合、ユーザは、ロボットアーム121の動作のノードに代えて、試料が入ったプレートに対応するノード、プレートの移動先に対応するノード、およびプレートの移動元に対応するノードを用いることができる。ユーザは、それらのノードを実験プロトコルの処理の流れに対応するようにエッジで接続することにより、より直感的に実験プロトコルを作成することができる(
図6参照)。
【0126】
本実施の形態によれば、ノードの依存関係を表す隣接行列リストを使用することにより、並列処理を含む有向グラフに基づいて実験を進めることができる。
【0127】
以下、本実施の形態に関わるさらなる変形例や特徴点に言及する。
イベントハンドラに設定できるステータスの種類を少なくしてもよい。たとえば、「To do」、「Run」、および「Done」のうち、「Run」が用いられることなく、イベントハンドラが更新されてもよい。「Run」が用いられない場合であっても、制御装置110は、「To do」および「Done」によって、対象のノードの処理を実行させる必要があるか、対象のノードの処理が実行済みであるかを判定できる。
【0128】
隣接行列リストに設定できる成分値の種類を少なくしてもよい。たとえば、「wait」、「ready」、および「passed」のうち、「ready」が用いられることなく、隣接行列リストが更新されてもよい。「ready」が用いられない場合であっても、制御装置110は、「wait」および「passed」によって、対象のノードの処理を実行させることが可能であるか否かを判定できる。
【0129】
イベントハンドラに設定できるステータスの種類を変更または追加してもよい。たとえば、実行中の処理にエラーが発生した場合、その処理に対応するノードのステータスとして、「Error」がイベントハンドラに設定されるように構成してもよい。イベントハンドラに設定された場合、制御装置110は、対応するノードの処理に関わる装置に対して、再起動の命令を送信してもよい。
【0130】
隣接行列リストにイベントハンドラの機能を設けてもよい。たとえば、隣接行列リストに、ノードの実行待ち、実行中、実行完了を示す成分値を設けてもよい。
【0131】
制御装置110は、インターネットなどの通信網を介して、イベントハンドラおよび隣接行列リストのうち、少なくとも一方を外部に出力してもよい。ユーザは、制御装置110から出力されたデータを表示装置に表示することにより、遠隔地で自動実験の進行状況を把握できる。
【0132】
有向グラフに含まれるノードには、動作対象の装置、動作対象の装置の処理、および動作条件などの情報を保持させておく。第1条件が成立したときに装置を動作させる第1命令と、第2条件が成立したときに装置を動作させる第2命令とを実験プロトコルに含ませる場合、第1命令と第2命令とに基づいて動作する装置が同じであっても、第1命令と第2命令とは別のノードとしてユーザにより作成されることが望ましい。
【0133】
ある実験プロトコルでは、試料がロボットアーム121によって様々な装置間を移動することにより、試料の作製、調整、および分析が行われる。本実施の形態によれば、このような実験プロトコルを有向グラフで作成する場合、試料をノードとして表現し、移動する装置間の関係をエッジで表現することができる。この場合、ユーザは、ロボットアーム121の動作のノードを省略して有向グラフを作成することができる。しかし、ロボットアーム121の動作をノードで表現した有向グラフを作成することに興味のあるユーザがいるかもしれない。したがって、端末装置400は、そのような有向グラフをユーザが作成できるシステム環境を提供してもよい。
【0134】
有向グラフにおいて、第1ノードと第2ノードとをエッジで接続し、第1ノードと第3ノードとをエッジで接続することにより、第2ノードと第3ノードとを並列処理する命令を表現することができる。この場合、第2ノードに対応して動作する装置と第3ノードに対応して動作する装置とは、異なる装置が設定される必要がある。したがって、ユーザが第2ノードに対して指定した装置と第3ノードに対して指定した装置とが同一の装置である場合、ユーザの指定を受け付けないように端末装置400を構成することが望ましい。
【0135】
ただし、同種の装置が複数台存在する場合、端末装置400は、そのようなユーザの指定を受け付けてもよい。また、ユーザが第2ノードに対して指定した試料と第3ノードに対して指定した試料とが同一である場合、ユーザの指定を受け付けないように端末装置400を構成することが望ましい。もちろん、第2ノードの処理と第3ノードの処理とに処理の順序が明確に定まっている場合、端末装置400はその指定を受け付けてもよい。
【0136】
複数の実験装置が実験プロトコルのメソッドを受け付ける場合、実験装置毎に独自にReady/Busy、Available/Lockedなどのステータスや、メソッドキューを管理してもよい。
【0137】
ユーザに理解し易い実験プロトコルのグラフ構造を提供するために、1つの装置の複数の動作条件の情報、および複数の装置の動作条件の情報を含む複数の命令のセットを1つのノードとして構成してもよい。
【0138】
試料がロボットアーム121によって様々な装置間を移動することにより、試料の作製、調整、および分析が行われる実験プロトコルも存在する。このような実験プロトコルの場合、ロボットアーム121の単独の動作のノードを省略し、装置の動作とロボットアーム121による試料の搬入および搬出の動作との命令をセットにした1つのノードで表現すればよい。この場合、1つのノード内の複数の命令はシーケンシャルに実行される。制御装置110は、最後の命令に対応した完了信号を装置から受信すると、ノードの処理が完了したものと判定する。
【0139】
並列処理されるノード数に対応する数のロボットアーム121が存在する場合、各々のロボットアーム121が並行して処理を進めるような実験プロトコルを設計してもよい。これにより、たとえば、各々のロボットアーム121が同時に試料を運搬するような実験プロトコルを作成することができる。
【0140】
並列するノードの数よりもロボットアーム121の数が少ない場合、ロボットアーム121の動作をノードで表現してもよい。並列するノードの数よりもロボットアーム121の数が少ない場合、ロボットアーム121の動作に対応するノードに代えて、装置のノードとしてロボットアーム121のノードを採用してもよい。
【0141】
図23に示される有向グラフDG4では、ロボットアーム121のノードが省略されている。システムにロボットアーム121が1台しか存在しない場合、ロボットアーム121以外の各装置のノードの直前に、ロボットアーム121の動作ノードを挿入してもよい。この場合、ロボットアーム121の動作ノード内に、各装置へ試料を搬入する動作または各装置から試料を搬出する動作をシーケンシャルに含めてもよい。
【0142】
複数のノードの処理を並行して実行させる場合、並行に動作させる複数のノードの直前または直後にロボットアーム121の動作のノードを挿入する。たとえば、
図23に示される有向グラフDG5では、並行に動作させるLH2ノードとINCノードとの直前にRBノードが挿入されている。また、ロボットアーム121の数に対応する数しか並列した処理を設計できないような制約を端末装置400に入れてもよい。
【0143】
[態様]
上述した例示的な実施の形態は、以下の態様の具体例であることが当業者により理解される。
【0144】
(第1項)一態様に係る制御装置は、実験プロトコルに基づいて実験装置を制御する制御装置である。制御装置は、実験の処理に対応する複数のノードを含む有向グラフで設計された実験プロトコルの入力を受け付ける入力部と、第1ノードおよび第1ノードの処理の完了によって実行可能となる第2ノードが複数のノードに含まれる場合、第2ノードの処理の開始が第1ノードの処理の完了に依存することを示す第1依存情報を含む依存関係リストを生成する生成部と、複数のノードの中から処理を開始させるノードを依存関係リストに基づいて選択する選択部と、選択部により選択されたノードの処理を実験装置に指令する指令部と、複数のノードの処理のうちのいずれかが完了した場合に、依存関係リストまたは複数のノードの状態を更新する更新部とを備え、選択部は、第1ノードの処理が完了した場合、第2ノードを選択する。
【0145】
第1項に記載の制御装置によれば、有向グラフで作成された実験プロトコルに基づいた実験効率を高めることができる。
【0146】
(第2項)第1項に記載の制御装置において、更新部は、第1ノードの処理が完了した場合、第1依存情報を第1情報から第2情報に更新し、選択部は、第1依存情報が第1情報から第2情報に更新された場合、第2ノードを選択する。
【0147】
第2項に記載の制御装置によれば、有向グラフで作成された実験プロトコルに基づいた実験効率を高めることができる。
【0148】
(第3項)第2項に記載の制御装置において、生成部は、複数のノードの各々のステータスを特定するためのステータスリストをさらに生成し、更新部は、第1ノードの処理が完了した場合、ステータスリストにおける第1ノードのステータスを実行中から完了に更新し、第2ノードの処理を開始する場合、ステータスリストにおける第2ノードのステータスを実行待ちから実行中に更新する。
【0149】
第3項に記載の制御装置によれば、ステータスリストに基づいて複数のノードの各々のステータスを特定しつつ、処理を進めることができる。
【0150】
(第4項)第3項に記載の制御装置において、複数のノードは、第1ノードの処理の完了によって実行可能となる第3ノードを含み、依存関係リストは、第3ノードの処理の開始が第1ノードの処理の完了に依存することを示す第2依存情報を含み、更新部は、第1ノードの処理が完了した場合、第1依存情報および第2依存情報を第1情報から第2情報に更新し、選択部は、第1依存情報および第2依存情報が第1情報から第2情報に更新された場合、第2ノードおよび第3ノードを選択する。
【0151】
第4項に記載の制御装置によれば、第2ノードの処理および第3ノードの処理を並列して実行することができる。
【0152】
(第5項)第4項に記載の制御装置において、複数のノードは、第2ノードおよび第3ノードの処理が完了した後に、処理を開始することが可能となる第4ノードを含み、依存関係リストは、第4ノードの処理の開始が第2ノードの処理の完了に依存することを示す第3依存情報と、第4ノードの処理の開始が第3ノードの処理の完了に依存することを示す第4依存情報とを含み、更新部は、第2ノードの処理が完了した場合、第3依存情報を第1情報から第2情報に更新し、第3ノードの処理が完了した場合、第4依存情報を第1情報から第2情報に更新し、選択部は、第3依存情報および第4依存情報が第1情報から第2情報に更新された場合、第4ノードを選択する。
【0153】
第5項に記載の制御装置によれば、並列して実行される第2ノードおよび第3ノードの処理が完了したタイミングで、第4ノードの処理を実行することができる。
【0154】
(第6項)第1項~第5項のいずれか1項に記載の制御装置において、依存関係リストを表示するための信号を出力する出力部をさらに備える。
【0155】
第6項に記載の制御装置によれば、ユーザは、表示された依存関係リストを確認することによって、実験プロトコルの進行状況を把握できる。
【0156】
(第7項)第1項~第6項のいずれか1項に記載の制御装置において、入力部に入力された実験プロトコルが、サンプルを収容する容器に対応するノードを含む第1有向グラフで設計されている場合、入力部に入力された実験プロトコルを、容器を移動する装置の動作を含む第2有向グラフに変換する変換部をさらに備え、生成部は、第2有向グラフに基づいて依存関係リストを生成する。
【0157】
第7項に記載の制御装置によれば、サンプルを収容する容器に対応するノードを用いて直感的にユーザが作成した第1有向グラフに基づいて、実験が進められる。このため、ユーザは、より一層、容易に実験プロトコルを作成することができる。
【0158】
(第8項)一態様に係る方法は、実験プロトコルに基づいて実験装置を制御する方法である。方法は、実験の処理に対応する複数のノードを含む有向グラフで設計された実験プロトコルの入力を受け付けるステップと、第1ノードおよび第1ノードの処理の完了によって実行可能となる第2ノードが複数のノードに含まれる場合、第2ノードの処理の開始が第1ノードの処理の完了に依存することを示す第1依存情報を含む依存関係リストを生成するステップと、複数のノードの中から処理を開始させるノードを依存関係リストに基づいて選択するステップと、選択部により選択されたノードの処理を実験装置に指令するステップと、複数のノードの処理のうちのいずれかが完了した場合に、依存関係リストまたは複数のノードの状態を更新するステップとを含み、処理を開始させるノードを選択するステップは、第1ノードの処理が完了した場合、第2ノードを選択する。
【0159】
第8項に記載の方法によれば、有向グラフで作成された実験プロトコルに基づいた実験効率を高めることができる。
【0160】
なお、上述した実施の形態および変更例について、明細書内で言及されていない組み合わせを含めて、不都合または矛盾が生じない範囲内で、実施の形態で説明された構成を適宜組み合わせることは出願当初から予定されている。
【0161】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて請求の範囲によって示され、請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【0162】
1,1B 自動実験システム、110,110B 制御装置、111 プロセッサ、112 メモリ、113 入力部、114 生成部、115 選択部、116 司令部、117 更新部、118 出力部、119 変換部、120 実験装置、121 ロボットアーム、122 インキュベータ、123 リキッドハンドラ、124 マイクロプレートリーダ、125 遠心分離機、130,205,430 入出力部、131,431 ディスプレイ、132,432 キーボード、133 マウス、140 計算機、141,201,421 プロセッサ、142,202,422 メモリ、143,203,423 ハードディスク、144,204,424 通信インターフェース、145,210,440 バス、200 サーバ装置、300 データベース、400,400A 端末装置、433 タッチパッド、500,500A,500B 実験プロトコル設計アプリケーション、510 キューリストウィンドウ、520 プロトコルリストウィンドウ、530 プロトコル設計ウィンドウ、531 容器領域、532 処理領域、533 データ領域、540 自動実験システムウィンドウ、550 サンプル容器ウィンドウ、560 ツールウィンドウ、570 情報ウィンドウ、600 Webブラウザ、1000,1100 自動実験管理システム、Cr 選択カーソル、NW ネットワーク、Plt1,Plt2 プレート、p1 実験プロトコル。