AIDD简介——分类和回归任务

🌞欢迎来到AI+生物医药的世界 
🌈博客主页:卿云阁

💌欢迎关注🎉点赞👍收藏⭐️留言📝

🌟本文由卿云阁原创!

🌠本阶段属于练气阶段,希望各位仙友顺利完成突破

📆首发时间:🌹2024年3月16日🌹

✉️希望可以和大家一起完成进阶之路!

🙏作者水平很有限,如果发现错误,请留言轰炸哦!万分感谢!


机器学习算法

逻辑回归算法原理

朴素贝叶斯算法原理

最近邻算法原理

支持向量机算法原理

随机森林算法原理

梯度提升算法原理


应用域


分子表示


ADMET-CYPs抑制剂预测实战

论文地址:

gkaa166.pdf (silverchair.com)

CYPs功能和抑制剂

        细胞色素P450(cytochromeP450或CYP450,简称CYP450)属于单氧酶的一类,。它参与内源性物质和包括药物、环境化合物在内的外源性物质的代谢。

       根据氨基酸序列的同源程度,其成员又依次分为家族、亚家族和酶个体三级。细胞色素P450酶系统可缩写为CYP,其中家族以阿拉伯数字表示,亚家族以大写英文字母表示,酶个体以阿拉伯数字表示,如CYP2D6CYP2C19CYP3A4等。人类肝细胞色素P450酶系中至少有9种P450与药物代谢相关。

      细胞色素P450主要分布在内质网和线粒体内膜上,研究表明细胞色素P450是药物代谢过程中的关键酶,而且对细胞因子和体温调节都有重要影响。

RDKit 介绍

     化合物(compounds)药物是一种主要的药物类型,通常进行相关研究时通常需要对其结构进行操作,展示,及分子量,化学描述符等计算。这里介绍一个操作简便友好的开源工具,RDKit。

      RDKit是一个用于化学信息学的开源工具包,基于对化合物2D和3D分子操作,利用机器学习方法进行化合物描述符生成,fingerprint生成,化合物结构相似性计算,2D和3D分子展示等。基于PYTHON语言进行调取使用。

该工具官网:https://rdkit.org

也可以根据从 The RDKit Documentation 网站进入了解RDKit并熟悉RDKit的指令操作。

以下介绍RDKit的一些基础操作。

RDKit安装

     这里介绍一种最快速的安装方法,由于RDKit是基于python语言使用的,所以可以在anaconda上快速进行RDKit的安装。

 pip install -i https://pypi.tuna.tsinghua.edu.cn/simple rdkit-pypi

  安装完成后,可以在python界面进行import,来check RDKit 是否安装成功。如果可能顺利import,则说明安装成功。

import rdkit

读分子操作

     RDKit 支持从Smiles、mol、sdf 文件中读入分子获得分子对象。 |Smiles、mol 是通常用于保存单个分子;而sdf格式当初是作为分子库形式设计的。 因此读入sdf得到的是分子迭代器,读入Smiles 和mol 文件是分子对象。

SMILES简介

    SMARTS(SMiles ARbitrary Target Specification)是一种用于描述分子模式和属性的语言。SMILES所有的符号和属性在SMARTS中同样适用,因此它也是SMILES的延伸。此外,SMARTS还包括了逻辑操作符和额外的分子描述符,后文会一一介绍。

(1)从SMILES/SMARTS直接读取

  • smi='CC(C)OC(=O)C(C)NP(=O)(OCC1C(C(C(O1)N2C=CC(=O)NC2=O)(C)F)O)OC3=CC=CC=C3': 这行代码定义了一个字符串变量smi,其中包含了一个SMILES表示的化合物的信息。SMILES(Simplified Molecular Input Line Entry System)是一种用于表示分子结构的文本字符串表示法。

  • mol = Chem.MolFromSmiles(smi): 这行代码使用RDKit的MolFromSmiles()函数将SMILES字符串转换为RDKit的分子对象。MolFromSmiles()函数将SMILES字符串解析并创建一个分子对象mol

  • sms = Chem.MolFromSmarts('Cc1ccccc1'): 这行代码使用RDKit的MolFromSmarts()函数将SMARTS模式字符串转换为RDKit的分子对象。SMARTS(SMILES Arbitrary Target Specification)是一种类似于SMILES的表示法,用于描述分子的子结构模式。

  • print(mol): 这行代码打印了分子对象mol的信息,通常包括分子的原子、键和立体化学信息。

  • print(sms): 这行代码打印了分子对象sms的信息,通常包括SMARTS模式的表示信息。

<rdkit.Chem.rdchem.Mol object at 0x0000025E71FBC970>
<rdkit.Chem.rdchem.Mol object at 0x0000025E730D1120>

   <rdkit.Chem.rdchem.Mol object at 0x0000025E71FBC970><rdkit.Chem.rdchem.Mol object at 0x0000025E730D1120>表示了两个分子对象的内存地址,而不是它们的化学结构。要打印出分子的化学结构,你可以使用RDKit提供的其他方法来获得分子的具体信息,比如通过Draw模块来绘制化学结构。

(2)文件批量读取

  • 从.smi批量读取:SmilesMolSupplier(data, delimiter, smilesColumn, nameColumn, titleLine, sanitize)
    data:数据文件
    delimiter:分隔符,默认为' '
    smilesColumn:SMILES所在列,默认为0
    nameColumn:SMILES名称所在列,默认为1
    titleLine:是否含有标题行,默认True
    sanitize:是否检查正确性,默认True
suppl = Chem.SmilesMolSupplier('data/batch_smiles.smi', delimiter='\t')
mols = [Chem.MolToSmiles(mol) for mol in suppl]
print(mols)
['C1=CC=CC=CC=C1', 'c1ccccc1', 'c1ccoc1']

(3)文本批量读取

  • 从文本批量读取SmilesMolSupplierFromText()
    参数基本同上
with open('data/batch_smiles.smi', 'r') as f:mols_text = f.read()
suppl = Chem.SmilesMolSupplierFromText(mols_text, delimiter='\t')
mols = [Chem.MolToSmiles(mol) for mol in suppl]
print(mols)
['C1=CC=CC=CC=C1', 'c1ccccc1', 'c1ccoc1']

(4)DataFrame批量读取

  • 读取DataFrame中的SMILES:PandasTools.AddMoleculeColumnToFrame(frame, smilesCol, molCol, includeFingerprints)
    frame:DataFrame对象
    smilesCol:SMILES所在列
    molCol:新列名,将存放产生的rdkit mol对象
    includeFingerprints:是否生成指纹
df = pd.read_csv('data/smiles_df.csv')
PandasTools.AddMoleculeColumnToFrame(df,'SMILES','mol',includeFingerprints=True)
df['MW'] = df['mol'].apply(Descriptors.MolWt)
print(df.head(2))

读.sdf

文件批量读取

  • 从.sdf里批量读取:Chem.SDMolSupplier(fileName, sanitize, removeHs, strictParsing)
    fileName:文件名
    sanitize:检查化合价,计算芳香性、共轭、杂化、kekule,默认True
    removeHs:是否隐藏氢原子,默认True
    strictParsing:是否使用严格模式进行解析,默认True
suppl = Chem.SDMolSupplier('data/batch.sdf')
mols = [Chem.MolToSmiles(mol) for mol in suppl if mol]
print(mols)
['C1=C\\C=C/C=C\\C=C/1', 'c1ccccc1', 'c1ccoc1']

压缩包批量读取

gz_file = gzip.open('data/batch.sdf.gz', 'r')
suppl = Chem.ForwardSDMolSupplier(gz_file)
mols = [Chem.MolToSmiles(mol) for mol in suppl if mol]
print(mols)
f.close()
['C1=C\\C=C/C=C\\C=C/1', 'c1ccccc1', 'c1ccoc1']

读.mol

m = Chem.MolFromMolFile('data/output.mol')
print(Chem.MolToSmiles(mol))
c1cocc1

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

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

相关文章

《ARM汇编与逆向工程 蓝狐卷 基础知识》

大家好&#xff0c;我是爱编程的喵喵。双985硕士毕业&#xff0c;现担任全栈工程师一职&#xff0c;热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。…

【JS】优化代码分支

判断条件很多时&#xff0c;会降低代码的可读性&#xff0c;例如下面这段代码 function fn(type){if(type 1){console.log(待把相思灯下诉)}else if(type 2){console.log(一缕新欢)}else if(type 3){console.log(旧恨千千缕)}else if(type 4){console.log(最是人间留不住)…

Ubuntu20下C/C++编程开启TCP KeepAlive

1、在linux下&#xff0c;测试tcp保活&#xff0c;可以使用tcp自带keepalive功能。 2、几个重要参数&#xff1a; tcp_keepalive_time&#xff1a;对端在指定时间内没有数据传输&#xff0c;则向对端发送一个keepalive packet&#xff0c;单位&#xff1a;秒 tcp_keep…

拌合楼内部管理系统开发(一)立个flag,开始做准备

前言&#xff1a;项目背景情况介绍 公司有意开发一套适合拌合楼的内部管理系统给到客户使用&#xff0c;接触过一家拌合楼行业内号称标杆的企业&#xff0c;去过参观学习的都觉得他们软件好用&#xff0c;但是从软件开发角度看&#xff0c;就是crud钉钉机器人无人值守。虽然公司…

Python语法糖

N u m P y NumPy NumPy的 n d i t e r nditer nditer nditer 是 NumPy 提供的一种多维迭代器&#xff0c;用于对多维数组进行迭代操作。它可以替代传统的嵌套循环&#xff0c;在处理多维数组时更加方便和高效。 迭代器可以按照不同的顺序遍历数组的元素&#xff0c;也可以控制…

npm install和npm install --save的区别

1、npm install XX 会把XX包安装到 node modules 目录中; 不会修改 package.json; 之后运行 npm instal1 命令时&#xff0c;不会自动安装XX; 2、npm install --save XX 会把XX包安装到 node_modules 目录中: 会在 package.json 的 dependencies 属性下添加XX; 之后运行…

JDK8和JDK11在Ubuntu18上切换(解决nvvp启动报错)

本文主要介绍JDK8和JDK11在Ubuntu18上切换&#xff0c;以供读者能够理解该技术的定义、原理、应用。 &#x1f3ac;个人简介&#xff1a;一个全栈工程师的升级之路&#xff01; &#x1f4cb;个人专栏&#xff1a;计算机杂记 &#x1f380;CSDN主页 发狂的小花 &#x1f304;人…

Redis列表:高效消息通信与实时数据处理的利器

Redis是一个强大的开源内存数据库&#xff0c;被广泛应用于缓存、会话存储、队列等各种场景中。在Redis中&#xff0c;列表&#xff08;List&#xff09;是一种非常重要的数据结构&#xff0c;它提供了存储、获取、操作有序元素集合的功能。本文将深入探讨Redis列表的特性、使用…

C++的类和对象(七):友元、内部类

目录 友元 友元函数 友元类 内部类 匿名对象 拷贝对象时的一些编译器优化 再次理解类和对象 友元 基本概念&#xff1a;友元提供了一种突破封装的方式&#xff0c;有时提供了便利&#xff0c;但是友元会增加耦合度&#xff0c;破坏了封装&#xff0c;所以友元不宜多用&…

[嵌入式系统-39]:龙芯1B 开发学习套件 -10-PMON启动过程Sstart.S详解

目录 一、龙芯向量表与启动程序的入口&#xff08;复位向量&#xff09; 1.1 复位向量&#xff1a; 1.2 代码执行流程 1.3 计算机的南桥 VS 北桥 二、PMON代码执行流程 三、Start.S详解 3.1 CPU初始化时所需要的宏定义 &#xff08;1&#xff09;与CPU相关的一些宏定义…

北斗卫星在桥隧坡安全监测领域的应用及前景展望

北斗卫星在桥隧坡安全监测领域的应用及前景展望 北斗卫星系统是中国独立研发的卫星导航定位系统&#xff0c;具有全球覆盖、高精度定位和海量数据传输等优势。随着卫星导航技术的快速发展&#xff0c;北斗卫星在桥隧坡安全监测领域正发挥着重要的作用&#xff0c;并为相关领域…

有关于Docker(容器),Image(镜像)部署等名词含义

理解 Docker、镜像和代码修改之间的关系和逻辑可以通过以下步骤来解释&#xff1a; 开发环境设置&#xff1a; 在开发阶段&#xff0c;开发人员通常会编写应用程序的代码。Docker 提供了一种将应用程序与其依赖项打包在一起的方法&#xff0c;称为 Docker 镜像。这个镜像可以包…

element-plus 完成下拉切换功能

项目场景&#xff1a; element-plus element-plus 完成下拉切换功能&#xff0c;选用了popover 组件去进行样式修改&#xff0c;本来大概是要实现下面这样的样式效果&#xff0c;没想到调整的时候&#xff0c;这个选择的高亮模块总是超出。 实现效果&#xff1a; 解决方案&am…

android HAL层崩溃排查记录

要最近在调试系统HDMI CEC功能时&#xff0c;遇到一个奇怪的崩溃问题&#xff0c;这边记录下。 初步分析 先上日志&#xff1a; --------- beginning of crash 03-06 10:48:25.503 1133 1133 F DEBUG : *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** **…

微信小程序 - 基于scroll view 实现下拉刷新

简介 本文会基于scroll view 实现下拉刷新效果&#xff0c;在下拉的时候会进入loading状态。 实现效果 效果如上图所示&#xff0c;在下拉到底部时候&#xff0c;会出现loading条&#xff0c;在处理完成后loading条消失。 具体代码 布局 <scroll-view scroll-y style&qu…

【AIGC调研系列】通义灵码与copilot的对比

通义灵码与GitHub Copilot的对比主要集中在几个方面&#xff1a;代码编写能力、免费性、操作界面和适配性。 首先&#xff0c;在代码编写能力上&#xff0c;虽然GitHub Copilot在整体上要强于通义灵码&#xff0c;但通义灵码的能力也不算弱&#xff0c;并且在某些特定的小类任…

Windows下anaconda下载安装教程,多图预警【步骤详细版】

Windows下anaconda下载安装教程 一、下载anaconda二、安装详细步骤<图示>1、安装Anaconda2、修改环境变量 三、验证是否安装成功1、查看python版本2、查看pip版本 特别致谢大佬的教程 一、下载anaconda 官网下载&#xff0c;速度太感人&#xff0c;所以这里选择清华开源…

01背包 与 emo题目背景(周超人的遗憾) 的爱恨情仇

本题背景有意思&#xff0c;大家当乐子看&#xff0c;目前没有找到题目原题&#xff0c;也没有写过完全是01背包模板的题目&#xff0c;该篇文章大家注意其01背包一维写法的模板就好&#xff0c;注意各个关键点 ✨欢迎来到脑子不好的小菜鸟的文章✨ &#x1f388;创作不易&…

【Docker】Jaeger 容器化部署

什么是 jaeger? Jaeger是受到Dapper和OpenZipkin启发的由Uber Technologies作为开源发布的分布式跟踪系统&#xff0c;兼容 OpenTracing 以及 Zipkin追踪格式&#xff0c;目前已成为CNCF基金会的开源项目。其前端采用React语言实现&#xff0c;后端采用GO语言实现&#xff0c;…

从政府工作报告探计算机行业发展——探索计算机行业发展蓝图

目录 前言 一、政策导向与行业发展 &#xff08;一&#xff09;政策导向的影响 &#xff08;二&#xff09;企业如何把握政策机遇推动创新发展 二、技术创新与产业升级 三、数字经济与数字化转型 四、国际合作与竞争态势 五、行业人才培养与科技创新 &#xff08;一&a…