Rdkit|分子输出

news2024/10/5 13:40:48

Rdkit|分子输出

Github: 地址

输出SMILES/SMARTS

输出SMILES:MolToSmiles(mol, isomericSmiles, kekuleSmiles, canonical, …)
kekuleSmiles:默认False,不使用kekule时:脂肪族碳用"C"表示(大写),芳香族用"c"表示(小写)
isomericSmiles:默认True,区分同分异构体("@“表示手性,”\“和”/"表示顺反异构)
canonical:默认True,输出标准SMILES

from rdkit import Chem
m1 = Chem.MolFromSmiles('C1=CC=CC=CC=C1')
m2 = Chem.MolFromSmiles('C1=CC=CC=C1')
m3 = Chem.MolFromSmiles('C1=COC=C1')
mols = [m1, m2, m3]
print([Chem.MolToSmiles(mol) for mol in mols])

输出kekule式

kekule形式:在符合4N+2规则的芳香体系中,通过使用双键代替小写的碳原子来表示芳香性
4N+2规则:也叫Hueckel规则,在闭环共轭体系中,当π电子数为4n+2时,才具有芳香性

for mol in mols:
    Chem.Kekulize(mol)
print([Chem.MolToSmiles(mol, kekuleSmiles=True) for mol in mols])

设置立体参数

通过isomericSmiles控制

m = Chem.MolFromSmiles('C[C@H](O)c1ccccc1')
print(Chem.MolToSmiles(m))

print(Chem.MolToSmiles(m, isomericSmiles=False))

批量输出SMILES

批量输出SMILES:SmilesWriter(fileName, delimiter, includeHeader, nameHeader, isomericSmiles, kekuleSmiles)
fileName:输出文件名
delimiter:分隔符,默认为空格’ ’
includeHeader:是否写入表头,默认True
nameHeader:分子名一列的列名,默认’Name’
isomericSmiles:立体信息,默认True
kekuleSmiles:kekule形式,默认False

writer = Chem.SmilesWriter('data/batch.smi', delimiter='\t')
for i, mol in enumerate(mols):
    writer.write(mol)
writer.close()

批量输出SMILES和属性

批量输出SMILES及属性,通过以下函数进行操作:
mol.GetPropNames(),查看分子属性列表
mol.GetProp(),获取相应属性
mol.SetProp(key, val),新增属性名key、对应属性值val
writer.SetProps(),设置哪些属性要输出

from rdkit.Chem import Descriptors

writer = Chem.SmilesWriter('data/batch_smiles.smi', delimiter='\t', nameHeader='mol_id')
writer.SetProps(['LOGP', 'MW'])
for i, mol in enumerate(mols):
     mw = Descriptors.ExactMolWt(mol)
     logp = Descriptors.MolLogP(mol)
     mol.SetProp('MW', '%.2f' %(mw))
     mol.SetProp('LOGP', '%.2f' %(logp))
     mol.SetProp('_Name', 'No_%s' %(i))
     writer.write(mol)
writer.close()
print('number of mols:', writer.NumMols())

print('mol properties:', [i for i in mol.GetPropNames()])

输出SMARTS

输出SMARTS:MolToSmarts()

Chem.MolToSmarts(m3, isomericSmiles=True)

输出.sdf

批量输出到文件:SDWriter()
使用方法类似于SMILES的批量输出

writer = Chem.SDWriter('data/batch.sdf')
writer.SetProps(['LOGP', 'MW'])
for i, mol in enumerate(mols):
     mw = Descriptors.ExactMolWt(mol)
     logp = Descriptors.MolLogP(mol)
     mol.SetProp('MW', '%.2f' %(mw))
     mol.SetProp('LOGP', '%.2f' %(logp))
     mol.SetProp('_Name', 'No_%s' %(i))
     writer.write(mol)
writer.close()

.批量输出到.gz

import gzip
outf = gzip.open('data/batch.sdf.gz','wt+')
writer = Chem.SDWriter(outf)
for mol in mols:
    writer.write(mol)
writer.close()
outf.close()

输出.mol

直接输出:MolToMolBlock()

print(Chem.MolToMolBlock(m1))

输出到文件:MolToMolFile(mol, filename, includeStereo, …)
mol:mol对象
filename:文件名
includeStereo:立体信息,默认True

m1.SetProp('_Name', 'cyclobutane')
Chem.MolToMolFile(m1, 'data/sig.mol')

输出其他格式:pdb, fasta, xyz…

# PDB
Chem.MolToPDBBlock()
Chem.MolToPDBFile()
Chem.PDBWriter()
# FASTA
Chem.MolToFASTA()
# XYZ
Chem.MolToXYZBlock()
Chem.MolToXYZFile()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/719713.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

分布式运用——rsync远程同步

一、rsync的背景和原理 rsync(Remote Sync,远程同步)是由Andrew Tridgell于1996年开发的一款开源软件。 是一个开源的快速备份工具,可以在不同主机之间镜像同步整个目录树,支持增量备份,并保持链接和权限&a…

笔试强训第33天

目录 剪花布条 客似云来 剪花布条 #include <iostream> #include <string>using namespace std;int main() {string s,t;while(cin>>s>>t){int ans 0;while(s.find(t) ! string::npos){s.erase(s.find(t), t.size());ans;}cout<<ans<<en…

Codeforces Round 877 (Div. 2) A-E

题目链接&#xff1a;Dashboard - Codeforces Round 877 (Div. 2) - Codeforces A - Blackboard List 解题思路&#xff1a;因为取的是绝对值&#xff0c;所以有负数肯定取负数&#xff0c;没负数就取最大值。 #include <bits/stdc.h> using namespace std; const int…

基于PyQt5的桌面图像调试仿真平台开发(7)伽马矫正

系列文章目录 基于PyQt5的桌面图像调试仿真平台开发(1)环境搭建 基于PyQt5的桌面图像调试仿真平台开发(2)UI设计和控件绑定 基于PyQt5的桌面图像调试仿真平台开发(3)黑电平处理 基于PyQt5的桌面图像调试仿真平台开发(4)白平衡处理 基于PyQt5的桌面图像调试仿真平台开发(5)…

小程序的剪贴板 实现复制文本功能

小程序的剪贴板 实现复制文本功能 wx.setClipboardData wx.setClipboardData() 设置系统剪贴板的内容。调用成功后&#xff0c;会弹出 toast 提示"内容已复制"&#xff0c;持续 1.5s Promise 风格 调用&#xff1a;支持微信 Windows 版&#xff1a;支持微信 Mac 版&…

Mac电脑如何与 Windows 用户共享文件?

在 Mac 上设置文件共享 选取苹果菜单 >“系统偏好设置”&#xff0c;然后点按“共享”。 选择“文件共享”复选框&#xff0c;然后点按“选项”。 选择“使用 SMB 来共享文件和文件夹”复选框。 在“Windows 文件共享”列表中&#xff0c;选择要与 Windows 用户共享文件的…

python语法

1、单行注释&#xff1a;# &#xff0c;多行注释&#xff1a; 2、python采用代码缩进和冒号来区别代码之间的层次 3、每个变量在使用前必须赋值&#xff0c;才会创建内存空间。python是基于值的内存管理&#xff0c;相同值指向同一空间。具有内存自动管理功能。不需要声明类…

亚马逊云科技生成式AI产品入围2023SAIL奖TOP30榜单项目

以“智联世界&#xff0c;生成未来”为主题的2023世界人工智能大会&#xff08;WAIC 2023&#xff09;将于7月6日至8日在上海举行。本次大会将聚焦通用人工智能发展&#xff0c;紧抓生成式人工智能引发的行业热潮&#xff0c;探索未来产业新业态&#xff0c;超前谋划赋能数字经…

安装使用最新Photoshop beta(OpenAI模型)及基本Photoshop beta使用技巧

安装使用最新Photoshop beta 1. 注册Adobe美国地区账号2.下载安装Adobe Creative Cloud工具3.下载Photoshop beta4. 基本Photoshop beta使用技巧 1. 注册Adobe美国地区账号 adobe美国官网&#xff1a;https://www.adobe.com/ 首先我们进入官网注册账号 下面我们输入注册邮箱…

【网络编程】自定义协议+Json序列化与反序列化

文章目录 一、序列化与反序列化概念二、自定义协议设计网络计算机2.1 服务端2.1.1 服务端业务处理流程2.1.2 TCP的发送与接收缓冲区2.1.3 保证读取完整报文2.1.4 自定义协议——序列化与反序列化2.1.4.1 请求2.4.1.2 响应 2.1.5 计算流程2.1.6 在有效载荷前添加长度报头2.1.7 发…

解决vmWare ESXI 7.3报错,客户机操作系统已禁用 CPU。请关闭或重置虚拟机(ESXI使用遇到问题解决记录文持续使用持续更新)

一&#xff1a;分析客户机操作系统已禁用 CPU" 这个错误通常是由以下原因之一引起的&#xff1a; 1. 虚拟机配置不正确&#xff1a;可能是您在虚拟机配置中选择了不受支持的 CPU 类型或功能。某些操作系统可能需要特定的 CPU 功能才能正常运行。如果您的虚拟机配置与操作…

下载【T0】指令微调数据集

T0 benchmark&#xff08;或者叫P3&#xff09;是一个大规模的人工标注instruction tuning数据集&#xff0c;在ICLR 2021 T0一文中提出&#xff0c;其收集了来自huggingface hub上的多任务数据&#xff0c;并为每一个task都装备了来自prompt source的人工撰写指令。 P3数据集…

9、DataX安装部署

1、 DataX简介 1.1 DataX概述 DataX 是阿里巴巴开源的一个异构数据源离线同步工具&#xff0c;致力于实现包括关系型数据库(MySQL、Oracle等)、HDFS、Hive、ODPS、HBase、FTP等各种异构数据源之间稳定高效的数据同步功能。 源码地址&#xff1a;https://github.com/alibaba/…

基于高校图书馆的用户画像、可视化、模型预测、推荐算法项目实现

需要本项目的可以私信博主获取源码及项目&#xff01;&#xff01;&#xff01; 本研究基于高校图书馆的借阅信息、馆藏图书信息、读者入馆信息、用户信息等多维度的数据表&#xff0c;首先将不同年份的数据拼接在一起&#xff0c;按照时间维度进行整合&#xff0c;并保证数据…

快慢指针专题

总体思想&#xff1a;详解为什么用一步两步快慢指针&#xff1f;三步四步可以吗 - 预言2018 - 博客园 (cnblogs.com) 1. 为什么快慢指针一定会相遇&#xff1a; 2. 为什么 quick 指针每次走两步&#xff0c;而不是3、4步骤&#xff0c;是因为 如上图所示&#xff0c;若走2步&a…

TDsql增量merge导入load_data

TDsql增量merge导入load_data 项目组最近用了腾讯的TencentDB分布式数据库作为传统关系型数据库来保存少量应用数据。因此需要开发相对应的ETL功能代码&#xff0c;根据新数据库特性&#xff0c;使用自带的工具load_data作为导入的工具 准备表 使用load_data导入的表&#xf…

Python运维自动化Paramiko模块

paramiko学习笔记 为什么要用到paramiko模块安装paramiko模块paramiko介绍SSHClient---连接服务器exec_command---执行命令SFTPClient---传输文件下载和上传文件其它方法 为什么要用到paramiko模块 工作中常用到Linux服务器需要更新开发的代码&#xff0c;之前一直是使用xshell…

Python_多任务:进程、线程、协程

目录 进程 实现多进程 进程池 实现进程池 线程 实现多线程 多线程的资源竞争问题 互斥锁解决资源竞争问题 死锁 协程 gevent 进程 进程是一个具有一定独立功能的程序在一个数据集上的一次动态执行的过程&#xff0c;是操作系统进行资源分配和调度的一个独立单位&am…

“多”维演进:智能编码的深度进化

我们在追求怎样的编码未来&#xff1f; 无处不在的视频渗透、井喷式的流量增长、多元的场景技术需求、用户对视频体验的“不将就”……音视频行业的快速发展却伴随着“编码标准升级速度缓慢”、“硬件红利见底”、“编码复杂度带来的成本问题”等众多挑战。 视频编码还“卷”得…

SQL Server 2008 r2 修改sa密码 通过sql server 身份验证登陆

SQL Server的两种身份验证模式是Windows验证模式和SQL Server验证模式。 sql server 2008 r2 修改sa密码 通过sql server 身份验证登陆 【解决方法如下】 通过windows 身份验证登陆后,首先选中服务器(右键)->属性 ->安全性->服务器身份验证修改为"SQL SERVER和W…