Subio PlatformとPythonを連携する(ChatGPTでコード生成し、Jupyterで実行する)

Subio Platform working with ChatGPT and Jupyter.

Subio Platformは、タブ区切りテキスト形式のファイルをインポート/エクスポートできます。 これにより、Subio Platformやプラグインにない機能を補完するために、 他のツールと連携して作業できます。 Rスクリプトをコーディングできるなら問題ありません。 Subio Platformのインターフェースとデータ管理機能と、Bioconductorの統計解析機能を組み合わせて使えます

一方で、コーディングができない場合でも、 最近の生成AIの発達により、 ChatGPTにPythonコードを生成させ、 Jupyterでそれを実行することが可能になりました。 この動画では、その方法を示しています。

ChatGPTにコードを書かせるコツは、 仕様とアルゴリズムを不足なく、明確に説明することです。 ChatGPTがデータファイルのアップロードを求める場合がありますが、 そのようなときは、代わりにPythonコードを生成するようリクエストしてください。

Jupyterはシンプルなユーザーインターフェースを備え、 開発環境を構築せずにPythonコードを実行できます。 生成されたテキストファイルをダウンロードし、 Subio Platformにインポートして解析に利用することができます。

この動画で行う処理の概要

この動画では、Subio Platformだけでは直接行いにくいサンプルのグループ分けを、 ChatGPTで作成したスクリプトを使って行う簡単な例を紹介します。

ここでは、base genestarget genes という 2つの遺伝子リストを使用します。 各サンプルについて、まず base genes の発現量の中央値を計算します。 次に、target genes に含まれる遺伝子のうち、 その中央値を上回る発現量を示す遺伝子がいくつあるかをカウントします。

このカウント値をもとに、各サンプルを簡単なルールで分類します。 そして、その分類結果をSubio Platformの実験パラメータとしてインポートすることで、 サンプルに新しいラベルを付けることができます。

このように、RやPythonなどの外部スクリプトは、 高度な統計解析だけでなく、 簡単な判定ルールに基づくサンプル分類やデータ加工にも利用できます。 作成した結果をSubio Platformに戻すことで、 その後のPCA、クラスタリング、ヒートマップ、グループ間比較などに活用できます。

重要なのは、最初から大きな解析パイプラインを作る必要はないということです。 Subio Platformでデータを見ながら、 必要な処理だけを小さなスクリプトとして追加することで、 解析の自由度を高めることができます。