搜索PDB条目:从基础到高手
PDB里存着快20万个结构。怎么找到你要的那个?
很多人一上来就输入"COVID",结果出来几千个。嗯,这样效率太低了。我刚开始用PDB时也犯过这毛病,后来才摸清门道——搜索其实有套路,从简单到高级,层层递进。
基本搜索:入门级操作
PDB官网顶上有个搜索框。你往里面输东西,它就给你搜。最基本的用法是输入PDB ID——也就是那个4位字符的代码。
- 4HHB — 血红蛋白(经典结构)
- 1BNA — B型DNA双螺旋
- 6LU7 — COVID-19主蛋白酶
- 1UBQ — 泛素(蛋白质降解标识物)
基本搜索也支持关键词。比如你打"insulin",它会列出所有跟胰岛素有关的条目。但我得提醒你——这样做出来的结果非常粗糙。原因很简单:搜索词会匹配标题、作者、摘要、甚至配体名,相关性完全不可控。
我记得有次搜"zinc finger",结果里蹦出来一堆含锌离子的结构。那些只是意外结合了锌,跟锌指蛋白没半毛钱关系。所以基本搜索只适合两种情况:一是你知道确切ID,二是你想先看个大概。
高级搜索:这才叫真正干活
点一下搜索框旁边的"Advanced Search"链接。你会看到一个多字段表单。这才是PDB搜索的精华所在。
高级搜索主要字段:
- Structure Title (结构标题)
- Macromolecule Name (大分子名称)
- Author (作者)
- Sequence (序列搜索)
- Citation (文献引用)
- Ligand (配体/小分子)
- Experimental Method (实验方法:X-ray, NMR, Cryo-EM)
- Resolution Range (分辨率范围)
- Release Date (发布日期)
我个人习惯是先用"Macromolecule Name"限定分子名,再加一个"Experimental Method"筛选。比如搜"新冠病毒刺突蛋白",限定只显示冷冻电镜结构。这样出来的结果基本就直接可用了。
高级搜索的字段之间默认是"AND"关系。你也可以改成"OR",或者用"NOT"排除某些结果。举个例子:搜"kinase" AND NOT "mutation",就能去掉那些突变体结构。
序列搜索
这是我用得最多的功能之一。你贴上一段氨基酸序列,PDB会用BLAST算法在库里找相似结构。点"Sequence"选项卡,把FASTA格式序列贴进去就行。
>示例序列(人胰岛素A链)
GIVEQCCTSICSLYQLENYCN
它会返回序列相似度排序的结果。一般同源性在90%以上的,结构基本可以直接拿来用。低于30%就别勉强了——结构差异可能很大。
序列搜索对核酸也支持。你可以贴DNA或RNA序列去找对应的结构域。不过核酸结构比蛋白质少得多,命中率没那么高。
过滤条件:精准打击
搜完之后,结果页面左边有个过滤面板。这里才是真正缩小范围的地方。过滤器分成好几类,我挑几个最常用的讲讲。
| 过滤类别 | 常用选项 | 我的经验 |
|---|---|---|
| 分辨率 | 0-2Å(高分辨率) 2-3Å(中等) 3-6Å(低分辨率) |
做药物设计至少2.5Å以下 冷冻电镜3-4Å也够用 |
| 实验方法 | X-ray / NMR / Cryo-EM / 混合法 | NMR给的是一组模型 冷冻电镜近年增长最快 |
| 有机体 | 人 / 小鼠 / 大肠杆菌 / 酵母等 | 人源优先,注意同源性 |
| 发布年份 | 可滑动选择时间段 | 我常用"最近5年" 老结构可能有错误 |
| 分子类型 | 蛋白质 / DNA / RNA / 复合物 | 选"蛋白质/核酸复合物" 看相互作用时特别好用 |
分辨率这个事儿,我还是多说两句。X射线晶体学的分辨率数值越小越好。1.5Å能看到水分子,3Å就只能看清主链走向。做对接模拟的话,低于3Å的结构参考价值要打折。
- 高级搜索里填好分子名和实验方法
- 分辨率拉杆拖到3.0以下
- 有机体选"Human"
- 按分辨率升序排列结果
- 优先看排在最前面的
搜索结果的解读
结果页会显示每个条目的缩略图、标题、PDB ID、实验方法、分辨率、发布年份。点进去就能看到完整页面,包含文献信息、结构质量指标、以及可供下载的文件列表。
有一个小技巧:看结果列表的时候,注意看那个"聚合状态"。标记为"Biological Assembly"的,通常是完整的功能状态。"Asymmetric Unit"只是结晶时的最小重复单元,不一定有生物活性。
我曾经翻过一个膜蛋白结构,分辨率标着3.2Å,心想还行。仔细一看R-free值0.38——这个模型质量很差。所以除了分辨率,一定要看R值和R-free值。好的结构R-free应该在0.25-0.30之间。R/R-free差距太大也要警惕,可能有过度拟合。
还有一个过滤器很多人忽略了——"Refinement Details"里的R-free值过滤。你可以只显示R-free低于0.3的条目。这个组合拳打出来,能筛掉一半以上的低质量结构。
编程方式搜索(给有代码基础的同学)
如果你跟我一样嫌网页操作麻烦,可以用RESTful API直接查。PDB的搜索接口返回JSON格式结果,方便程序处理。
示例:查询人源胰岛素结构,分辨率优于2.0Å
GET请求:
https://search.rcsb.org/rcsbsearch/v2/query
请求体(JSON格式):
{
"query": {
"type": "group",
"logical_operator": "AND",
"nodes": [
{
"type": "terminal",
"service": "text",
"parameters": {
"attribute": "rcsb_entry_info.resolution_combined",
"operator": "less_or_equal",
"value": 2.0
}
},
{
"type": "terminal",
"service": "text",
"parameters": {
"attribute": "rcsb_entity_source_organism.scientific_name",
"operator": "exact_match",
"value": "Homo sapiens"
}
}
]
},
"return_type": "entry",
"request_options": {
"paginate": {
"start": 0,
"rows": 25
},
"sort": [
{
"sort_by": "rcsb_entry_info.resolution_combined",
"direction": "asc"
}
]
}
}
返回结果会给你一个PDB ID列表。拿到ID之后再用fetch接口获取详细信息。这部分我们后面章节再展开。
说白了,搜索这件事掌握三个要点就够了:知道搜什么(关键词)、知道怎么筛(过滤条件)、知道怎么看(质量指标)。做到这三点,PDB里几十万个结构你也可以精准定位到想要的条目。