返回Skills库

MolFeat

MIT
📊 数据知识
K-Dense-AI机器学习

用于机器学习的分子特征化(100+特征化器)。ECFP、MACCS、描述符、预训练模型(ChemBERTa),将SMILES转换为特征,用于QSAR和分子机器学习。

MolFeat

概述

MolFeat是一个用于化学信息学的分子表示和特征工程库。它提供了统一的接口,用于计算分子描述符、指纹、图嵌入和物理化学性质。该库支持多个后端,包括RDKit、Mordred、DGL-LifeSci、DeepChem等,适用于分子性质预测、虚拟筛选、QSAR建模、药物发现和化学信息学研究。

核心能力

1. 分子描述符

计算各种分子描述符,包括:

  • 物理化学性质:分子量、LogP、TPSA、氢键供体/受体
  • 拓扑描述符:Wiener指数、Zagreb指数、Balaban指数
  • 电子描述符:部分电荷、电负性、极化率
  • 几何描述符:分子体积、表面积、形状指数
  • 量子化学描述符:HOMO/LUMO能级、偶极矩

2. 分子指纹

生成多种分子指纹,包括:

  • 基于子结构的指纹:MACCS密钥、PubChem指纹
  • 基于路径的指纹:Morgan指纹(ECFP)、RDKit指纹
  • 基于拓扑的指纹:拓扑指纹、原子对指纹
  • 基于药效团的指纹:药效团指纹、Tanimoto相似性

3. 图嵌入

使用图神经网络生成分子嵌入:

  • 图卷积网络(GCN):基于图的卷积操作
  • 图注意力网络(GAT):基于注意力的图神经网络
  • 消息传递神经网络(MPNN):基于消息传递的神经网络
  • 预训练模型:使用预训练的分子表示模型

4. 物理化学性质

计算分子的物理化学性质:

  • 脂溶性:LogP、LogD
  • 溶解度:LogS、水溶性
  • 渗透性:Caco-2渗透性、血脑屏障渗透性
  • 极性:TPSA(拓扑极性表面积)
  • 反应性:反应性基团、代谢稳定性

何时使用此技能

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

  • 计算分子描述符和指纹
  • 进行分子性质预测
  • 执行虚拟筛选
  • 构建QSAR模型
  • 进行药物发现研究
  • 执行化学信息学分析
  • 生成分子嵌入用于机器学习
  • 比较分子相似性

安装

# 基本安装
pip install molfeat

# 带有所有依赖项的安装
pip install molfeat[all]

# 带有特定后端的安装
pip install molfeat[rdkit,mordred,dgl]

使用示例

计算分子描述符

from molfeat.calc import FPCalculator
from rdkit import Chem

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

# 计算描述符
calc = FPCalculator("desc2d")
descriptors = calc(mol)

print(f"分子量: {descriptors['MolWt']}")
print(f"LogP: {descriptors['MolLogP']}")
print(f"TPSA: {descriptors['TPSA']}")

生成分子指纹

from molfeat.calc import FPCalculator

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

# 生成Morgan指纹(ECFP)
calc = FPCalculator("ecfp:4")
fingerprint = calc(mol)

print(f"指纹长度: {len(fingerprint)}")
print(f"指纹: {fingerprint}")

计算图嵌入

from molfeat.trans.graph import GraphTransformer

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

# 创建图转换器
transformer = GraphTransformer("gin_supervised")

# 计算图嵌入
embedding = transformer(mol)

print(f"嵌入维度: {embedding.shape}")

批量计算

from molfeat.calc import FPCalculator
from rdkit import Chem

# 创建分子列表
smiles_list = ["CCO", "CC(C)O", "c1ccccc1"]
mols = [Chem.MolFromSmiles(smi) for smi in smiles_list]

# 计算指纹
calc = FPCalculator("ecfp:4")
fingerprints = [calc(mol) for mol in mols]

print(f"指纹数量: {len(fingerprints)}")

支持的后端

RDKit

  • 描述符:2D和3D描述符
  • 指纹:Morgan、RDKit、MACCS、AtomPair
  • 性质:物理化学性质

Mordred

  • 描述符:1800+分子描述符
  • 覆盖:物理化学、拓扑、电子、几何

DGL-LifeSci

  • 图嵌入:GCN、GAT、MPNN
  • 预训练模型:ChemBERTa、MolBERT

DeepChem

  • 图神经网络:GraphConv、Weave、MPNN
  • 分子表示:分子图、分子指纹

最佳实践

  1. 选择合适的描述符:根据任务选择最相关的描述符
  2. 标准化分子:在使用前标准化分子结构
  3. 处理缺失值:处理缺失或无效的描述符值
  4. 特征缩放:对描述符进行标准化或归一化
  5. 验证结果:验证计算结果的准确性
  6. 批量处理:使用批量处理提高效率
  7. 缓存结果:缓存计算结果以避免重复计算

常见问题

Q: 如何选择合适的指纹?

A: 根据任务选择。ECFP适用于相似性搜索,MACCS适用于快速筛选。

Q: 如何处理缺失的描述符?

A: 使用插值、删除或填充方法处理缺失值。

Q: MolFeat支持哪些分子格式?

A: 支持SMILES、SDF、MOL等多种格式。

Q: 如何计算3D描述符?

A: 需要先生成3D构象,然后计算3D描述符。

资源

  • MolFeat文档:https://molfeat-docs.datamol.io
  • GitHub:https://github.com/datamol-io/molfeat
  • RDKit文档:https://www.rdkit.org/docs
  • Mordred文档:https://mordred-descriptor.github.io

兼容工具

Claude CodeOpenClawHermes Agent

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

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

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