aiを使ったデータ解析入門2025

AIを使ったデータ解析入門

ウェブブラウザで利用可能なChatGPT等のチャットボットは皆さん使ったことがあると思います(ありますよね?)。より自動化されるように外部プログラムを自由に使う権限を持たせたエージェントというプログラムがここ半年ほどで急速に進化してきて、8月に発表されたChatGPT5と組み合わせたCodex CLIという自動コマンドライン操作プログラムはもはや新人のプログラマーを駆逐しています(アメリカではすでにプログラマーの求人が2割ほど減っているとか)。 ここではChatGPTを研究で使う例を紹介しつつ、新人プログラマー以上の能力を持つCodex CLIを使ってデータ解析を行う方法を紹介したいと思います。

2024年度は大学で契約しているMicrosoft Copilot Educationと有料版のChatGPT Plusはそんなに違いがなかったけど、最近は明らかにChatGPTのほうが深く考えて(計算リソースをたくさん使ってくれて)、回答の精度が高い印象。無料版のChatGPTは計算リソースをほとんど使えないので、有料版のChatGPT Plusを使いましょう。

普段使う分には特に変更は必要ないけど、網羅的に最新情報を調べたい場合、例えば実験計画を考えているときにこういう条件で先行研究はあるかな?とかを調べたいときはDeep Researchが有効(具体例:「環境DNAで高等動物を網羅的に検出可能なプライマーは?」、「免疫染色してシングルセル化は可能か?回答例(←細胞を分けてから染色するんだよときちんと回答してくれているように見える。通常モードではこの聞き方では知りたいプロトコールは出てこないと思う。)」など)。ただし、複数個所から同時に同じアカウントにログインしているときなどはDeep Researchボタンを押してもDeep Researchをしてくれないみたい。Deep Researchの上限は1か月で25回まで。

自立実行型のAIで、うまく指示を出してあげると自動でほとんどやってくれます。適切に指示を出してあげたら、人類以上の速度で解析プログラムを作ってくれたり、面倒な解析環境のセットアップを自動でしてくれるので、私自身は今は何か新しく解析しようと思ったらまずはCodex CLIに投げています。ただし、何人かに使ってもらった様子を見ているとうまくいくケースといかないケースがあったので、書いてみると

上手くいくケース:指示を出す人が作業内容を具体的にイメージできているとき。少なくとも最初のほうは自分でやってみようとしてコマンド、ライブラリーを勉強していた場合。

上手くいかないケース:指示を出す人が部分的にでも手動で結果を計算することが出来ていない状態。必要なファイルや具体的な処理フローが一切わかっていない場合。

まだ現時点ではAIは新人データサイエンティスト程度だと思って、色々と教えてあげるものだと思ったほうが良いでしょう。(来年はもう違うかもしれませんが…)

codexを使う基本的な流れは、まず研究室のサーバに接続して、適当なフォルダーを作ってその中に必要なシーケンスデータなど解析に必要なプライベートなファイルを入れておきます。そして、

cocdex --dangerously-bypass-approvals-and-sandbox --search

と入力してcodexを起動し、例えば

「このフォルダーにあるFASTQファイルはアコヤガイを使った実験1時間後と12時間後のRNA-seqのデータです。これらのファイルを解析して」

などと入力すると、codexは起動したフォルダー以下のファイルを丁寧に調べて解析してくれます。

その際の注意事項というか、行ったほうが良いこととして、解析が完了して結果ファイルが出力されても、解析の手順は出力されないことが多いです。ですので、「これまでに行った解析手順を入力ファイルを変更しても実行できるようにスクリプトとして保存して」などと指示を出して、解析手順を保存させましょう。その際、別のターミナルを開いて、そのスクリプトで本当に再現できるのかをまずは確認しておきましょう。

codexに解析してもらった際の悩みどころとしては、結果自体は嘘か本当かわからないけど出てくるので、それが正しいのか検証しないといけないことです。他人の書いたスクリプトを読んで理解するのはどんな人でも時間のかかる作業なので、AIがたくさん書いてくるスクリプトを人類が読んで検証するのは現実的ではありません。(もちろん大事そうなところを読んで理解しようとしたりはしますが、せいぜい使っているツール名やライブラリー名を見る程度です。) そこで、現実的にはどうやって確認するかですが、おそらくAIに楽に任せられるほうから紹介すると、

  • 1.正解がわかっているデータを既知の解析フローで処理させて、正解と同じ結果が得られるかどうかを見る。正解と違う場合は正解を教えて解析フローのバグを直すように伝えると、ほとんどの場合完全自動で解析フローを再現してくれます。(論文のデータを使って解析フローを作ってから、自分のデータを処理する場合など。なるべく具体的な解析フローや生の結果が出ている論文を選ぶのが良い。つまり、パイプラインを作ったというような論文をChatGPTで検索して、そのパイプラインを実行できるようにセットアップしてと頼む感じ。)
  • 2.そもそも解析フローを新規に作る必要があって本番データの正解がわからない場合は、まずは小さなデータで良いので、想定される全パターンを網羅した正しいテスト結果を手作業などで作成しておいてから、codexにそのデータを使って解析するように指示する。(プログラミングにおける、いわゆるテスターのお仕事ですね。お仕事としては嫌がる人が多かったのですが、今後はテスターが一番大事なのかなと思う今日この頃。)
  • 3.codex自身に正しい結果なのかをわかりやすく示すためのサマリーや図を作らせる。この方法は結果が正しいかどうかを人間が判断してフィードバックする必要があるので、人間側の対応コストが高い。解析フローの具体的なイメージがほとんどない状態で始めた解析はこのパターンになりがち。指示が的確で、解析フローをわかりやすくcodexに伝えることが出来る技量があればこの方法でも問題はない。ただ、AIに的確に指示を出すというのはなかなか難しく、最低限使用するツールやデータベースは指定するほうが無難。つまり自分で手動で解析できる程度の知識は必要ともいえる。
  • 4.codexが出してくる結果(の一部)を人間が手作業(といってもawkなど)で検証したり、スクリプトの中身を読んで非常に良い指示を追加する。AIが賢くなるほど、人間が検証するよりはAIに任せたほうが間違いないような気はするけど、現状ではAIに指示を変えて5回ほど修正を命じても、結果が修正されなくなる時があり、その時はこうした対応が必須。AIへの伝え方が悪いと言われたらそうかもしれない。

その他、codexが解析に行き詰ってきたら、思考モードをmediumからhighに変更する(プロンプトで/modelと入力してから選択)と乗り越えられることがあるかもしれません。

「1.メタゲノム解析(アンプリコン)」は学生実験で毎年行っている題材で、解析フローも単純なので、具体的に何をしないといけないかイメージできるのではないかと思います。それをやってみて、あとは2~4の中で自身の研究に近いテーマを解析してみてください。

このフォルダにあるfqファイルはバクテリアの16S rRNAアンプリコンシーケンスデータです。ナノポアでシーケンスしています。これらをSILVAのメタゲノムデータベースを使って解析してください。

30分くらいで

今回の解析を再現するためにスクリプトを実行する手順を教えてください

https://github.com/borenstein-lab/MetaLAFFAを使用して、このフォルダにあるショットガンメタゲノムを解析したい。KEGGパスウェイのどこが各サンプルで充実しているのかわかるようにして。

  • aiを使ったデータ解析入門2025.1758219015.txt.gz
  • 最終更新: 2025/09/18 18:10
  • by suikou