化学信息学-Pybel-简介以及分子去重

简介:

pybel简单可以理解为openbabel的Python版本,了解openbabel的可以知道他的功能有多么强大,但是安装openbabel的时候,如果你不是root权限就比较尴尬了,这里介绍pybel,一个简单强大的python版本的openbabel。(就是有人将openbabel作为了python的一个包)
文献:Pybel: a Python wrapper for the OpenBabel cheminformatics toolkit
地址:https://bmcchem.biomedcentral.com/articles/10.1186/1752-153X-2-5

分子去重:

输入文件:inputfile.smi
COc1ccc(cc1)CCCOC(c1ccc(cc1)OC)Cn1ccnc1 130495-35-1
COc1ccc(cc1)CCCOC(c1ccc(cc1)OC)Cn1ccnc1 130495-35-1
COc1ccc(cc1)CCCOC(c1ccc(cc1)OC)Cn1ccnc1 130495-35-1
COc1ccc(cc1)CCCOC(c1ccc(cc1)OC)Cn1ccnc1 130495-35-1
COc1ccc(cc1)CCCOC(c1ccc(cc1)OC)Cn1ccnc1 130495-35-1
输出文件:out.smi
COc1ccc(cc1)CCCOC(c1ccc(cc1)OC)Cn1ccnc1 130495-35-1

#在处理大量的化合物数据的时候,必需重视的一个问题是化合物库的冗余,举个栗子,zinc的数据库中就存在着大量的冗余化合物,一个20000化合物的库,其中至少有1/4是冗余的,最多的可以达到3/4,如果直接用化合物库进行筛选,会耗费大量的计算时间以及资源,当然你如果是几百个的话,当我没说。
#安装
#网站介绍:[https://pypi.org/project/openbabel/](https://pypi.org/project/openbabel/)
#不要单纯的只是安装pybel,就是不要只是:pip install pybel
#最简单的安装方式
pip install openbabel
#导入包
import pybel
#创建一个列表
cansmis=[]
#创建输出文件,pybel.Outputfile("输出文件格式","输出文件名")
output = pybel.Outputfile("can","out.smi")
#读取文件
for mol in pybel.readfile("can", "inputfile.smi"):
        cansmi = mol.write("can")
#判断,这个元素是否在列表内
        if cansmi not in cansmis:
             output.write(mol)
             cansmis.append(cansmi)
output.close()


个人公众号DrugDesign:

![image](https://upload-images.jianshu.io/upload_images/16402362-50eb3248d1280706.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

你可能感兴趣的:(化学信息学-Pybel-简介以及分子去重)