rdkit读取sdf、mol2 转换图片保存、sdf转smiles;PandasTools AddMoleculeColumnToFrame增加列图像展示及SaveXlsxFromFrame保存到表格
注意: 1、AddMoleculeColumnToFrame产生的格式 molCol='ROMol’不能为空 none不然保存会报错。参考:https://www.jianshu.com/p/c0df2942d8d1。
sdf2vtk
sdf2vtk是一个python库,可让您轻松地将变量从SDF文件格式转换为VTK。
SDF(自描述文件)是EPOCH和其他代码( )使用的科学数据文件格式。
VTK(可视化工具包)是用于图像处理,3D图形,体积渲染和可视化的开源软件系统( )
sdf2vtk需要 , 和 。 如果满足这些依赖性,则可以使用pip安装sdf2vtk:
$> cd sdf2vtk
$> pip install .
from sdf2vtk import *
convertor = sdf2vtk ()
convertor . read_sdf ( "input_path/file_1.sdf" ) # sdf file with field data
convertor . list_variables ()
convertor . create_vtk_fie
用法: node ipso2odm [file-name(s)]
仅给出单个文件名时,将生成的SDF打印到屏幕(stdout)。
给定多个文件名时,每次转换的输出将保存到odmobject-object_name-sdf.json文件,其中object_name是每个架构文件中的对象名。
node ipso2odm samples/load.xml
node ipso2odm samples/*.xml
OneDM SDF到IPSO转换器
用法: node odm2ipso [file-name]
将给定的OneDM SDF文件转换为LwM2M模式文件。 该程序还使用idmap.json作为输入,为已知的
1、将化学分子的inchi表示
批量转化为分子图表示。
可以使用
rdkit.Chem.inchi module的
rdkit.Chem.inchi.MolFromInchi函数。常见的关于inchi表示的一些操作函数都可以在
rdkit.Chem.inchi module里,但没有从Inchi直接
转化为
smile的函数。
#从inchi
转为分子图
from
rdkit import Chem
with open('inchi数据.txt') as f:
inchis = f.readlines()
Python3.2带来了concurrent.futures模块,这个模块具有线程池和进程池、管理并行编程任务、处理非确定性的执行流程、进程/线程同步等功能。
此模块由以下部分组成:
concurrent.futures.Executor: 这是一个虚拟基类,提供了异步执行的方法。
submit(function,argument): 调度函数(可调用的对象)的执行,将argument作为参数传入。
map(function,argument): 将argument作为参数执行函数,...
这个代码可以用于自动把所有分子的分子图保存为png格式。
import sys
sys.path.append('/home/li/.conda/envs/li/lib/python3.7/site-packages')
from rdkit import Chem
from rdkit.Chem import Draw
smis=[]
for i in open ("/home/li/draw_molecule_picture/moses2_smiles.txt"):
smis.append(
from
rdkit.Chem import Draw
from
rdkit.Chem import AllChem
mol=AllChem.MolFromPDBFile('mol.pdb')#将pdb表示分子
转换为mol对象
mol
Smiles=Chem.MolTo
Smiles(mol)#将mol对象
转换为
smiles
#------------------------get picture------------------------
#这里我是把
smile表示的公式,存入到了一个csv文件里面,所以需要使用
pandas读取
#如果是直接就有
smile类型的分子表达式,就可以直接
从Rdkit到pandas。Rdkit里面有一个Chem.PandasTools提供了许多便利的扩展工具。先导入本文需要用到的一些library:from rdkit import rdBase, Chem, DataStructs
from rdkit.Chem import AllChem, Draw, Descriptors, PandasTools
import pandas as pd
from rdkit.Chem import Draw
from rdkit.Chem import AllChem
print('rdkit version: ',rdBase.rdkitVersion)
读取pdb文件
mol = AllChem.MolFromPDBFile('mol.pdb')
Mol对象转换smiles
molsmiles = Chem.MolToSm
将SMILES转换为SDF需要使用化学信息软件,如RDKit或OpenBabel。以下是使用RDKit Python库将SMILES字符串转换为SDF文件的示例代码:
```python
from rdkit import Chem
from rdkit.Chem import AllChem
smiles = "CCOc1ccc(cc1)C(=O)NCC(=O)Nc2ccc(c(c2)OC)N(C)C"
mol = Chem.MolFromSmiles(smiles)
AllChem.Compute2DCoords(mol)
w = Chem.SDWriter('output.sdf')
w.write(mol)
w.close()
此代码将SMILES字符串转换为RDKit的Mol对象,使用Compute2DCoords函数计算分子的2D坐标,然后将Mol对象写入SDF文件中。