PubChem rest

PubMedやCHEMBLはRESTFULサービスを提供しています。
その前は多分SOAPサービスでした。
Pubmedで検索かければいいと言われそうだけど、何か面白いことできないかと
思っておりましたら、ちょっと惹かれるものを発見。
PubChemPy
早速使ってみましょう
例に従っていきます

In [23]: from pubchempy import *
In [24]: cs = get_compounds( "crizotinib" , "name" )
[Compound(11626560)]

csはリストオブジェクトなので
要素を取り出して

In [26]: cs[0].isomeric_smiles
Out[26]: u'C[C@H](C1=C(C=CC(=C1Cl)F)Cl)OC2=C(N=CC(=C2)C3=CN(N=C3)C4CCNCC4)N'
In [32]: cs[0].iupac_name          
Out[32]: u'3-[(1R)-1-(2,6-dichloro-3-fluorophenyl)ethoxy]-5-(1-piperidin-4-ylpyrazol-4-yl)pyridin-2-amine'

とかできます。

In [34]: ccs3d=get_compounds('crizotinib, 'name', record_type='3d')
In [35]: cs3d[0].mmff94_energy_3d
Out[35]: 82.3737

と3次元のクエリにすればエネルギーもとって来れます。この辺はPubChem3dに詳しく記載があったはず。
aidからアッセイ情報を取得する場合はget_assayでとれるので

In [37]: assays=get_assays(617229)
In [38]: assays
Out[38]: [<pubchempy.Assay at 0x102d15410>]

とリスト型をうけて

In [64]: assays[0].record["assay"]

にてアッセイ情報をとりにいけます。
アッセイ情報にターゲットクラスも入っているのでヨサゲ。
データ自体はSWISSPROTからきているのかな

u’Db Source: SWISS-PROT’,
u’Db Version: 2012_01′,
u’Multi: No’,
u’Complex: No’,
u’Relationship Type: Direct protein target assigned’,
u’Target Class L1: Enzyme’,
u’Target Class L2: Kinase’,
u’Target Class L3: Protein Kinase’,
u’Target Class L4: Tyr’,
u’Target Class L5: Tk’,
u’Target Class L6: Met’,
u’Target Classification: enzyme kinase protein kinase tyr tk met’],

もう少しちゃんと理解して活用してみようと思った。

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s