2. 基础知识:生物学背景——药物作用机制、靶点类型
各位同行,这一章咱们聊聊生物学背景。别觉得这是“文科内容”,做网络分析如果不懂靶点怎么工作,代码写得再漂亮也是白搭。做药物-靶点网络分析,本质上是在数据层面还原生物学故事。这个故事的主角就两个:药物和靶点。
2.1 药物的作用机制:它到底怎么干活?
说白了,药物进到人体之后,不是乱撞的。它有特定的“工作方式”。我个人习惯把作用机制归纳成几类,这样在做网络分析时,节点和边的语义就清楚很多。
核心观点:大多数药物通过结合靶点并改变其功能来产生效应。这种结合通常是“非共价”的,也就是可逆的。记得有一次我跑聚类分析,发现一批药物全聚在一起,后来一查全是不可逆抑制剂,这才知道机制特征对网络拓扑影响这么大。
常见的机制分类:
- 激动剂 (Agonist):它跟靶点结合后,激活靶点,让它干更多的活。就像一个“油门”。
- 拮抗剂 (Antagonist):它跟靶点结合后,阻止其他物质(比如内源性配体)跟靶点结合。相当于“刹车”或“堵住钥匙孔”。
- 抑制剂 (Inhibitor):本质上跟拮抗剂类似,但通常用于描述对酶或离子通道的抑制。我以前一个项目里,把抑制剂和拮抗剂当成一类去建网络,结果富集分析跑出来一堆假阳性,后来才老老实实分开标注。
- 调节剂 (Modulator):它不是简单的开或关,而是调节靶点的活性水平。比如别构调节剂,它结合在别的位置上,让靶点对天然配体的反应变敏感或变迟钝。
- 部分激动剂 (Partial Agonist):它激活靶点,但激活强度不如内源性物质。这在神经精神类药物里很常见,可以避免过度激活。
避坑指南:我刚开始做网络图的时候,把“机制”列直接当字符串用。比如“抑制剂”和“拮抗剂”在文本上不同,但在很多数据库里它们常被混用。建议你在数据预处理阶段,先做一下机制术语归一化。比如统一成“Antagonist”或“Inhibitor”的大类,否则网络中的“假异质性”会让你查很久原因。
2.2 靶点类型:我们要分析的对象有哪些?
靶点不是只有蛋白质。很多初学者以为靶点就是“一个基因”或者“一个蛋白”,其实不然。你想想看,如果你分析的网络里,节点类型混了基因、RNA、蛋白质复合体,而你只用一套规则处理,那结果肯定对不上。
我习惯把靶点类型分为以下几大类,这在构建异质性网络时很关键:
| 靶点类型 | 常见例子 | 网络分析中的特点 |
|---|---|---|
| 蛋白质 (Protein) | 酶、受体、离子通道、转运蛋白 | 最丰富,节点度分布广,常作为Hub节点 |
| 基因/核酸 (Gene/Nucleic Acid) | DNA、mRNA、miRNA | 多见于化疗药物(如DNA嵌入剂)或RNA靶向药 |
| 蛋白质复合体 | 核糖体、RNA聚合酶 | 网络中的超节点,常连接多个亚基 |
| 脂质/糖类 | 细胞膜磷脂、脂多糖 | 较少见,但抗菌药物靶点常是细胞壁成分 |
小技巧:我个人习惯在数据表中额外加一列 `target_type_abbr`,例如把“Gene Product”简化为“PRO”,把“Nucleic Acid”简化为“NA”。这样在后续用颜色编码节点时,直接映射这一列就行,避免每次都要用if-else判断。
2.3 从生物学到网络:信息如何映射?
好,知道了药物怎么工作、靶点是什么,下一步就是把这些知识映射到网络图的节点和边上。这里我归纳了一个小流程,你可以参考:
2.4 常见的靶点-药物关系数据库
做分析总得有个数据源。我列出几个我常用的库,它们的数据结构比较适合直接拿来做网络:
DrugBank:结构化最好,药物-靶点关系明确,有作用机制注释。
下载XML格式后,解析 drug-target 部分即可。
DGIdb:专门做药物-基因交互,整合了多个来源。
适合与基因表达数据联用。
STITCH:更偏向化学-蛋白互作,覆盖多物种。
注意它的置信度分数,我一般只取 > 0.7 的记录。
TTD (Therapeutic Target Database):治疗靶点数据库,分类清晰。
适合做疾病-靶点-药物三层网络。
BindingDB:结合亲和力数据多,适合做定量分析。
如果要做边权重的网络,这里的数据很好用。
2.5 小作业:画一个简单的“单药物-多靶点”网络草图
嗯,光看理论没用。我建议你动手做一步:拿一个你熟悉的药物(比如伊马替尼),去DrugBank查它的靶点列表,记下每个靶点的类型(是激酶?还是转运蛋白?)。然后在纸上或者画图软件里,把药物画成中心节点,靶点画成外围节点,边标注作用类型。
这一步能帮你直观理解为什么网络分析要区分靶点类型——因为不同类型的靶点,在网络中的连接模式完全不同。