第1章 课程导论:分子指纹与药物筛选概述
1.1 为什么我们需要分子指纹?
先问大家一个问题:给你两个分子,你怎么知道它们像不像?
做药物筛选的人每天都要回答这个问题。我们手里可能有几百万个化合物,要从中找出能和靶点结合的苗头分子。一个一个地试?不可能。所以我们需要一种方法,把复杂的分子结构变成一串数字或者一段编码——这就是分子指纹。
我刚开始做这个方向的时候,对这种“把分子搞成编码”的做法有点抗拒。你想想看,一个三维的分子结构,压缩成几百个比特,信息不会丢吗?后来跑了一个项目,需要从两百万个化合物里筛出跟已知活性分子相似的候选物。用指纹做相似性搜索,几秒钟就出结果了。嗯,从那以后我再也没怀疑过指纹的价值。
一句话理解分子指纹: 把分子结构编码成一串固定长度的二进制位串或计数向量,通过比较这些编码来判断分子之间的相似度。
3 药物筛选的现实困境
药物筛选不是一件浪漫的事。说白了,它就是大海捞针。我来列几个真实数字:
- 一个中型化合物库:10万~200万个分子
- 筛选一个靶点需要的实验成本:几十万到几百万
- 从筛选到临床前候选化合物的成功率:约0.1%
所以,我们需要用计算的方法先做一轮“虚拟筛选”。把不可能靠实验测完的分子库,先用计算机模型过滤一遍。分子指纹就是虚拟筛选里最基础、最常用的工具之一。
3.3 本课程会讲什么?
这门课一共30章,我打算带着大家从原理到实战,把分子指纹在药物筛选里的应用讲透。核心路径是这样的:
- 基础篇(第1~8章): 指纹的定义、常见类型、相似度计算方法。
- 工具篇(第9~14章): 怎么用RDKit、Open Babel这些工具生成指纹。
- 实战篇(第15~26章): 用指纹做相似性搜索、聚类、虚拟筛选、QSAR建模。
- 进阶篇(第27~30章): 指纹的局限、改进方法,以及与深度学习指纹的对比。
一句话总结课程目标: 让你能独立完成一个基于分子指纹的药物筛选项目——从数据准备、指纹计算、模型训练到结果解释。
1.4 知识体系与核心逻辑
下面这张图展示了第一章涉及的核心概念和它们之间的关系。我习惯在开课之前先让学员看一遍整体视图,避免后面越学越糊涂。
1.5 学习路径建议
这门课我设计成“从原理入手,以项目结尾”。给不同基础的学习者几条路径建议:
| 基础背景 | 推荐路径 | 预估投入时间 |
|---|---|---|
| 有Python基础,不了解化学信息学 | 第1~16章按顺序,重点在RDKit操作 | 30~40小时 |
| 有化学背景,编程较弱 | 先看第1~8章理解原理,再补Python基础后看9~14章 | 40~50小时 |
| 有药物筛选经验,想系统掌握指纹 | 快速过第1~8章,重点在15~30章项目案例 | 20~30小时 |
我的建议: 别跳过任何代码实践。运行指尖下的代码,改动一个参数看结果变化,比读十遍教材都管用。
1.6 你需要准备的环境
从下一章开始,我们就要动手了。先把环境搭好:
# 推荐使用 conda 创建独立环境
conda create -n fingerprint python=3.10
conda activate fingerprint
# 安装核心依赖
conda install -c conda-forge rdkit numpy pandas matplotlib scikit-learn
pip install openbabel-wheel # Windows 用户用 openbabel-wheel
我在项目里踩过一个大坑:用pip直接装RDKit,结果装了一个不完整版本,很多功能跑不了。所以建议一律用conda装RDKit,稳妥。
1.7 这一章我们要记住什么?
把知识点收一下:
- 分子指纹:把分子结构变成固定长度的编码,用于快速比较。
- 相似度度量:Tanimoto系数是药物筛选里最常用的,没有之一。
- 核心应用:虚拟筛选、聚类、QSAR建模——三个方向贯穿课程。
- 课程路径:基础→工具→实战→进阶,30章走完全程。
好,第一章就讲这些。把环境搭好,下章我们开始写第一行指纹计算的代码。