【2024datawhale 分子AI预测赛笔记】数据挖掘速通Baseline -分类/回归

赛题概述

精准预测分子性质有助于高效筛选出具有优异性能的候选药物。以PROTACs为例,它是一种三元复合物由目标蛋白配体、linker、E3连接酶配体组成,靶向降解目标蛋白质。(研究 PROTACs 技术在靶向降解目标蛋白质方面的潜力。)

提醒:需要python和机器学习基础。

赛事任务

根据提供的demo数据集,可以基于demo数据集进行数据增强、自行搜集数据等方式扩充数据集,并自行划分数据。运用深度学习、强化学习或更加优秀人工智能的方法预测PROTACs的降解能力,若DC50>100nM且Dmax<80% ,则视为降解能力较差(demo数据集中Label=0);若DC50<=100nM或Dmax>=80%,则视为降解能力好(demo数据集中Label=1)

机器学习问题通用流程

数据集

数据集包含了多个字段,如uuid(唯一标识符)、Label(降解能力的标签,0表示降解能力较差,1表示降解能力好)、Uniprot、Target、E3
ligase、PDB等,这些都是与PROTACs分子相关的信息。

还包括了降解能力相关的数值指标,如DC50(半数降解浓度)、Dmax(最大降解效率)、IC50(半抑制浓度)、EC50(半有效浓度)等。

还包括了与分子物理化学性质相关的字段,如Molecular Weight(分子量)、Exact Mass(精确质量)、XLogP3(预测的脂水分配系数)等。

参数剖析

  • UUID: 一个唯一的标识符,用于识别数据记录。
  • Label: 可能指的是化合物或数据集的标签或名称。
  • Uniprot: 一个蛋白质数据库,提供关于蛋白质序列、结构和功能的信息。
  • Target: 目标蛋白,即PROTACs设计来降解的特定蛋白质。
  • E3 ligase: E3连接酶,一种在泛素化过程中扮演角色的酶,帮助标记蛋白质以供降解。
  • PDB: 蛋白质数据银行,一个包含蛋白质和核酸结构的数据库。
  • Name: 化合物的名称。
  • Smiles: 一种表示分子结构的字符串格式。
  • DC50 (nM): 半最大降解浓度,即达到最大降解效果一半时的化合物浓度。
  • Dmax (%): 最大降解效率,表示化合物能实现的最大降解效果的百分比。
  • Assay: 实验方法,这里可能指的是用于测定DC50、Dmax等的实验。
  • Percent degradation: 分子降解的百分比。
  • IC50 (nM, Protac to Target): 半最大抑制浓度,针对PROTACs与其目标蛋白的复合物。
  • EC50 (nM, Protac to Target): 半最大有效浓度,即达到一半最大生物效应的浓度。
  • Kd (nM, Protac to Target): 解离常数,表示PROTACs与其目标蛋白复合物的结合强度。
  • Ki (nM, Protac to Target): 抑制常数,用于描述抑制剂与酶的结合强度。
  • delta G, delta H, -T*delta S: 分别表示结合反应的吉布斯自由能变化、焓变和熵变,这些热力学参数用于描述分子间相互作用的能量状态。
  • kon, koff: 分别表示分子结合和解离的速率常数。
  • t1/2 (s, Protac to Target): 半衰期,即分子浓度减少到初始浓度一半所需的时间。
  • Assay (Protac to Target, kon/koff/t1/2): 可能是指测定结合和解离速率常数以及半衰期的实验方法。
  • IC50, EC50, Kd, Ki: 与三元复合物相关的参数,与前面提到的类似,但这里特指三元复合物。
  • delta G, delta H, -T*delta S: 描述三元复合物的热力学参数。
  • kon, koff, t1/2: 描述三元复合物的动力学参数。
  • IC50, EC50, GI50, ED50, GR50: 这些参数描述了化合物在细胞水平上的活性,如半最大抑制浓度、半最大效应浓度等。
  • PAMPA Papp: 一种评估药物分子在仿生膜上的通透性的方法。
  • Caco-2 A2B/B2A Papp: 使用Caco-2细胞系评估药物分子的肠道吸收能力。
  • Article DOI: 文章的数字对象标识符,用于唯一标识科学文献。
  • Molecular Weight, Exact Mass: 分子量和精确质量。
  • XLogP3: 预测的辛醇/水分配系数,用于预测脂溶性。
  • Heavy Atom Count, Ring Count: 重原子数和环的数量。
  • Hydrogen Bond Acceptor/Donor Count: 氢键受体/供体计数。
  • Rotatable Bond Count: 可旋转键的数量。
  • Topological Polar Surface Area: 拓扑极性表面积。
  • Molecular Formula, InChI, InChI Key: 分子式、国际化学标识符及其密钥。

生物知识参考信息

流程概述

  1. 导入库:首先,导入需要用到的库,包括 pandas(用于数据处理和分析)和 LGBMClassifier(决策树分类器)等。
  2. 读取数据:代码通过使用 pd.read_excel 函数从文件中读取训练集和测试集数据,并将其存储在 traindata-new.xlsx 和 testdata-new.xlsx 两个数据框中。
  3. 特征工程:
    • test数据不包含 DC50 (nM) 和 Dmax (%),将train数据中的 DC50 (nM) 和 Dmax (%)删除。
  4. LGB树模型训练和预测:
    • 创建了一个 LGBMClassifier 的实例,即LGB分类器。
    • 使用 fit 函数对训练集中的特征和目标进行拟合,训练了决策树模型。
    • 对测试集使用已训练的模型进行预测,得到预测结果。
    • 将预测结果和相应的 uuid 组成一个DataFrame,并将其保存到 submit.csv 文件中。

步骤一:下载相关库

!pip install lightgbm openpyxl

Looking in indexes: https://mirror.baidu.com/pypi/simple/, https://mirrors.aliyun.com/pypi/simple/
Collecting lightgbm
Downloading https://mirrors.aliyun.com/pypi/packages/f2/3d/4f152cf694aec100ab63b4a5547f2dbfbea59ab39d9375c89bed9775e47d/lightgbm-4.4.0-py3-none-manylinux_2_28_x86_64.whl (3.6 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.6/3.6 MB 796.0 kB/s eta 0:00:0000:0100:01
Collecting openpyxl
Downloading https://mirrors.aliyun.com/pypi/packages/30/d0/abcdb0669931be3a98881e6d7851605981693e93a7924061c67d0cd9f292/openpyxl-3.1.4-py2.py3-none-any.whl (251 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 251.4/251.4 kB 814.6 kB/s eta 0:00:00a 0:00:01
Requirement already satisfied: numpy>=1.17.0 in /opt/conda/envs/python35-paddle120-env/lib/python3.10/site-packages (from lightgbm) (1.26.4)
Requirement already satisfied: scipy in /opt/conda/envs/python35-paddle120-env/lib/python3.10/site-packages (from lightgbm) (1.13.1)
Collecting et-xmlfile (from openpyxl)
Downloading https://mirrors.aliyun.com/pypi/packages/96/c2/3dd434b0108730014f1b96fd286040dc3bcb70066346f7e01ec2ac95865f/et_xmlfile-1.1.0-py3-none-any.whl (4.7 kB)
Installing collected packages: et-xmlfile, openpyxl, lightgbm
Successfully installed et-xmlfile-1.1.0 lightgbm-4.4.0 openpyxl-3.1.4
WARNING: Skipping page https://mirror.baidu.com/pypi/simple/pip/ because the GET request got Content-Type: application/octet-stream. The only supported Content-Types are application/vnd.pypi.simple.v1+json, application/vnd.pypi.simple.v1+html, and text/html

步骤二:训练模型并预测结果

# 1. 导入需要用到的相关库
# 导入 pandas 库,用于数据处理和分析
import pandas as pd
# 导入 numpy 库,用于科学计算和多维数组操作
import numpy as np
# 从 lightgbm 模块中导入 LGBMClassifier 类
from lightgbm import LGBMClassifier


# 2. 读取训练集和测试集
# 使用 read_excel() 函数从文件中读取训练集数据,文件名为 'traindata-new.xlsx'
train = pd.read_excel('./data/data280993/traindata-new.xlsx')
# 使用 read_excel() 函数从文件中读取测试集数据,文件名为 'testdata-new.xlsx'
test = pd.read_excel('./data/data280993/testdata-new.xlsx')

# 3 特征工程
# 3.1 test数据不包含 DC50 (nM) 和 Dmax (%),将train数据中的DC50 (nM) 和 Dmax (%)删除
train = train.drop(['DC50 (nM)', 'Dmax (%)'], axis=1)

# 3.2 将object类型的数据进行目标编码处理
for col in train.columns[2:]:
    if train[col].dtype == object or test[col].dtype == object:
        train[col] = train[col].isnull()
        test[col] = test[col].isnull()

# 4. 加载决策树模型进行训练
model = LGBMClassifier(verbosity=-1)
model.fit(train.iloc[:, 2:].values, train['Label'])
pred = model.predict(test.iloc[:, 1:].values, )

# 5. 保存结果文件到本地
pd.DataFrame(
    {
        'uuid': test['uuid'],
        'Label': pred
    }
).to_csv('submit.csv', index=None)

步骤三:输出submit.csv文件并提交

进阶调参

<think>嗯,用户问的是如何在C/C++项目中配置includePath,让IntelliSense能找到torch/extension.h。首先,我得回想一下,这个问题常出现在使用PyTorch扩展开发的时候,因为需要包含Torch的头文件,而IntelliSense可能没有正确配置包含路径。 首先,用户可能是在用VS Code或者类似的编辑器,因为IntelliSense是微软的技术,常见于VS Code。所以需要指导他们如何修改VS Code的配置文件,比如c_cpp_properties.json里的includePath。要确保路径指向Torch的安装位置,比如在Python的site-packages下的torch/include目录。 然后,可能需要考虑不同操作系统下的路径差异。比如在Linux和macOS下,路径可能是用户目录下的某个位置,而Windows可能不同。另外,如果用户是过conda安装的PyTorch,路径可能也有所不同,需要指出这些可能性。 另外,用户可能需要安装CMake或者设置其他编译配置,比如compileCommands,来帮助IntelliSense正确解析头文件。特别是如果项目使用CMake生成的话,生成compile_commands.json文件,并在VS Code中启用,可以自动获取包含路径,这可能比手动配置更可靠。 还要考虑用户是否安装了必要的C++扩展,比如微软的C/C++扩展,这是IntelliSense工作的基础。可能需要提醒用户检查扩展是否安装,并推荐他们安装以支持更好的代码提示。 此外,用户可能遇到的常见错误包括路径配置错误、环境变量未正确设置,或者PyTorch没有正确安装。可能需要建议他们验证PyTorch的安装位置,或者重新安装PyTorch以确保头文件存在。 最后,生成相关问题时要覆盖用户可能进一步遇到的问题,比如如何验证配置是否生效,如何处理多版本Torch的情况,或者如何配置CMake项目来支持IntelliSense。这些都能帮助用户更全面地解决问题。</think>以下是配置C/C++项目includePath支持torch/extension.h的逐步解决方案: ### 一、配置VS Code的includePath 1. 打开命令面板(Ctrl+Shift+P) 2. 输入"C/C++: Edit Configurations (UI)" 3. 在「Include path」中添加以下路径: ``` ${env:CONDA_PREFIX}/include // conda环境 /usr/include/python3.Xm // Linux系统Python头文件 ${workspaceFolder}/** // 项目本地头文件 /path/to/libtorch/include/torch/csrc/api/include // LibTorch路径[^1] ``` ### 二、验证PyTorch安装路径 ```bash # 在Python中执行 import torch print(torch.utils.cmake_prefix_path) ``` ### 三、配置c_cpp_properties.json示例 ```json { "configurations": [ { "name": "Linux", "includePath": [ "${workspaceFolder}/**", "/usr/local/include", "${env:CONDA_PREFIX}/include/**", "/path/to/libtorch/include/**" ], "defines": [], "compilerPath": "/usr/bin/clang++", "cStandard": "c17", "cppStandard": "c++17" } ] } ``` ### 四、推荐安装扩展 1. C/C++ IntelliSense (ms-vscode.cpptools) 2. CMake Tools (ms-vscode.cmake-tools) ### 五、使用compile_commands.json(推荐) 1. 在CMakeLists.txt中添加: ```cmake set(CMAKE_EXPORT_COMPILE_COMMANDS ON) ``` 2. 生成后配置: ```json "C_Cpp.default.compileCommands": "${workspaceFolder}/build/compile_commands.json" ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值