LoginSignup
0
4

More than 3 years have passed since last update.

PhytoMine-Pythonで植物の遺伝子情報を取得してみた

Posted at

PhytozomeのデータをPythonから呼び出せる、PhytoMineというものの存在を知ったので試してみました。Phytozomeは植物の研究者には馴染み深いサイトで、様々な植物種のゲノム・遺伝子情報を調べるのに便利なサイトです。

PhytoMineはInterMineというデータウェアハウスシステムのレジストリの一つです。

InterMineは、LGPL2.1の下でライセンス供与されているオープンソースのデータウェアハウスシステムです。 InterMineは、高度なWebクエリツールによってアクセスされる生物学的データのデータベースを作成するために使用されます。 InterMineを使用して、単一のデータセットからデータベースを作成したり、複数のデータソースを統合したりできます。 いくつかの一般的な生物学的フォーマットのサポートが提供され、他のデータを追加するためのフレームワークがあります。 InterMineには、「箱から出してすぐに」機能し、簡単にカスタマイズできるユーザーフレンドリーなWebインターフェイスが含まれています。
Wikipedia "InterMine"より

InterMineはPythonを含む様々なプログラミング言語で利用することができます。詳しい情報はAPI and Client Librariesを参考に。

PythonでのPhytoMineの使い方について、InterMine-Pythonのチュートリアルを参考に試してみました。インストールはpipでやりました。

$ pip install intermine

クエリとして遺伝子機能と植物種を指定して、Pythonで遺伝子のリストを取得してみました。リストの作成はPandasで行いました。ソースコードは以下の通り。

size = 20 #取得するデータ数を指定

import pandas as pd
from intermine.webservice import Service

service = Service("https://phytozome.jgi.doe.gov/phytomine/service") #PhytoMineのURLを指定してインスタンスを作成
query = service.new_query("Gene") #遺伝子情報を取得する
query.add_constraint("briefDescription","CONTAINS","transcription factor") #遺伝子機能を指定(条件A)
query.add_constraint("name","CONTAINS","Eucgr") #ユーカリ・グランディスの遺伝子名の頭につく"Eucgr"を利用してユーカリ・グランディスを植物種として指定(条件B)
query.add_constraint("name","CONTAINS","Potri") #ポプラの遺伝子名の頭につく"Potri"を利用してポプラを植物種として指定(条件C)
query.set_logic("A & (B | C)") #ユーカリ・グランディスとポプラ、両方の遺伝子を調べるための設定(条件A かつ 条件Bまたは条件C)

dfs = [] #出力を保存するための空リストを作成
for row in query.rows(size=size):
    dfs.append(pd.DataFrame(row.values(),index=row.keys()).T) #データの取得とリストへの保存

dfs = pd.concat(dfs) #リストをデータフレームに変換
dfs.to_csv("Tree_TFs_Top20.csv")  #データフレームをcsv形式で保存
Gene.briefDescription Gene.cytoLocation Gene.description Gene.genomicOrder Gene.id Gene.length Gene.name Gene.primaryIdentifier Gene.score Gene.scoreType Gene.secondaryIdentifier Gene.symbol
0 (1 of 102) PF00319 - SRF-type transcription fa... None None None 49560540 186 Potri.010G098100 Potri.010G098100 None None PAC:26981244 None
0 (1 of 102) PF00319 - SRF-type transcription fa... None None None 303626540 186 Potri.010G098100 Potri.010G098100 None None PAC:37221527 None
0 (1 of 10) PTHR31657:SF9 - ETHYLENE-RESPONSIVE ... None None None 48348276 2263 Potri.007G090600 Potri.007G090600 None None PAC:27016559 None
0 (1 of 10) PTHR31657:SF9 - ETHYLENE-RESPONSIVE ... None None None 48359640 1853 Potri.003G139300 Potri.003G139300 None None PAC:26998891 None
0 (1 of 10) PTHR31657:SF9 - ETHYLENE-RESPONSIVE ... None None None 48837989 1051 Potri.005G168700 Potri.005G168700 None None PAC:27030760 None
0 (1 of 10) PTHR31657:SF9 - ETHYLENE-RESPONSIVE ... None None None 49691741 1649 Potri.017G055400 Potri.017G055400 None None PAC:26983926 None
0 (1 of 10) PTHR31657:SF9 - ETHYLENE-RESPONSIVE ... None None None 50099858 2177 Potri.005G077300 Potri.005G077300 None None PAC:27029242 None
0 (1 of 10) PTHR31657:SF9 - ETHYLENE-RESPONSIVE ... None None None 50216626 2401 Potri.013G135600 Potri.013G135600 None None PAC:26993814 None
0 (1 of 10) PTHR31657:SF9 - ETHYLENE-RESPONSIVE ... None None None 50231866 2179 Potri.019G102200 Potri.019G102200 None None PAC:27025339 None
0 (1 of 10) PTHR31657:SF9 - ETHYLENE-RESPONSIVE ... None None None 303511172 2177 Potri.005G077300 Potri.005G077300 None None PAC:37265642 None
0 (1 of 10) PTHR31657:SF9 - ETHYLENE-RESPONSIVE ... None None None 303527050 1051 Potri.005G168700 Potri.005G168700 None None PAC:37263387 None
0 (1 of 10) PTHR31657:SF9 - ETHYLENE-RESPONSIVE ... None None None 303695561 2263 Potri.007G090600 Potri.007G090600 None None PAC:37252859 None
0 (1 of 10) PTHR31657:SF9 - ETHYLENE-RESPONSIVE ... None None None 303799992 2401 Potri.013G135600 Potri.013G135600 None None PAC:37233326 None
0 (1 of 10) PTHR31657:SF9 - ETHYLENE-RESPONSIVE ... None None None 303940612 2179 Potri.019G102200 Potri.019G102200 None None PAC:37260937 None
0 (1 of 10) PTHR31657:SF9 - ETHYLENE-RESPONSIVE ... None None None 304098097 1649 Potri.017G055400 Potri.017G055400 None None PAC:37223899 None
0 (1 of 10) PTHR31657:SF9 - ETHYLENE-RESPONSIVE ... None None None 304255554 1853 Potri.003G139300 Potri.003G139300 None None PAC:37236557 None
0 (1 of 11) K08064 - nuclear transcription facto... None None None 49458724 4801 Potri.011G098400 Potri.011G098400 None None PAC:27000615 None
0 (1 of 11) KOG4282 - Transcription factor GT-2 ... None None None 174786351 2903 Eucgr.J01012 Eucgr.J01012 None None PAC:32033046 None
0 (1 of 11) KOG4282 - Transcription factor GT-2 ... None None None 174819386 2316 Eucgr.J02994 Eucgr.J02994 None None PAC:32035652 None
0 (1 of 11) KOG4282 - Transcription factor GT-2 ... None None None 175094637 2197 Eucgr.G03225 Eucgr.G03225 None None PAC:32071912 None

PhytoMineのQueryBuilderのページをみる限り、クエリに使えるデータタイプは遺伝子以外にも色々とあるようなので、ぼちぼち試していきたいです。

0
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
4