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

差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

両方とも前のリビジョン 前のリビジョン
次のリビジョン
前のリビジョン
aiを使ったデータ解析入門2025 [2025/09/18 16:45] suikouaiを使ったデータ解析入門2025 [2025/10/10 02:38] (現在) suikou
行 1: 行 1:
 # AIを使ったデータ解析入門 # AIを使ったデータ解析入門
  
-ウェブブラウザで利用可能なChatGPT等のチャットボットは皆さん使ったことがあると思います(ありますよね?)。より自動化されるように外部プログラムを自由に使う権限を持たせたエージェントというプログラムがここ半年ほどで急速に進化してきて、8月に発表されたChatGPT5と組み合わせたCodex CLIという自動コマンドライン操作プログラムはもはや新人のプログラマーを駆逐していますアメリカではすでにプログラマーの求人が2割ほど減っているとか+ウェブブラウザで利用可能なChatGPT等のチャットボットは皆さん使ったことがあると思います(ありますよね?)。より自動化されるように外部プログラムを自由に使う権限を持たせたエージェントというプログラムがここ半年ほどで急速に進化してきて、8月に発表されたChatGPT5と組み合わせたCodex CLIという自動コマンドライン操作プログラムはもはや新人のプログラマーを駆逐していますアメリカではすでにプログラマーの求人が2割ほど減っているとか。 
 ここではChatGPTを研究で使う例を紹介しつつ、新人プログラマー以上の能力を持つCodex CLIを使ってデータ解析を行う方法を紹介したいと思います。 ここではChatGPTを研究で使う例を紹介しつつ、新人プログラマー以上の能力を持つCodex CLIを使ってデータ解析を行う方法を紹介したいと思います。
  
行 11: 行 12:
  
 {{:pasted:20250918-141618.png}} {{:pasted:20250918-141618.png}}
 +
 +Deep Researchほどたくさんの文献を調べる必要はないけど、もっと長く考えてほしい場合(例:「論文を要約しないで元の文章の通りに日本語訳をして」とか、「ChatGPTにアップロードした表に書いてある学名(100件ほど)を和名に変換して」とか)は、Thinkingモードをあらかじめ指定しておくほうが無難かも。標準(Auto)でも自動で切り替えてくれているとは思う。
 +
 +{{:pasted:20250923-135110.png}}
 +
  
 ## Codex CLIの利用例 ## Codex CLIの利用例
  
-自立実行型のAIで、うまく指示を出してあげると自動でほとんどやってくれます。適切に指示を出してあげたら、人類以上の速度で解析プログラムを作ってくれたり、面倒な解析環境のセットアップを自動でしてくれるので、私自身は今は何か新しく解析しようと思ったらまずはCodex CLIに投げています。ただし、何人かに使ってもらった様子を見ているとうまくいくケースといかないケースがあので、書いてみると+自立実行型のAIで、うまく指示を出してあげると自動でほとんどやってくれます。適切に指示を出してあげたら、人類以上の速度で解析プログラムを作ってくれたり、面倒な解析環境のセットアップを自動でしてくれるので、私自身は今は何か新しく解析しようと思ったらまずはCodex CLIに投げています。ただし、何人かに使ってもらった様子を見ているとうまくいくケースといかないケースがありまし
  
 上手くいくケース:指示を出す人が作業内容を具体的にイメージできているとき。少なくとも最初のほうは自分でやってみようとしてコマンド、ライブラリーを勉強していた場合。 上手くいくケース:指示を出す人が作業内容を具体的にイメージできているとき。少なくとも最初のほうは自分でやってみようとしてコマンド、ライブラリーを勉強していた場合。
行 24: 行 30:
 codexを使う基本的な流れは、まず研究室のサーバに接続して、適当なフォルダーを作ってその中に必要なシーケンスデータなど解析に必要なプライベートなファイルを入れておきます。そして、 codexを使う基本的な流れは、まず研究室のサーバに接続して、適当なフォルダーを作ってその中に必要なシーケンスデータなど解析に必要なプライベートなファイルを入れておきます。そして、
 ``` ```
-cocdex --dangerously-bypass-approvals-and-sandbox --search+codex --dangerously-bypass-approvals-and-sandbox --search
 ``` ```
 と入力してcodexを起動し、例えば と入力してcodexを起動し、例えば
行 34: 行 40:
 その際の注意事項というか、行ったほうが良いこととして、解析が完了して結果ファイルが出力されても、解析の手順は出力されないことが多いです。ですので、「これまでに行った解析手順を入力ファイルを変更しても実行できるようにスクリプトとして保存して」などと指示を出して、解析手順を保存させましょう。その際、別のターミナルを開いて、そのスクリプトで本当に再現できるのかをまずは確認しておきましょう。 その際の注意事項というか、行ったほうが良いこととして、解析が完了して結果ファイルが出力されても、解析の手順は出力されないことが多いです。ですので、「これまでに行った解析手順を入力ファイルを変更しても実行できるようにスクリプトとして保存して」などと指示を出して、解析手順を保存させましょう。その際、別のターミナルを開いて、そのスクリプトで本当に再現できるのかをまずは確認しておきましょう。
  
-codexに解析してもらった際の悩みどころとしては、結果自体は嘘か本当かわからないけど出てくるので、それが正しいのか検証しないといけないことです。他人の書いたスクリプトを読んで理解するのはどんな人でも時間のかかる作業なので、AIがたくさん書いてくるスクリプトを人類が読んで検証するのは現実的ではありません。(もちろん大事そうなところを読んで理解しようとしたりはしが、せいぜい使っているツール名やライブラリー名を見る程度です。 +codexに解析してもらった際の悩みどころとしては、結果自体は嘘か本当かわからないけど出てくるので、それが正しいのか検証しないといけないことです。他人の書いたスクリプトを読んで理解するのはどんな人でも時間のかかる作業なので、AIがたくさん書いてくるスクリプトを人類が読んで検証するのは(今はまだ可能かもしれないけど)今後は現実的ではないでしょ。現時点でら一部だけ読んで修正したほうが修正が速い場合もかろうじてありましたが、まだ自立型AIへの指示の出し方を私がわかっていないだけという気もします。 
-現実的にはどうやって確認するかですが、おそらくAIに楽に任せられるほうから紹介すると、+さて、んな状況で現実的にはどうやってAIが書いたプログラムや解析方法が正しいのか確認するかですが、おそらくAIに楽に任せられるほうから紹介すると、
  
-- 1.正解わかっているデータを既知の解析フローで処理させて、正解と同じ結果が得られるかどうかを見る。正解と違う場合正解を教えて解析フローのバグを直すように伝えると、ほとんどの場合完全自動で解析フローを再現してくれます。(論文のデータを使って解析フローを作ってから、自分のデータを処理する場合など。なるべく具体的な解析フローや生の結果が出ている論文を選ぶのが良い)+- 1.正解わかっているデータを既知の解析フローで処理させて、正解と同じ結果が得られるかどうかを見る。正解と違う結果が出た場合正解を具体的に教えて解析フローのバグを直すように伝えると、ほとんどの場合完全自動で解析フローを再現してくれます。(なるべく具体的な解析フローや生の結果が出ている論文を選ぶのが良い。つまり、パイプラインを作ったというような論文をWEB版のChatGPTで検索して、そのパイプラインをセットアップして、パイプラインのテストデータで解析を実行して、と頼む感じ。
  
-- 2.そもそも解析フローを新規に作る必要がって本番データの正解がわらない場合は、まずは小さなデータで良いので、想定される全パターンを網羅した正しテスト結果を手作業などで作成しておいてから、codexにそのタを使って解析するように指示する。(ログラミングおける、わゆテスターお仕事すね。お仕事としては嫌がる人が多ですが、今後はテスターが一番大事なのかなと思う今日この頃+- 2.単一のツとりえず動かしたいとき。そのルのセットアッ&READMEてあ内容まま実行良ければ、ほぼ問題なく実行してくれる。私ここまでの1,2の使いかたが中心です。
  
-- 3.codex自身に正い結果なのかをわかりやす示すためのサマリーや図作らせの方法は結果が正しいかどうかを人間が判断してフィードバックる必要があるの人間側対応コスト。解析フロー具体的イメージがほとんどない状態で始めた解析はこのパターンりがち。指示が的確で解析フローをわかりやすcodex伝えることが出来る技量があばこの方法で問題はない。ただ、AI的確に指示を出すとはなかなか難しく、最低限使用するツールやデータベース指定するほう無難。つまで解析でき程度の知識必要もいえる。+- 3.ちょっとた解析プログラム新規に作る必要があって、完全には正解がわからない場合。なるべ誤解なくAIに伝えるために、何をしてほしいかプログラムの中身具体的に丁寧に説明すること。プログラミングをていない人には本当の意味でピンと来ないかもしれないけ、プログラムといのは書いたとおりにし動きません。例えば「塩基配列の相同性検索をして」という場合、相補鎖はどうするのACGT以外Nとか縮重塩基表記来た場合はどうしたいのか、などなど、自分が入力するデータ中にある例外パターンはすべて書いてあげいと少なとも現時点では不十分な実装ることが多いです。これも来年り考慮してくれるようなってのかもしれませんが。。。完全正解がわらなても別の解析ツールで一部解析した結果有った、部的には作業データが作れ場合、色々指示を出しつつ、そのような結果になように解析プログラムを作ってというのが手っ取り早いと思われます(1.と同じですが、とにかくテストデータを作ること!)
  
-- 4.codexが出してる結果(の一部)を人間手作業(といもawkなどで検証したり、スリプ中身んで非常に良い指示を追加する。AI賢くるほど人間が検証するよりはAI任せほう間違いなような気はするけど、現状ではAI指示を変えて5回ほ修正を命ても、結果が修正されなくなる時があり、そうした対応が必須AIへの伝いとれたらそうかもしれない。+- 4.い結果(テストデータ)がわかっおらず、ぼんやりと期待すイメージがある状態で、2個以上のツールを組み合わせて結果を出したい場合。例:こFASTQファイルを使ってRNA-seq解析をして!とか) 結構よさげな結果出してくれるけど、やはりどこかに問題あるこが多。また結果がよさげに見えるので、なおさら何が問題なのか気が付きにくい。対応としは、るべく解析を小分けにして問題ないか確認できるようにする…ことだけ、そもそも全部の解析が終わらないと気が付かないことも多い。それも、1ステップずつ検証用データを出力させて検証すべきだと思う。例えばRNA-seq解析をするなら、ステップ1:フィルタング、ステッ2:マッピング、ステップ3:発現量算出、ステップ4:統計検定、といった解析が通常行われる。ここで、こ例ならステップ1:フィルタリングで除去されたリード数割合、ステップ2:マッピングされたリード数割合、などきちと(あとから良いので)出力させる。例えば、マッピングされたリード数10%しかと判明した場合、やは何かおかしいと思って調べてみる感性が大事。codex適切聞けば教えてくれり考慮して解析してくれることいけど、「なぜマップ率が10%しかないのですか?」みたいなぼんやりした質問では正解り着けるか微妙な感。マッピングされないリードというのはいう可能性を考えているのか具体化てそれを検証させるべきば、コンタミあってマップ率が低いと思うならコンタミの調査を命令する。もっと具体的にコンタミしていそうな生物名がかるなそういう情報も与えておく。ほマップ率が低い原因とて、ゲノムの完成度が低く欠損が多、シーケンスデータとマッピングツールの組み合わせが悪い、などなど具体的に挙げてあげるとより正確に調査が進む
  
-他、codexが解析に行き詰ってきたら、思考モードをmediumからhighに変更する(プロンプトで/modelと入力してから選択)と乗り越えられることがあるかもしれません。+## Codex CLI練習問題
  
-{{:pasted:20250918-161952.png}}+「1.メタゲノム解析(アンプリコン)」は学生実験で毎年行っている題材で、解析フローも単純なので、具体的に何をしないといけないかイメージできるのではないかと思います。それをやってみて、あとは2~4の中で自身の研究に近いテーマを解析してみてください。それぞれツールのセットアップ等含めてCodex CLIが数時間以上自動実行してくれることになるでしょう。
  
-## Codex CLI練習問題+### 1. メタゲノム解析(アンプリコン)場合(実行時間:30分ほど)
  
-「1.メゲノム解析(アンプリコン)」は学生実験で毎年行っている題材で、解析フローも単純なで、具体的に何をしないといけないかイメジできるのではないかと思います。それをやってみて、あとは2~4の中で自身の研究に近いテーマを解析してみてください。+使用するデー:[[https://suikou.fs.a.u-tokyo.ac.jp/yosh_data/2019jissyu/sequence_data_16S.zip|2019年の学生実験のタ]]
  
-### 1. メタゲノム解析(アンプリコン場合+指示プロンプト)の例:「このフォルダにあるfqファイルはバクテリアの16S rRNAアンプリコンシーケンスデータです。ナノポアでシーケンスしています。これらをSILVAメタゲノムデータベースを使って解析してください。」
  
 +この例はAIにとっても簡単なようで、ある程度ナノポアに適切なツールや閾値で解析フローを組んでくれると思います。ただ、AIは指示に対して再現性があるわけではないので、皆さんがどのような結果を見ることになるのかはわかりません。。。
 +
 +{{:pasted:20250918-175606.png}}
 +
 +解析が終わると、上のような結果が出てきます。そうしたら、「今回の解析を再現するために解析手順をスクリプトにまとめて」と指示しておきましょう。
  
  
 ### 2. メタゲノム解析(ショットガン)の場合 ### 2. メタゲノム解析(ショットガン)の場合
  
 +使用するデータ:サーバにログインするとアクセスできる下記のフォルダーにあるfastq.gzファイルたち `/suikou/files/m64g/backup/rawdata/2023-04-04_Rabeb-Metagenome/JN00012444/rawdata/`
  
 +欲しい結果:ショットガンメタゲノムの解析で、KEGGのエンリッチメント解析を行い、各サンプルで有意に充実しているKEGGモジュール
 +
 +多分使うように指定すると良いメタゲノム解析パイプライン:https://github.com/borenstein-lab/MetaLAFFA
  
 ### 3. RNA-seqの場合 ### 3. RNA-seqの場合
  
 +使用するデータ:https://www.mdpi.com/2079-7737/8/2/21 (研究室OGのWaraporn Kraitavinさんの論文)
  
 + 論文の中で使用されているデータを取得して、といえば自動でデータをSRAからダウンロードしてくれるでしょう。
 +
 +欲しい結果:図2にあるようなgillとfinで有意に遺伝子発現の変化がみられるGene Ontology (GO)のリスト。RNA-seqの解析ツールはWarapornさんの論文以降も進歩してきているので、論文に書いている解析フローを再現してほしいというよりは、最近の解析フローで再解析しても同じ結果が得られるのか見てほしいという意図です。
  
 ### 4. small RNA解析の場合 ### 4. small RNA解析の場合
  
 +使用するデータ、解析フロー: https://www.frontiersin.org/journals/marine-science/articles/10.3389/fmars.2021.730556/full (研究室OBのSongqian Huangさんの論文)
 +
 + 論文の中で使用されているデータを取得して、といえば自動でデータをSRAからダウンロードしてくれるでしょう。
 +
 +欲しい結果:論文の図3のピンポンペアの検証図
 +
 +
 +
 +## Tips
 +
 +### 再開
 +
 +- Codex CLIを停止させるときCtrl-cを使うけど、間違ってCtrl-cを押して停止させてしまった場合に、前回の続きからCodex CLIとの対話を再開したい場合は、```codex --dangerously-bypass-approvals-and-sandbox --search resume```とすると、どの会話の続きを行いたいか選択肢が出てくるので、続けたい会話を選べばよい。
 +
 +{{:pasted:20250920-093236.png}}
 +
 +### より賢くする
 +
 +Codexが解析に行き詰ってきたら、思考モードをmediumからhighに変更する(プロンプトで/modelと入力してから選択)と乗り越えられることがあるかもしれません。私は回答精度が上がっているかはよくわかりませんでしたが、highが良いと言っている人と、mediumのほうで十分だと言っている人たちがいます。
 +
 +{{:pasted:20250918-161952.png}}
 +
 +### リモートデスクトップで日本語入力をする
  
 +画面右上に「あ」、「_A」といったアイコンが表示されているか確認する。表示されていないと日本語入力できないので表示されていない人は教えてください。
  
 +{{:pasted:20251010-023249.png}}
  
 +日本語入力切替はCtrl-Space, Ctrl-j, 半角/全角キーのいずれかで可能です。
  • aiを使ったデータ解析入門2025.1758213921.txt.gz
  • 最終更新: 2025/09/18 16:45
  • by suikou