返回Skills库

药物化学

MIT
🏗️ 行业应用
K-Dense-AI化学

药物化学过滤器,用于化合物分选:应用类药性规则(Lipinski、Veber、CNS)、结构警示目录(PAINS 等)与复杂度指标,并提供 medchem 查询语言做化合物库筛选。

药物化学

概述

药物化学和药物发现工具集,包括分子性质预测、ADMET预测、药物相似性分析、先导化合物优化、虚拟筛选、QSAR建模、分子对接、药效团建模和药物设计。该技能使用RDKit、OpenEye、Schrodinger、MOE等工具,适用于药物发现、先导化合物优化和药物设计。

安装

# 基础安装
uv pip install medchem

# 可选依赖
uv pip install datamol
uv pip install rdkit  # 如果需要更完整的 RDKit 功能

# Lilly 过滤器(需要单独安装)
conda install -c conda-forge lilly-medchem-rules

核心能力

1. 分子性质预测

  • 物理化学性质:分子量、LogP、TPSA、氢键供体/受体
  • 溶解度:LogS、水溶性
  • 渗透性:Caco-2渗透性、血脑屏障渗透性
  • 反应性:反应性基团、代谢稳定性
  • 毒性:毒性预测、hERG抑制

2. ADMET预测

  • 吸收:肠道吸收、生物利用度
  • 分布:血浆蛋白结合、组织分布
  • 代谢:代谢稳定性、CYP抑制
  • 排泄:清除率、半衰期
  • 毒性:肝毒性、心脏毒性、遗传毒性

3. 药物相似性分析

  • Lipinski规则:五规则
  • Veber规则:口服生物利用度规则
  • Ghose规则:药物相似性规则
  • Egan规则:药物相似性规则
  • Muegge规则:药物相似性规则

4. 先导化合物优化

  • 生物电子等排替换:替换功能基团
  • 骨架跃迁:改变分子骨架
  • 官能团修饰:修饰官能团
  • 构象限制:限制分子构象
  • 前药设计:设计前药

5. 虚拟筛选

  • 基于配体的筛选:基于配体的虚拟筛选
  • 基于结构的筛选:基于结构的虚拟筛选
  • 药效团筛选:基于药效团的筛选
  • 机器学习筛选:基于机器学习的筛选

6. QSAR建模

  • 描述符计算:计算分子描述符
  • 特征选择:选择相关特征
  • 模型构建:构建QSAR模型
  • 模型验证:验证模型性能
  • 模型应用:应用模型预测

7. 分子对接

  • 对接准备:准备配体和受体
  • 对接计算:执行分子对接
  • 结果分析:分析对接结果
  • 打分函数:使用打分函数评估

8. 药效团建模

  • 药效团识别:识别药效团特征
  • 药效团生成:生成药效团模型
  • 药效团筛选:基于药效团筛选
  • 药效团优化:优化药效团模型

何时使用此技能

此技能应在以下情况下使用:

  • 应用药物相似性规则(Lipinski、Veber、CNS、lead-like)到化合物库
  • 通过结构警报、PAINS 或 NIBR 筛选规则过滤分子
  • 优化命中化合物或先导化合物
  • 根据 ZINC 衍生阈值计算复杂度指标
  • 检测功能基团或命名子结构目录
  • 使用 medchem 查询语言构建多标准过滤器

在以下情况下使用此技能:

  • 预测分子性质和ADMET
  • 进行药物相似性分析
  • 优化先导化合物
  • 执行虚拟筛选
  • 构建QSAR模型
  • 进行分子对接
  • 建立药效团模型
  • 进行药物设计

常用工具

RDKit

  • 特点:开源、功能丰富
  • 适用:分子描述符、指纹、化学信息学
  • 优势:免费、易于使用

OpenEye

  • 特点:商业软件、高性能
  • 适用:分子对接、药效团建模
  • 优势:精确、高效

Schrodinger

  • 特点:商业软件、全面
  • 适用:药物发现、分子对接
  • 优势:功能全面、文档完善

MOE

  • 特点:商业软件、集成
  • 适用:药物设计、分子建模
  • 优势:集成环境、可视化

使用示例

分子性质预测(RDKit)

from rdkit import Chem
from rdkit.Chem import Descriptors, Lipinski

# 创建分子
mol = Chem.MolFromSmiles("CCO")

# 计算分子性质
mw = Descriptors.MolWt(mol)
logp = Descriptors.MolLogP(mol)
tpsa = Descriptors.TPSA(mol)
hbd = Lipinski.NumHDonors(mol)
hba = Lipinski.NumHAcceptors(mol)

print(f"分子量: {mw}")
print(f"LogP: {logp}")
print(f"TPSA: {tpsa}")
print(f"氢键供体: {hbd}")
print(f"氢键受体: {hba}")

Lipinski规则检查

from rdkit import Chem
from rdkit.Chem import Lipinski

def lipinski_rule(mol):
    mw = Lipinski.MolWt(mol)
    logp = Lipinski.MolLogP(mol)
    hbd = Lipinski.NumHDonors(mol)
    hba = Lipinski.NumHAcceptors(mol)
    
    if mw <= 500 and logp <= 5 and hbd <= 5 and hba <= 10:
        return True
    return False

mol = Chem.MolFromSmiles("CCO")
print(f"符合Lipinski规则: {lipinski_rule(mol)}")

虚拟筛选

from rdkit import Chem
from rdkit.Chem import AllChem
from rdkit.DataStructs import FingerprintSimilarity

# 参考分子
ref_mol = Chem.MolFromSmiles("CCO")
ref_fp = AllChem.GetMorganFingerprintAsBitVect(ref_mol, 2)

# 候选分子
candidates = ["CC(C)O", "c1ccccc1", "CCN"]

# 计算相似性
for smi in candidates:
    mol = Chem.MolFromSmiles(smi)
    fp = AllChem.GetMorganFingerprintAsBitVect(mol, 2)
    similarity = FingerprintSimilarity(ref_fp, fp)
    print(f"{smi}: {similarity}")

QSAR建模

from sklearn.ensemble import RandomForestRegressor
from sklearn.model_selection import train_test_split
from rdkit import Chem
from rdkit.Chem import Descriptors
import pandas as pd

# 准备数据
data = pd.read_csv("molecules.csv")
smiles = data["smiles"]
activity = data["activity"]

# 计算描述符
X = []
for smi in smiles:
    mol = Chem.MolFromSmiles(smi)
    mw = Descriptors.MolWt(mol)
    logp = Descriptors.MolLogP(mol)
    tpsa = Descriptors.TPSA(mol)
    X.append([mw, logp, tpsa])

# 分割数据
X_train, X_test, y_train, y_test = train_test_split(X, activity, test_size=0.2)

# 构建模型
model = RandomForestRegressor()
model.fit(X_train, y_train)

# 评估模型
score = model.score(X_test, y_test)
print(f"模型得分: {score}")

最佳实践

  1. 数据质量:确保数据质量高、可靠
  2. 描述符选择:选择与活性相关的描述符
  3. 模型验证:使用交叉验证和外部验证
  4. 多样性:确保分子多样性
  5. 可解释性:确保模型可解释
  6. 实验验证:实验验证预测结果

常见问题

Q: 什么是Lipinski规则?

A: Lipinski规则是预测口服药物吸收的五规则:分子量≤500、LogP≤5、氢键供体≤5、氢键受体≤10。

Q: 如何进行虚拟筛选?

A: 使用分子相似性、药效团或分子对接进行虚拟筛选。

Q: QSAR模型的局限性是什么?

A: QSAR模型依赖于训练数据,外推能力有限。

Q: 如何优化先导化合物?

A: 通过生物电子等排替换、骨架跃迁、官能团修饰等方法优化先导化合物。

资源

  • RDKit文档:https://www.rdkit.org/docs
  • OpenEye文档:https://docs.eyesopen.com
  • Schrodinger文档:https://www.schrodinger.com/documentation
  • MOE文档:https://www.chemcomp.com/MOE-documentation

兼容工具

Claude CodeOpenClawHermes Agent

数据来源:claude-scientific-skillsMIT 许可) | 查看上游来源

上游项目:K-Dense-AI/scientific-agent-skills / claude-scientific-skills | 收录时间:2026-08-20 | 更新:2026-08-20

本页面内容基于上游开源许可项目整理,仅供学习参考。AI铺子不对第三方内容承担责任, 详情请参阅免责声明