一个独立的模块,帮助从各种化学信息软件生成分子描述符
chemdescriptor的Python项目详细描述
化学描述符-分子描述符生成器
通用分子描述符生成器包装各种软件包,以简化获取描述符的过程
安装
类型:
pip install chemdescriptor
要求
- 熊猫
- Chemaxon CxCalc的工作副本
用法
目前只支持Chemaxon CXCalc。该模块还可以扩展以覆盖其他发电机。 示例输入文件可以在这个repo的examples/文件夹以及pip安装包中找到。
重要!代码要求设置环境变量cxcalc_path,它指向安装cxcalc的文件夹!
命令行
chemdescriptor-cx -m /path/to/SMILES/file -d /path/to/descriptor/whitelist/json -p 6.8 7.0 7.2 -o output.csv
usage: chemdescriptor-cx [-h] -m MOLECULE -d DESCRIPTORS -p PH [PH ...]
[-c COMMANDS] [-pc PHCOMMANDS] -o OUTPUT
optional arguments:
-h, --help show this help message and exit
-m MOLECULE, --molecule MOLECULE
Path to input SMILES file
-d DESCRIPTORS, --descriptors DESCRIPTORS
Path to descriptor white list json file
-p PH [PH ...], --pH PH [PH ...]
List of pH values at which to calculate descriptors
-c COMMANDS, --commands COMMANDS
Optional command stems for descriptors in json format
-pc PHCOMMANDS, --phcommands PHCOMMANDS
Optional command stems for pH dependent descriptorsin
json format
-o OUTPUT, --output OUTPUT
Path to output file
代码
设置cxcalc_路径
import os
os.environ['CXCALC_PATH'] = '/path/to/cxcalc'
导入生成器类
from chemdescriptor import ChemAxonDescriptorGenerator
实例化生成器
cag = ChemAxonDescriptorGenerator('/path/to/SMILES/file',
'/path/to/descriptor/whitelist/json',
ph_values=[6, 7, 8],
command_stems=None,
ph_command_stems=None)
生成csv输出
cag.generate('output.csv', dataframe=False, lec=False)
generate
的可选关键字参数包括dataframe
布尔值(默认为false),该值除了在true时写入csv外,还返回pandas数据帧。
以及lec
布尔(默认值为false),在生成描述符之前,将smiles代码转换为中间的“低能量一致(lec)”表示。
生成LEC很可能需要许可证。
注:
输入smiles文件的每一行都有一个smiles代码。
描述符白名单是一个json文件,格式如下:
{
"descriptors": [
"refractivity",
"maximalprojectionarea",
"maximalprojectionradius",
"maximalprojectionsize",
"minimalprojectionarea",
"minimalprojectionradius",
"minimalprojectionsize"
],
"ph_descriptors": [
"avgpol",
"molpol",
"vanderwaals",
"asa",
"asa+",
"asa-",
"asa_hydrophobic",
"asa_polar",
"hbda_acc",
"hbda_don",
"polar_surface_area"
]
}
chemdescriptor需要两个键,其中“描述符”是通用的,“ph_描述符”是依赖于ph的描述符
2个可选字典可以传递给chemaxondescriptorgenerator、“command_stems”和“ph_command_stems”。 这些词典将上述描述符“翻译”成chemaxon cxcalc可以理解的命令。
例如,如果没有值传递给ph_command_stems,则使用以下字典:
_default_ph_command_stems = {
'avgpol': 'avgpol',
'molpol': 'molpol',
'vanderwaals': 'vdwsa',
'asa': ['molecularsurfacearea', '-t', 'ASA'],
'asa+': ['molecularsurfacearea', '-t', 'ASA+'],
'asa-': ['molecularsurfacearea', '-t', 'ASA-'],
'asa_hydrophobic': ['molecularsurfacearea', '-t', 'ASA_H'],
'asa_polar': ['molecularsurfacearea', '-t', 'ASA_P'],
'hbda_acc': 'acceptorcount',
'hbda_don': 'donorcount',
'polar_surface_area': 'polarsurfacearea',
}
请注意,包含多个单词的命令是列表中的条目。例如,命令
molecularsurfacearea -t ASA
在字典中表示为['molecularsurfacearea', '-t', 'ASA']
待办事项
[]在不同机器上测试
[]获得关于需要更改/改进的内容的反馈
[]扩展以涵盖其他描述符生成器