赛题概述
精准预测分子性质有助于高效筛选出具有优异性能的候选药物。以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: 分子式、国际化学标识符及其密钥。
生物知识参考信息
- Biopython官方文档:用于生物计算的Python库。
- RDKit官方文档:一个开源化学信息学软件库,用于处理化学分子和相关数据。
流程概述
- 导入库:首先,导入需要用到的库,包括 pandas(用于数据处理和分析)和 LGBMClassifier(决策树分类器)等。
- 读取数据:代码通过使用 pd.read_excel 函数从文件中读取训练集和测试集数据,并将其存储在 traindata-new.xlsx 和 testdata-new.xlsx 两个数据框中。
- 特征工程:
- test数据不包含 DC50 (nM) 和 Dmax (%),将train数据中的 DC50 (nM) 和 Dmax (%)删除。
- 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文件并提交