ギーク
分子料理法に生命科学ロボット「OpenTrons」がチャレンジ! 第3回:OpenTrons操作編(プログラミング導入編)
unai
皆さんこんにちは。今回はOpenTronsの最大の強みである『プログラムによる自動化』を行おうと思います。それでは早速、自動化のために必要な手順を前回同様一から説明しようと思います。
OpenTronsの自動化を行おう
ソースコードを準備しよう
まずはじめに自動化のためのソースコードを準備します。OpenTronsではPythonによるソースコードが読み込まれます。そのため「.py」ファイル拡張子で保存されているソースコードが必要になります。(下画像より弊社使用ソースコード一例参照)自動化のためのソースコードはOpenTronsの「Protocol Library」からのダウンロード、または自分で作成したものが使用できます。独自でソースコードを作成する際はOpenTrons公式サポートページがあるので参考にすると良いと思います。弊社で使用したサンプルコードについては次回の記事で記載させていただこうと思います。
ソースコードを導入しよう
次に前回少し出てきた青色の枠内(下画像参照)に関連するお話をさせていただこうと思います。この部分では自動化のためのソースコードをOpenTronsの操作に導入することができます。詳しく説明していきます。(赤色の枠内については前回の記事をご覧ください)
まず青色の枠の中の点線内に書いてある「Click to Upload」をクリックします。するとファイル選択画面となるのでそこから先ほど用意したソースコードを開きます。すると下画像の赤枠内のような表示がでてきます。上に表示されている緑色の『Successfully uploaded caviar copy short.py』は「caviar copy short.py」のファイルがアップロードできたという内容のため、このメッセージが出れば大丈夫です。ちなみにプログラミング自体などに問題がありアップロードできない場合赤色で表記されます。その場合は再度ソースコードのエラー確認などを行なってください。
下に表示された部分はプログラムによる自動化のための設定に関わる部分です。詳しく説明致します。
自動化のための設定を行おう
下の表示画面について弊社が使用したサンプルコードを元に説明を行います。左側の「[A]Pipette Multi」の下に文字が並んでいると思います。その中で[B3]や[C1]などの座標を表すものが書かれているところはいわゆる「場所を示す操作」でありピペットのチップをとる場所やピペッティングを行う場所をあらわす操作を設定します。一番下の[A]の部分は「ピペットの操作」で滴下やピペットのチップの取り外しなどを行う操作の設定を行います。クリックするとそれぞれ右の余白に図などが出てきます。ここでの設定を行わないとOpenTronsの自動化を行うことができません。出てくる右側の画面も合わせて下で詳しく説明します。
※このブログ内では文字の左側にチェックがついていますが初めはついていません。
「場所を示す操作」
この部分は以下の3つに分けられています。
- ピペットチップの取り外しを行うところ
- 溶液の抽出を行うところ
- 溶液の滴下を行うところ
1、ピペットチップの取り外しを行うところ
「tiprack」と書かれているこの部分はチップの取り外しを行うところです。ここでは[B3]にチップがあると仮定されています。この画面を使って右側の部分にあるボタンについて説明します。
「SAVE」
移動する位置を記憶させるボタンです。初めに手動で操作して記憶させたい位置でこのSAVEボタンを押すとプログラミングによる自動化時にその地点へ移動します。ここでは[B3]のチップを引き上げることができる地点で記憶させます。(下写真参照)
※SAVEを行うと左にチェックマークがつきます。
「MOVE TO」
SAVEした位置へ移動するボタンです。
「PICK UP TIP」
SAVEした位置にあるチップを取るボタンです。
「DROP TIP」
SAVEした位置にチップを戻すボタンです。
2、溶液の抽出を行うところ
「trough」と書かれているこの部分は溶液の抽出を行うところです。ここでは[D3]に溶液の入った容器を置き抽出を行います。
※「SAVE」、「MOVE TO」については1と同じのため以下省略致します。
3、溶液の滴下を行うところ
「96-PCR」と書かれているこの部分は溶液の滴下を行うところです。ここでは[C1]、[B1]、[D1]に滴下する容器を置きそこで滴下を行います。
「ピペットの操作」
この部分ではピペットの操作の設定を行うことができます。操作に関連する部分の設定が細かく分かれています。それぞれ右側に出てくる図の位置でセーブしていきます。上から順番に補足的に説明していこうと思います。
「TOP」ピペッティングなどに直接の影響はありません。操作の初期位置のように考えていただいて大丈夫です。
「BOTTOM」
この位置で何かができるというよりは動作の過程で必要となる部分です。抽出時などに関わります。
「BLOW OUT」
溶液の滴下を行います。チップをつけながらチップが外れない箇所で保存すると良いと思います。
「DROP TIP」
チップを取り外します。一番下に下げたところでの保存で大丈夫です。
「SET MAX VOL」
この値を少なくすればするほどその値に応じてピペッティングの回数が増えました(下グラフ参照)。一度のピペッティング量が変わらないため、総合的にピペッティングされる液体の量が増えることになります。この部分ではなぜ数値を減らすとピペッティングの回数が増えるのか、SAVE値と移動回数の関係は具体的に何かということは今の所不明瞭なため、もしご存知の方がいらっしゃれば教えていただけると嬉しいです(弊社のコードによる可能性が高いかもしれません)。ちなみに400などの値も試してみたところピペッティングの回数は変わらず抽出の量が少なくなりましたが、エラーやチップの取り外しがうまくいかない可能性が高くなったためオススメはしません。
※ここから下は普通に操作する上であまり触る必要がない場所です。もし必要な場合は参考にしてみてください。
「PICK UP TIP」「DROP TIP」
上で説明したPICK UP TIP、DROP TIP同様チップの取り外しを行います。
「ASPIRATE」
液体の抽出を行います。ボタンを押した位置に液体があることを前提として抽出を行います。
「DISPENSE」
液体の滴下を行います。その場で一気に滴下を行います。
OpenTronsの自動化による操作をしよう
先程までの工程でOpenTronsを自動化するための設定は終わりました。これでついにOpenTronsの自動化を行うことができるようになります!
下画像の「Run Job」をクリックします。
すると下画像のように聞かれます。これは自動化を行う前に初期位置にロボットを移動させるかを聞いています。「OK」を押すと初期位置に移動してからプログラミング された動作を行い、「Cancel」を押すとその場からプログラミング された最初の位置に直接移動を行い自動化を始めます。
自動化が始まると下のような画面になります。赤枠内について上と下に分けて説明を行います。
上の部分はプログラミングの制御を行うことができます。右側のボタンについて説明します。
・「Cancel Job」
→プログラミングを止めます。今行なっている処理が終わり次の処理に移る段階で停止します。
・「||(一時停止マーク)」
→プログラミングを一時停止します。Cancel Jobと違いまだプログラミングの処理をやめているわけではないのでもう一度押す(その際は▶️再生マークに変わっています)と続きからプログラミングを再開します。
また、この部分ではプログラミングの現在の進行度の確認を行うこともできます(上画像内のProgress:17%より)。
下の部分では今行われているプログラミングの動作の確認などを行うことができます。時間、動作の内容、場所などを一目で見ることができます。この画面は実際の動きとリンクしているため動作が進むごとに追加されていきます。
自動化を終える
自動化が止まるパターンは3種類あります。
- プログラミングの全ての工程が終了する
- 自主的にプログラミングを止める
- エラーが起きる
1はプログラミングやロボットの距離感などに問題がなく、そのまま自然と停止した場合を指します。その場合下画像の緑四角内のメッセージが出てプログラミングがどのくらいの時間で終わったのか表示されます。
2は上で説明した「Cancel Job」を押した際に行われます。下画像のようにプログラミングが止まったことと止められたときまでの時間が表記されます。
3は動作時にエラーが起こった際に強制的に止まることを指します。その場合赤いメッセージ枠が出てきます。ロボットの位置記憶にズレが生じた際、プログラミングにより指定した場所まで物理的にいけないなどの理由で起こることが多いです。起動時、プログラミング作動時などの境目で初期位置に戻すことにより対策ができる場合があります。