机器学习复现案例

一.文献参考:2020-Ligand- and structural-based discovery of potential small moleculesthat target the colchicine site of tubulin for cancer treatment

摘要

小分子药物通过结合微管蛋白的秋水仙碱位点来进行抗癌治疗是一个很有前景的策略。本文研究了1076种不同的抑制剂,并使用了三种机器学习方法(朴素贝叶斯、单树、随机森林)建立了468个模型,这些模型的预测准确率超过了85.12%。通过虚拟筛选,发现了化合物23g,这种新型抗癌剂对多种肿瘤细胞系(MDA-MB-231、HeLa、A549、HepG2、CNE2、HCT116)表现出显著的抑制效果。进一步的机制研究表明,23g通过结合微管蛋白的秋水仙碱位点抑制微管聚合,导致细胞周期阻滞在G2/M期,并诱导细胞凋亡,表现出强大的抗转移活性。

引言

微管是真核细胞中细胞骨架的重要组成部分,由α-和β-微管蛋白异二聚体形成,参与细胞分裂、维持细胞形态以及胞内物质运输。破坏微管的动态平衡会导致细胞周期阻滞,最终引发细胞凋亡。因此,微管是抗癌治疗的重要靶点。虽然一些天然产物如紫杉醇和长春新碱已被批准为抗癌药物,但它们的合成复杂且易产生耐药性。秋水仙碱结合位点抑制剂(CBSIs)被认为具有克服耐药性和提高临床效益的潜力。

研究方法

  1. 数据集构建:收集了1076种CBSIs和非CBSIs化合物,基于分子指纹构建分类模型。
  2. 模型构建:使用单树、随机森林和朴素贝叶斯方法构建了468个模型。
  3. 虚拟筛选:结合最佳分类模型、分子对接和相似性搜索进行两轮虚拟筛选。
  4. 实验验证:对筛选得到的化合物进行体外抗增殖实验,进一步研究其作用机制。

结果与讨论

  1. 模型性能:最佳模型的预测准确率超过了85%,朴素贝叶斯模型表现最优,具有较高的MCC值和总体预测准确率。
  2. 虚拟筛选与实验验证:通过两轮虚拟筛选和实验验证,发现化合物23g对多种肿瘤细胞系具有显著的抑制效果,且对多药耐药细胞系也表现出强大毒性。
  3. 作用机制研究:23g通过结合秋水仙碱位点抑制微管聚合,导致细胞周期阻滞在G2/M期,诱导细胞凋亡,并显示出显著的抗转移活性。

结论

化合物23g是一种新型的抗癌剂,通过结合微管蛋白的秋水仙碱位点发挥作用。进一步的分子对接、分子动力学模拟和自由能分析揭示了其与微管蛋白的详细结合相互作用。这些发现表明,23g具有作为抗肿瘤药物的潜力,值得进一步研究和开发。

研究步骤注释

  1. 数据集构建:从公开数据库中收集了1076种化合物,并根据它们是否能结合秋水仙碱位点进行分类。
  2. 模型构建:使用不同的机器学习方法(朴素贝叶斯、单树、随机森林)基于分子指纹构建分类模型,以预测新的CBSIs。
  3. 虚拟筛选:结合最佳分类模型、分子对接和相似性搜索进行筛选,从195273个化合物中筛选出潜在的CBSIs。
  4. 实验验证:对筛选出的化合物进行细胞增殖抑制实验,确定其抗癌活性。
  5. 机制研究:通过微管聚合抑制实验、细胞周期分析、细胞凋亡检测、细胞迁移实验和蛋白质印迹分析等研究23g的作用机制。

二.复现步骤:

1. 数据集构建

首先,你需要准备好包含化合物信息的原始数据集,并将其整理成适合机器学习模型训练的数据格式。

import pandas as pd
from sklearn.model_selection import train_test_split
from rdkit import Chem
from rdkit.Chem import AllChem

# 读取数据集(假设数据集已整理成CSV格式,包含化合物和其活性标签)
data = pd.read_csv('compounds.csv')

# 将SMILES字符串转换为分子指纹
def smiles_to_fingerprint(smiles):
    mol = Chem.MolFromSmiles(smiles)
    fp = AllChem.GetMorganFingerprintAsBitVect(mol, 2, nBits=2048)
    return fp

data['fingerprint'] = data['smiles'].apply(smiles_to_fingerprint)

# 分离特征和标签
X = list(data['fingerprint'])
y = data['label'].values

# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

2. 模型构建

使用机器学习方法(例如随机森林和朴素贝叶斯)来构建分类模型。

from sklearn.ensemble import RandomForestClassifier
from sklearn.naive_bayes import GaussianNB
from sklearn.metrics import accuracy_score, confusion_matrix, classification_report

# 随机森林模型
rf_model = RandomForestClassifier(n_estimators=100, random_state=42)
rf_model.fit(X_train, y_train)

# 朴素贝叶斯模型
nb_model = GaussianNB()
nb_model.fit(X_train, y_train)

# 评估模型
rf_predictions = rf_model.predict(X_test)
nb_predictions = nb_model.predict(X_test)

print("Random Forest Accuracy:", accuracy_score(y_test, rf_predictions))
print("Naive Bayes Accuracy:", accuracy_score(y_test, nb_predictions))

3. 虚拟筛选

将模型应用于更大规模的化合物库进行虚拟筛选。

# 读取更大规模的化合物库(假设为CSV文件,包含SMILES字符串)
compound_library = pd.read_csv('large_compound_library.csv')

# 将SMILES转换为分子指纹
compound_library['fingerprint'] = compound_library['smiles'].apply(smiles_to_fingerprint)

# 使用训练好的模型进行预测
compound_library['rf_prediction'] = rf_model.predict(list(compound_library['fingerprint']))
compound_library['nb_prediction'] = nb_model.predict(list(compound_library['fingerprint']))

# 筛选出被预测为活性的化合物
active_compounds = compound_library[(compound_library['rf_prediction'] == 1) & (compound_library['nb_prediction'] == 1)]

# 保存筛选出的化合物
active_compounds.to_csv('active_compounds.csv', index=False)

4. 实验验证

将筛选出的活性化合物进行体外实验验证,通常需要生物实验室的合作。在这里,我们假设你已经得到了实验结果,并准备进行分析。

5. 结果分析与机制研究

分析实验结果,并进行相关的机制研究。这一步通常涉及细胞实验数据的处理和分析。

实现步骤

在Jupyter Notebook中执行以下步骤:

  1. 准备和预处理数据集。
  2. 构建和训练机器学习模型。
  3. 使用训练好的模型进行虚拟筛选。
  4. 实验验证筛选出的化合物。
  5. 分析实验结果,进行进一步的机制研究。

安装和配置依赖

pip install pandas scikit-learn rdkit tqdm

启动Jupyter Notebook:

jupyter notebook

在Notebook中执行上述代码段,并根据需要进行调整和扩展。

以上是一个实现生物小分子药物类型数据集进行机器学习模型训练和虚拟筛选的基本框架。实际研究中可能需要根据具体需求和数据进行调整和优化。

  • 7
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值