細胞生物学者のためのデータ解析:特定の生命現象に関連する遺伝子リストをMouseMineから一括取得する方法
細胞死、免疫応答、特定の発生段階など、ある生命現象に興味を持ったとき、「この現象に関連する遺伝子にはどんなものがあるだろう?」と考えるのは、研究の第一歩です。一つ一つ論文を検索したり、データベースを渡り歩いたりするのは大変な作業です。
今回は、そうした手間を大幅に削減できる便利なPythonスクリプト get-genes-from-term_MouseMine.py
を紹介します。このツールを使えば、「pyroptosis」や「autophagy」といったキーワードを指定するだけで、関連するマウス遺伝子のリストを網羅的に、かつ綺麗なCSVファイルとして一瞬で手に入れることができます。
この記事では、プログラミングの知識がない方でもツールの裏側で何が起きているのかを理解できるよう、その仕組みをステップバイステップで解説します。
ステップ0:そもそもMouseMineとは?
このスクリプトの心臓部であるMouseMineについて、まずは簡単に説明します。
MouseMineは、マウスの遺伝子やゲノムに関する膨大な情報を集約した、巨大なオンラインデータベースです。例えるなら、マウス研究データのための巨大なデジタル専門図書館のようなものです。
この図書館には、MGI、Ensembl、NCBIといった世界中の様々な機関から集められたデータ(遺伝子の機能、配列、発現情報、疾患との関連、参考文献など)が、互いに関連付けられて整然と保管されています。研究者はMouseMineを利用することで、あちこちのサイトを巡ることなく、必要な情報を一箇所で効率的に探し出すことができます。
今回のスクリプトは、この便利な図書館(MouseMine)に自動で問い合わせを行い、私たちの代わりに情報を整理してくれる賢い司書のような役割を果たします。
スクリプトの仕組み:キーワードが遺伝子リストになるまで
では、あなたが pyroptosis
というキーワードをスクリプトに渡したとき、内部ではどのような処理が行われているのでしょうか。その流れを追いかけてみましょう。
ステップ1:キーワードを「専門用語」に翻訳する
まず、スクリプトはあなたが入力した「pyroptosis」という日常的なキーワードを受け取ります。しかし、データベースで遺伝子を探すためには、もっと厳密な「専門用語」が必要です。そこで使われるのがGO(Gene Ontology)タームです。
GOタームとは、遺伝子やタンパク質の機能に付けられた、世界共通の標準的な「タグ」や「ラベル」のようなものです。例えば、「パイロトーシスによる細胞死」という機能には「GO:0070269」という固有のIDが割り振られています。
スクリプトは、最初の仕事としてMouseMineにこう問いかけます。
「"pyroptosis" という単語が含まれる公式のGOタグをすべて教えてください」
すると、MouseMineは以下のようなGOタグのリストを返してくれます。
-
GO:0070269
(pyroptotic cell death) -
GO:1902643
(positive regulation of pyroptotic cell death) -
GO:1902642
(regulation of pyroptotic cell death) - など...
これで、検索の精度を上げるための専門的な「タグ」が手に入りました。
ステップ2:各「タグ」が貼られた遺伝子を収集する
次に、スクリプトはス���ップ1で手に入れたGOタグのリストを一つずつ見ていきます。そして、それぞれのタグに対して、再びMouseMineに問い合わせを行います。
「では、
GO:0070269
(pyroptotic cell death) のタグが貼られている遺伝子をすべてリストアップしてください」
「次に、GO:1902643
のタグが貼られている遺伝子を…」
これを、見つかったすべてのGOタグに対して繰り返します。ちょうど、図書館の司書が関連するすべての索引カードを引いて、そこに書かれている本(遺伝子)を一つ残らずリストアップしていくような作業です。
ステップ3:リストを統合し、重複を取り除く
さて、すべてのGOタグから遺伝子を集めると、リストには重複が含まれている可能性があります。例えば、Gsdmd(ガスダーミンD)遺伝子は、「パイロトーシス」そのものにも、「パイロトーシスの制御」にも関わるため、複数のリストに登場するかもしれません。
そこでスクリプトは、集めてきたすべての遺伝子リストを一つにまとめ、重複している遺伝子を綺麗に取り除いて、ユニークな遺伝子だけの最終リストを作成します。これによ���、関心のある現象に関連する遺伝子が、それぞれ一度だけリストに載るようになります。
ステップ4:研究で使いやすいIDに変換する
研究者の皆さんは、遺伝子IDにはMGI、Ensembl、NCBIなど、目的によって様々な種類があることをご存知でしょう。MouseMineの内部では主にMGI IDが使われていますが、ゲノムブラウザでの確認や他の解析ツールとの連携を考えると、Ensembl IDの方が便利な場面も多いはずです。
このスクリプトの親切な点は、最後にこのID変換を自動で行ってくれることです。MGI IDで得られた遺伝子リストを、Ensemblのデータベースに問い合わせて、対応するEnsembl IDに変換してくれます。手作業でやると非常に面倒なこの変換ステップを、スクリプトが肩代わりしてくれるのです。
最終出力:整理されたCSVファイルの完成
これらすべてのステップを経て、最終的にあなたの手元には、以下のような情報がまとめられたCSVファイルが出力されます。
- Ensembl Gene ID
- 遺伝子シンボル (例: Gsdmd)
- 遺伝子名
- どのGOタグに関連していたか
- など...
このファイルはExcelやスプレッドシートで開くことができ、すぐに次の解析(パスウェイ解析、発現データとの比較など)に活用できます。
スクリプトの使い方
使い方は非常にシンプルです。ターミナル(黒い画面)で、以下のようにコマンドを打ち込むだけです。
python3 get-genes-from-term_MouseMine.py -t <検索したいキーワード>
キーワードは複数指定することもできます。例えば、パイロトーシスとネクロプトーシスの両方に関連する遺伝子を一度に調べたい場合は、以下のようにします。
python3 get-genes-from-term_MouseMine.py -t pyroptosis necroptosis
実行すると、genes_pyroptosis-necroptosis_all-GO-terms_MouseMine.csv
のような名前のファイルが生成されます。
まとめ
このスクリプトは、複雑なデータベース操作を自動化し、生物学的なキーワードから網羅的な遺伝子リストを迅速に作成するための強力なツールです。手作業による検索やID変換の煩わしさから解放され、研究者は本来の目的である生命現象の解明に、より多くの時間を費やすことができるようになります。
ぜひこのツールを活用して、あなたの研究を加速させてください。
ツールの入手方法
このスクリプトは、以下のGitHubリポジトリから入手できます。
Discussion