用途:medchem 是面向药物发现流程的分子过滤与优先级排序 Python 库,用于对化合物库进行类药性评估、结构警示检测和化合物质量筛查,帮助进行苗头化合物筛选与先导化合物优化。
主要能力:medchem.rules 提供多种成药性规则,包括 Lipinski 五规则、Oprea、CNS、leadlike(soft/strict)、rule of three、Reos、drug、Veber、golden triangle 及 PAINS;medchem.structural 提供 Common Alerts、NIBR 过滤器与 Lilly Demerits(275 条规则,超过 100 分被拒);medchem.functional 提供便捷过滤函数;medchem.groups 检测铰链结合基团、磷酸结合基团、Michael 受体等反应性基团,并支持自定义 SMARTS;medchem.catalogs 提供官能团、保护基、常用试剂与片段目录;medchem.complexity 计算 Bertz、Whitlock、Barone 等复杂度指标;medchem.constraints 支持分子量、LogP、TPSA、可旋转键范围约束;medchem.query 提供查询语言组合条件。
使用方式:安装命令为 uv pip install medchem。典型用法是先以 datamol 将 SMILES 转为分子对象,再构造 RuleFilters 或结构警示过滤器,通过 n_jobs=-1 并行批量处理分子列表,得到含 pass/fail 及明细的结果字典,可写入 DataFrame 或 CSV。
适用场景:化合物库初筛、先导优化阶段的严格过滤、特定官能团或骨架检索、按复杂度阈值筛选。
限制:资料未提供收费、平台与效果数据;规则和过滤器具有上下文特异性,仅可作为结合领域经验的指导,已上市药物常违反标准规则,前药可能有意违反成药性规则,不应盲从过滤结果。