PubChemPy的使用

PubChemPy提供了一种在Python中与PubChem进行交互的方法。它允许通过名称、子结构和相似性进行化学搜索、化学标准化、化学文件格式之间的转换、化学特性的描述和检索。

PubChemPy安装

pip install pubchempy

PubChemPy的使用

下面是具体的使用示例:

导入
>>> import pubchempy as pcp
>>> c = pcp.Compound.from_cid(5090)
>>> print c.molecular_formula
C17H14O4S
>>> print c.molecular_weight
314.35566
>>> print c.isomeric_smiles
CS(=O)(=O)C1=CC=C(C=C1)C2=C(C(=O)OC2)C3=CC=CC=C3
>>> print c.xlogp
2.3
>>> print c.iupac_name
3-(4-methylsulfonylphenyl)-4-phenyl-2H-furan-5-one
>>> print c.synonyms
[u'rofecoxib', u'Vioxx', u'Ceoxx', u'162011-90-7', u'MK 966', ... ]

也可以通过名称导入特定的函数和类并直接使用它们:

from pubchempy import Compound, get_compounds
c = Compound.from_cid(1423)
cs = get_compounds('Aspirin', 'name')

get_compounds()

如果不知道化合物的CID,则使用get_compounds()

>>> results = pcp.get_compounds('Glucose', 'name')
>>> print results
[Compound(79025), Compound(5793), Compound(64689), Compound(206)]

第一个参数是标识符,第二个参数是标识符类型,必须是name、smiles、sdf、inchi、inchikey、formula中的一个。在Pub Chem数据库中,有4个化合物的名称为Glucose。

>>> pcp.get_compounds('C1=CC2=C(C3=C(C=CC=N3)C=C2)N=C1', 'smiles')
[Compound(1318)]
2D and 3D

默认情况下,化合物以2D返回。否则要使用record _ type关键字参数指定:

pcp.get_compounds('Aspirin', 'name', record_type='3d')

get_substances()

>>> results = pcp.get_substances('Coumarin 343', 'name')
>>> print results
[Substance(24864499), Substance(85084977), Substance(126686397), Substance(143491255), Substance(152243230), Substance(162092514), Substance(162189467), Substance(186021999), Substance(206257050)]

也可以从SID查询:

>>> substance = pcp.Substance.from_sid(223766453)
>>> print substance.synonyms
['2-(Acetyloxy)-benzoic acid', '2-(acetyloxy)benzoic acid', '2-acetoxy benzoic acid', '2-acetoxy-benzoic acid', '2-acetoxybenzoic acid', '2-acetyloxybenzoic acid', 'BSYNRYMUTXBXSQ-UHFFFAOYSA-N', 'acetoxybenzoic acid', 'acetyl salicylic acid', 'acetyl-salicylic acid', 'acetylsalicylic acid', 'aspirin', 'o-acetoxybenzoic acid']
>>> print substance.source_id
BSYNRYMUTXBXSQ-UHFFFAOYSA-N
>>> print substance.standardized_cid
2244
>>> print substance.standardized_compound
Compound(2244)

get_properties

get _ properties函数允许检索特定的属性,而不必处理整个复合记录。这对于一次性检索大量化合物的性质尤其有用:

p = pcp.get_properties('IsomericSMILES', 'CC', 'smiles', searchtype='superstructure')

多个属性可以在列表中指定,也可以在逗号分隔的字符串中指定。可用的属性有:

MolecularFormula、MolecularWeight、CanonicalSMILES、IsomericSMILES、InChI、InChIKey、IUPACName、XLogP、ExactMass、MonoisotopicMass、TPSA、Complexity、Charge、HBondDonorCount、HBondAcceptorCount、RotatableBondCount、HeavyAtomCount、IsotopeAtomCount、AtomStereoCount、DefinedAtomStereoCount、UnfinedAtomStereoCount、BondStereoCount、DefinedBondStereoCount、UnfinedBondStereoCount、CopriceUnitCount、Volume3D、XStericQuadrupoleCount3Dor、YSterQuadpoleCount3。

get_synonyms

得到synonyms list:

pcp.get_synonyms('Aspirin', 'name')
pcp.get_synonyms('Aspirin', 'name', 'substance')

返回DataFram

df1 = pcp.get_compounds('C20H41Br', 'formula', as_dataframe=True)
df2 = pcp.get_substances([1, 2, 3, 4], as_dataframe=True)
df3 = pcp.get_properties(['isomeric_smiles', 'xlogp', 'rotatable_bond_count'], 'C20H41Br', 'formula', as_dataframe=True)

可选地指定所需的列:

cs = pcp.get_compounds('C20H41Br', 'formula')
df4 = pcp.compounds_to_frame(cs, properties=['isomeric_smiles', 'xlogp', 'rotatable_bond_count'])

Download

下载功能是为了将文件保存到磁盘。可提供以下格式:XML、ASNT / B、JSON、SDF、CSV、PNG、TXT。注意并非所有的格式都适用于所有类型的信息。SDF和PNG仅适用于完整的Compound和Substance记录,而CSV最适用于属性和标识符表。

pcp.download('PNG', 'asp.png', 'Aspirin', 'name')
pcp.download('CSV', 's.csv', [1,2,3], operation='property/CanonicalSMILES,IsomericSMILES')

官方文件:PubChemPy documentation

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值