差分
このページの2つのバージョン間の差分を表示します。
| 両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン | ||
| aiを使ったデータ解析入門2025 [2025/09/24 03:40] – suikou | aiを使ったデータ解析入門2025 [2025/10/10 02:38] (現在) – suikou | ||
|---|---|---|---|
| 行 45: | 行 45: | ||
| - 1.正解のわかっているデータを既知の解析フローで処理させて、正解と同じ結果が得られるかどうかを見る。正解と違う結果が出た場合、正解を具体的に教えて解析フローのバグを直すように伝えると、ほとんどの場合完全自動で解析フローを再現してくれます。(なるべく具体的な解析フローや生の結果が出ている論文を選ぶのが良い。つまり、パイプラインを作ったというような論文をWEB版のChatGPTで検索して、そのパイプラインをセットアップして、パイプラインのテストデータで解析を実行して、と頼む感じ。) | - 1.正解のわかっているデータを既知の解析フローで処理させて、正解と同じ結果が得られるかどうかを見る。正解と違う結果が出た場合、正解を具体的に教えて解析フローのバグを直すように伝えると、ほとんどの場合完全自動で解析フローを再現してくれます。(なるべく具体的な解析フローや生の結果が出ている論文を選ぶのが良い。つまり、パイプラインを作ったというような論文をWEB版のChatGPTで検索して、そのパイプラインをセットアップして、パイプラインのテストデータで解析を実行して、と頼む感じ。) | ||
| - | - 2.そもそも解析フローや解析プログラムを新規に作る必要があって、完全には正解がわからない場合。新規に作る場合は、なるべくシンプルに誤解なくAIに伝えられるように、何をしてほしいのかプログラムの中身を丁寧に日本語で説明すること。プログラミングをしていない人には本当の意味でピンと来ないかもしれないけど、プログラムというのは普通は書いたとおりにしか動きません。例えば塩基配列の相同性検索をして、という場合、相補鎖はどうするのか、ACGT以外のNとか縮重塩基表記が来た場合はどうしたいのか、などなど、少なくとも自分が入力するデータの中にある例外パターンはすべて書いてあげないと、少なくとも現時点では不十分な実装になることが多いです。これも来年はかなり考慮してくれるようになっているのかもしれませんが。。。完全な正解がわからなくても、別の解析ツールで一部は解析した結果が有ったり、部分的には手作業で正解データが作れる場合は、(色々と指示を出した後で)そのような結果になるように解析プログラムを作ってというのが手っ取り早いと思われます。 | + | - 2.単一のツールをとりあえず動かしたいとき。そのツールのセットアップ&READMEに書いてある内容のまま実行で良ければ、ほぼ問題なく実行してくれる。私はここまでの1,2の使いかたが中心です。 |
| - | - 3.正しい結果というのが全く分からない場合。Codex CLI自身に正しい結果なのかをわかりやすく示すためのサマリーや図を作らせる。解析フローの具体的なイメージがほとんどない状態で始めた解析はこのパターンになりがち。上の1,2の例ではAIがテスト、デバッグまで自動でやってくれる可能性があるのだけど、この方法はテスト工程(結果が正しいかどうかを人間が判断してフィードバックする)を人間が行う必要があり、人間側の対応コストが高い。ただし、とりあえず何か結果っぽいものを出してくれるので、「とりあえずこれらのFASTQファイルでRNA-seqの解析をして。生物種はゼブラフィッシュ、サンプルの対応はs1+2 vs s3+4」みたいなことを書いておけば実行してくれるので私もよく使います。私の場合は、結局大丈夫かどうかを判定できなくて、自分の知っているパイプラインで処理しなおした結果を使うことになる感じです。もしくは、Codex CLIでしか出せなかった結果が有ったらその部分だけ解析方法を調べてパイプラインに追加しています。 | + | - 3.ちょっとした解析プログラムを新規に作る必要があって、完全には正解がわからない場合。なるべく誤解なくAIに伝えるために、何をしてほしいのかプログラムの中身を具体的に丁寧に説明すること。プログラミングをしていない人には本当の意味でピンと来ないかもしれないけど、プログラムというのは書いたとおりにしか動きません。例えば「塩基配列の相同性検索をして」という場合、相補鎖はどうするのか、ACGT以外のNとか縮重塩基表記が来た場合はどうしたいのか、などなど、自分が入力するデータの中にある例外パターンはすべて書いてあげないと、少なくとも現時点では不十分な実装になることが多いです。これも来年はかなり考慮してくれるようになっているのかもしれませんが。。。完全な正解がわからなくても、別の解析ツールで一部は解析した結果が有ったり、部分的には手作業で正解データが作れる場合は、色々と指示を出しつつ、そのような結果になるように解析プログラムを作ってというのが手っ取り早いと思われます。(1.と同じですが、とにかくテストデータを作ること!) |
| + | |||
| + | - 4.正しい結果(テストデータ)がわかっておらず、ぼんやりと期待するイメージがある状態で、2個以上のツールを組み合わせて結果を出したい場合。(例:このFASTQファイルを使ってRNA-seq解析をして!とか) 結構よさげな結果を出してくれるけど、やはりどこかに問題があることが多い。また結果がよさげに見えるので、なおさら何が問題なのか気が付きにくい。対応としては、なるべく解析を小分けにして問題ないか確認できるようにする…ことだけど、そもそも全部の解析が終わらないと気が付かないことも多い。それでも、1ステップずつ検証用データを出力させて検証すべきだと思う。例えばRNA-seq解析をするなら、ステップ1:フィルタリング、ステップ2:マッピング、ステップ3:発現量算出、ステップ4:統計検定、といった解析が通常行われる。ここで、この例ならステップ1:フィルタリングで除去されたリード数割合、ステップ2:マッピングされたリード数割合、などをきちんと(あとからでも良いので)出力させる。例えば、マッピングされたリード数が10%しかない、と判明した場合、やはり何かおかしいと思って調べてみる感性が大事。codexは適切に聞けば教えてくれたり考慮して解析してくれることが多いけど、「なぜマップ率が10%しかないのですか?」みたいなぼんやりした質問では正解にたどり着けるか微妙な感じ。マッピングされないリードというのはどういう可能性を考えているのか具体化してそれを検証させるべき。例えば、コンタミがあってマップ率が低いと思うならコンタミの調査を命令する。もっと具体的にコンタミしていそうな生物名がわかるならばそういう情報も与えておく。ほかにもマップ率が低い原因として、ゲノムの完成度が低く欠損が多い、シーケンスデータとマッピングツールの組み合わせが悪い、などなど具体的に挙げてあげるとより正確に調査が進む。 | ||
| ## Codex CLIの練習問題 | ## Codex CLIの練習問題 | ||
| 行 59: | 行 61: | ||
| 指示(プロンプト)の例:「このフォルダにあるfqファイルはバクテリアの16S rRNAアンプリコンシーケンスデータです。ナノポアでシーケンスしています。これらをSILVAのメタゲノムデータベースを使って解析してください。」 | 指示(プロンプト)の例:「このフォルダにあるfqファイルはバクテリアの16S rRNAアンプリコンシーケンスデータです。ナノポアでシーケンスしています。これらをSILVAのメタゲノムデータベースを使って解析してください。」 | ||
| - | この例はAIにとっても簡単なようで、ナノポアに適切な閾値で解析フローを組んでくれると思います。ただ、AIは指示に対して再現性があるわけではないので、皆さんがどのような結果を見ることになるのかはわかりません。。。 | + | この例はAIにとっても簡単なようで、ある程度ナノポアに適切なツールや閾値で解析フローを組んでくれると思います。ただ、AIは指示に対して再現性があるわけではないので、皆さんがどのような結果を見ることになるのかはわかりません。。。 |
| {{: | {{: | ||
| 行 102: | 行 104: | ||
| ### より賢くする | ### より賢くする | ||
| - | Codexが解析に行き詰ってきたら、思考モードをmediumからhighに変更する(プロンプトで/ | + | Codexが解析に行き詰ってきたら、思考モードをmediumからhighに変更する(プロンプトで/ |
| {{: | {{: | ||
| + | ### リモートデスクトップで日本語入力をする | ||
| + | |||
| + | 画面右上に「あ」、「_A」といったアイコンが表示されているか確認する。表示されていないと日本語入力できないので表示されていない人は教えてください。 | ||
| + | |||
| + | {{: | ||
| + | |||
| + | 日本語入力切替はCtrl-Space, | ||