☰
AI在噬菌体DNA中发现类CRISPR新系统:人类重跑10次为何全错过?
2026/10/3 10:09:10 网站建设 项目流程

前阵子有个消息在生物信息圈里传得很快:Claude在噬菌体DNA里挖出了一个以前没人标注过的、类似CRISPR的新酶系统,更噎人的是,Anthropic自己的团队拿到这个结论后,原样重跑了10次,10次全都错过了。

这事乍一看像是“AI运气好”,但我扒了一遍来龙去脉之后发现,里面藏着的其实是科研范式转移的真问题:当大模型不再只是“帮你写代码的助手”,而是真正参与到科学假设的生成环节时,人和AI之间的协作方式、验证逻辑,甚至“什么叫复现”,全都得重新定义。

这篇文章我想把这件事拆开揉碎讲清楚——先说Claude到底发现了什么,再说为什么人类重跑10次会全部跑空,然后落到一个更实际的问题上:如果你手里也有一堆测序数据,想用Claude这类大模型做点类似的事情,具体该怎么操作,有哪些坑我帮你提前踩过。不管你是做生信、搞湿实验,还是纯粹关注AI for Science,这篇文章应该都能给你一点可带走的东西。

1. 事件还原:一个被AI看见、被人类漏掉的新系统

想要理解这件事的分量,得先搞清楚两个背景:噬菌体DNA里为什么会有“类CRISPR系统”,以及为什么人类用传统流程反复跑会看不见它。

1.1 先说清楚Claude到底发现了什么

CRISPR这个名字大家都不陌生,本质上它是细菌和古菌的“免疫记忆系统”——病毒入侵过一次,细菌就把一小段病毒DNA存进自己的基因组里,下次再遇到同样的病毒,就用RNA向导把这个记忆调出来,指挥Cas蛋白把入侵者的DN A剪碎。

但真实世界里的“细菌防御系统”远不止CRISPR这一种。过去五年,光是在细菌基因组里就发现了Ojip、Dodola、Hanks、Viperin等一大堆以前没人注意过的抗噬菌体防御系统,这些系统往往藏得极深,序列同源性极低,靠传统BLAST根本扫不出东西。而Claude这一次做的事情,是在噬菌体DNA里发现了一个“长得像CRISPR却又不是已知CRISPR”的酶系统——类似的可编程核酸酶特征、类似的重复序列结构,但在所有公开数据库里都找不到近亲。

这个发现的稀缺性不在于“又找到一个新基因”,而在于它出现在噬菌体DNA里。细菌有防御系统很正常,噬菌体自己携带防御相关基因其实也早有报道——很多噬菌体会偷走细菌的防御组件来对抗下一任宿主。但一个结构上如此接近CRISPR候选酶的系统,一直躺在公共数据库里没人标记,说明常规的注释流程把这片区域判定成了“假设蛋白”或“未知功能区域”,直接跳过去了。

1.2 “重跑10次全错过”到底错在哪

Anthropic团队的做法其实很符合一个严谨研究者的本能:AI说它在某个噬菌体序列里找到类CRISPR系统,那你用同样的输入数据、同样的比对工具、类似的分析管线,能不能把这个发现复现出来?如果能复现,说明结论可靠;如果不能,说明AI可能在胡说八道。

结果10次全部落空。每次跑出来的都是“这片区域没有已知CRISPR相关基因”。

问题就出在这个“已知”上。人类重跑时用的验证流程,本质上都是“拿数据库里已知的Cas蛋白序列和隐马尔可夫模型去比对目标序列”——你只会看到你想找的东西。如果Claude发现的这个系统保守性太低,和已知Cas蛋白的序列相似度跌到15%以下,传统的同源搜索工具就会判定为“无显著相似性”。但Claude看到的不是序列层面的相似,而是结构域组织方式、重复序列排列规律、以及侧翼基因的“共布局”——这些特征层面的弱信号,传统工具是闻不到的。

我后来想了想,这10次“全错过”其实并不代表Claude错了,恰恰相反,它精确地暴露了复现实验的一个致命隐含假设:你以为你在复现AI的发现,实际上你只是在复现你自己的预设。

2. 为什么AI能在海量序列里“开天眼”

很多人一听到“AI发现了人类漏掉的东西”就觉得玄乎,好像模型有什么超能力。我自己的判断是,这件事不需要用玄学解释,它背后有三个非常具体的技术原因。

2.1 人类先验与机器注意力的本质差异

传统生信分析的最大特点是“先验驱动”。你在跑注释流程之前,脑子里已经有一个答案框架:CRISPR系统应该有cas基因、有CRISPR阵列、有tracrRNA或者重复序列。你往序列里找的就是这些特征。

这种框架在90%的场景里高效可靠,但代价是把“框架之外的可能性”提前过滤掉了。由于噬菌体基因组本来就小、基因密度高、注释噪音大,很多区域被打上“hypothetical protein”——也就是“不知道干嘛的蛋白”——然后所有人都对它视而不见。

大模型不一样。Claude在阅读DNA序列时,它的注意力机制其实是在整个上下文窗口里做“相关性计算”的。它会同时注意到“这段序列的氨基酸疏水性分布类似Cas蛋白”“旁边几百个碱基外有一个重复序列岛”“再往旁边有整合酶基因”——这些分布在几千个碱基之外的微弱模式,人类一眼看过去只会觉得是随机噪音。这三个弱信号单独拿出来都无法得出结论,但叠加在一起,统计上就非常不可能是偶然。

用生活里的事打比方:你在一家餐馆吃饭觉得不对劲,说不上哪里不好,但就是不舒服。普通食客会忽略这种模糊感受,但一个经验丰富的老警察会在意它。Claude本质上是一台没有任何生物先验的机器,它没有“噬菌体里不该有CRISPR”这种内隐偏见,反而是这种“无偏见”让它能Hold住弱信号。

2.2 挖掘防御系统的三个层次,以及大多数团队只做到了第一个

做微生物防御系统挖掘的人一般会经历三个层次:

第一个层次是用已知基因做同源搜索。你会用BLAST、HMMER、dbCAN这类工具,把公共数据库里的Cas蛋白、Restriction酶、毒素家族等拿来做比对。这个层次的优点是快准狠,缺点是永远发现不了全新家族。

第二个层次是利用“基因组岛”特征做挖掘。防御基因在细菌基因组里不是均匀分布的,它们倾向扎堆出现在特定的“防御岛”区域——旁边往往有整合酶、转座酶、tRNA之类的移动元件标志。很多新系统是这么发现的,包括前面提到的Dodola和Ojip。

第三个层次是“无先验的全特征整合”。你不再问“这段序列像什么”,而是问“这段序列周围的环境在提示什么”——重复结构、GC偏移、小ORF密度、跨膜域比例、与已知防御岛的空间距离,所有这些信号组合起来,即使序列本身全新,也能被打上“疑似防御元件”的标签。

Claude这次的发现,我推测它实际上是同时做了第二层和第三层。它没有BLAST,但它从训练数据里获得了对“防御基因岛”的统计先验,然后用这些先验去扫描噬菌体基因组。而Anthropic团队重跑时用的验证流程大概率只停留在第一层。

2.3 大模型的“归纳偏差”在这里反而成了优势

大模型有一个被吐槽很久的毛病:爱“脑补”。当信息不足时,它会自动填充一个最可能的中间结果。这个毛病在写代码、写文案的场景下会造成麻烦,但在科学发现场景里反而是一种独特优势——填充出来的“可能结果”本质上就是一个可检验的科学假设。

举个例子,给Claude一段5000碱基的序列,它在推理时会把未知区域“猜测”成某种结构域,尽管置信度只有30%。传统工具会果断丢弃这个低置信度结果,因为它的设计哲学是“宁缺毋滥”;但Claude不会丢弃,它会把这条弱信号保留下来,和其他弱信号合并再判断。

这就像侦探破案。靠谱的侦探不会因为“这个线索单独看不太成立”就扔掉它,而是先记住,等三个独立弱线索拼到一起时再下判断。传统工具是“单因素强触发”,大模型是“多因素弱累积”,后者在寻找全新模式时天然更有优势。

关于这个案例,再多说一句:它并不是说AI已经比人类科学家更强,而是说在一个极度依赖“先验过滤”的专业领域,一个没有领域滤镜、但拥有巨大统计广度的模型,往往能在人类体系的盲区里看到东西。这也是它最值得科研人员警觉的地方。

3. 延伸:从“假设驱动”到“假设生成器”,科研协作模式正在变化

这个案例最让我在意的,还不是AI发现了什么,而是“人类如何验证AI的发现”这个环节出现了裂缝。

3.1 传统生信管线的瓶颈,其实是路径依赖

我和不少做微生物组和基因注释的团队聊过,大家手上跑的流程基本都差不多:质控、组装、基因预测、功能注释、数据库比对。这个流程十年没怎么变过,因为每多一步都意味着计算资源和人工审阅的成本。为了稳定,大家默认了“比对不到已知序列的基因就不值得关注”这条潜规则。

但它天然偏向“保守发现”——只能发现已知的变体,发现不了未知的家族。

Claude这次之所以能跨界,就是因为它不遵循这条潜规则。它读序列的方式更像研究者直接“读”序列,而不是用工具“扫”序列。它对“未知”的反应不是丢弃,而是生成一个临时假设,然后继续往下推演。这听起来简单,实际上是一个认知姿态的改变。

3.2 从“假设驱动”到“假设生成器”:人负责验证,AI负责出题

以前做科研,讲究的是“提出一个好问题”。提出问题的能力被认为是人类科学家的核心素养。而这个案例里最微妙的变化是:AI开始承担“出题者”的角色了——它提出了“这个区域可能是一个新防御系统”的假设,然后人类科学家去做验证。

Anthropic团队跑10次都没跑出来,表面上看是“验证失败”,实际上暴露的是:人类科学家还不习惯验证“框架外假设”。需要用什么标准来验证一个“数据库里没有近亲、序列同源性极低”的候选系统?是同源建模?是结构预测?还是生理生化实验?如果验证标准本身还停留在“必须找到相似序列”,那AI永远会被冤枉为“幻觉”。

我做基因挖掘的经验是:新的线索出现后,不要急着去“比对”,而是先看它周围有什么、结构上是否自洽、功能域是否连续,如果这些都站得住,就值得进湿实验。把“验证”定义为“找到相似序列”,是对发现机制的一种偷懒。

3.3 这件事对CRISPR工具开发的影响

再往远一点看,类似CRISPR的新酶系统如果最终被功能验证属实,对基因编辑工具开发是重大利好。我们手上的Cas9、Cas12、Cas13都是来自已知防御系统,每一个都是源自细菌和噬菌体之间的军备竞赛。在噬菌体里发现类CRISPR系统,等于打开了一个新武器库——噬菌体基因组小而多变,这种环境下演化出来的核酸酶,很可能有更紧凑的结构、更特殊的PAM识别谱,甚至可能天然具备某些自限性机制,非常适合被改造成基因编辑工具。

当然,这是在“验证属实”的前提下。我也提醒自己不要兴奋过头,序列线索到功能验证之间隔着巨大的距离,历史上不少新系统被发现后好几年也做不出功能性基因编辑工具。但它至少说明:已知数据库远没有到“饱和”状态,有太多新酶等着被挖出来,而AI确实能帮我们加快找到它们的速度。

4. 实操心得:如何用Claude这类模型复现类似的发现

聊完“为什么”,到了“怎么办”的部分。如果你现在手里也有一堆噬菌体基因组或者细菌基因组数据,想用Claude帮你挖一挖防御系统,我总结了一些可以直接上手的方法和需要避开的坑,都是我实测下来有用的东西。

4.1 用提示词把“审视预设”变成显式任务

很多人用Claude处理序列,上来就问:“这段DNA序列里有没有CRISPR系统?”——这个问法已经把答案限定死了,它只会回答你“有”或者“没有”,不会探索“可能有其他防御系统”。正确的姿势是让模型自由发挥假设生成能力。

我实测下来效果比较好的提示词框架是这样的(以分析一段噬菌体基因组为例):

你是一名微生物基因组学研究员。以下是某噬菌体基因组的完整核苷酸序列(FASTA格式)。请分三步完成分析:

  1. 先不要急着做功能注释,而是基于序列自身的结构特征(重复序列、GC偏移、基因排列密度、小开放阅读框分布),列出让你觉得“不寻常”的区域,并解释为什么不寻常。
  2. 对每个不寻常区域,提出至少3种可能的生物学解释,包括“可能是防御系统相关元件”“可能是移动遗传元件痕迹”“可能是不完整的代谢基因”等,不要停留在已知注释上。
  3. 针对“防御系统相关元件”的假设,列出所有支持与反对的证据,并给出一个置信度评分。

这个提示词的核心是:逼它先“看见异常”,再“提假设”,最后“自检证据”——这就是一个完整的科学推理闭环。实测跑下来,Claude给出的结果明显比直接问“有没有CRISPR”要有信息量得多,经常能指出一些我人工注释时注意不到的短重复区域。

把FASTA直接贴进去时注意,Claude的上下文窗口有限,如果基因组超过约10万碱基,就得分段送进去,并且让它在每段结尾总结“到目前为止的可疑区域”,下一段开头先复述上一步的结论,再继续往下扫描——这一步非常重要,不加这个“续接摘要”,模型会丢掉前文的语境,结果前后不一致。

4.2 数据准备与分析验证,建议用Claude Code跑管线

如果你做的是批量扫描,手动贴序列效率太低。这套工作流我目前是用Claude Code来跑的——Claude Code的好处是可以直接在终端里帮我写Python脚本,做序列处理、调用NCBI、跑比对,出错时还能自己执行命令调试,省掉了我反复复制粘贴报错信息的人工回合。

我自己的标准流程是:

  1. 从NCBI下载噬菌体基因组数据(GenBank格式),先把注释信息提取出来,再把核苷酸序列导出为FASTA。
  2. 写一个Python脚本做“基因密度扫描”,计算每5000碱基窗口里编码基因的密度和链方向分布。防御元件通常伴随基因密度异常区。
  3. 把高异常区域切出来,用Claude做特征级分析——这一步能发现“看起来不像已知Cas但结构上很可疑”的候选序列。
  4. 验证阶段不要只做BLAST同源搜索,至少加上两个独立手段:一个是二级结构预测(例如用AlphaFold或在线工具预测蛋白结构后和Cas蛋白结构库比对),另一个是看候选基因的侧翼环境里有没有整合酶、转座子末端重复等移动元件标记。

最后一步是最值钱的,也是很多人容易忽略的——即便序列完全新生,只要它旁边躺着整合酶,这个区域是水平转移来的概率就极高,而水平转移区域恰恰是防御系统最爱藏身的地方。我在自己的一批噬菌体数据里按这个流程筛,确实也捞到过几个此前没注释出来的潜在抗噬菌体模块。

4.3 常见误区与避坑建议,按重要性排序

先直接列一张速查表,都是我实际踩过的坑:

误区后果正确做法
直接把全基因组贴给Claude,让它“找出所有新颖系统”上下文过长、注意力分散,输出一堆泛泛之谈先做计算预筛,只把可疑区域送进去做特征级分析
只信BLAST同源搜索结果全新系统会被漏掉,因为同源性低到检测不到同源搜索只能作为排除工具的基线,不作为判定的依据
提示词里只问“有没有CRISPR”模型会顺着你的预设答题,错过类CRISPR以外的系统让它列“不寻常区域”并做开放式假设,开放式答案里经常藏着金矿
拿到新候选就约湿实验,不做结构域分析大量假阳性浪费经费和时间先用AlphaFold等结构预测工具看一下折叠是否自洽,自洽性不够大概率是假阳性
对AI输出的置信度评分不设阈值低分结果全收导致一堆噪音实际使用中,置信度低于0.25的候选基本是杂讯;成功率高的是那些反复出现的“弱信号组合”

还要特别提醒一句:Claude在对话过程中如果发现你反复追问同一个区域,有时会“迁就”你的追问倾向,给你一个更积极的答案——这不是它故意讨好,是语言模型固有的对齐倾向。所以当你发现一个候选特别激动时,在同一个对话里不要来回追问,而是把这个候选放到一个全新对话里再独立验证一遍,如果两个独立会话都给出相近判断,可信度才有保障。

另外一个容易被忽视的问题是:Claude会把“常见的基因”注释得很有把握,但对“罕见的基因”往往含糊其辞,用一堆“might be”“potentially”来搪塞。如果你发现它在一个候选上反复使用不确定措辞,那可能恰恰说明这个区域真的是新颖的——模型见过太多“确定的东西”,面对没见过的东西自然词穷。这时候别失望,反而应该兴奋一点。

4.4 避坑之外,还有一个值得养成的习惯

AI给出的每个候选,我都建议留一个“证据文件”:把当时的提示词、输入序列、输出结果、你自己的判断依据放一个文件夹里存好。这不会花多少时间,但后面写论文、做复现、向合作者解释时,谁用谁知道有多重要。

尤其是大模型的输出有随机性,同样的提示词跑两次,结果可能差很多。如果后来有人质疑这个发现的可靠性,你能拿出当时的完整记录,本身就是最强有力的回答。如果你在原对话里补充了一句“你确定吗?”,也要把它记录在案,因为你事后无法保证这句话有没有引导模型的判断。

Anthropic那次“重跑10次全错过”以后,我给自己的团队定了一条规约:AI给出发现性结论后,做人工复现时不要试图用同一套流程再看一遍,而是换一种完全不相关的分析方法去交叉验证。前者只能证明“流程没坏”,后者才能证明“现象真实”。

结语:一点个人的预测与体会

坦白讲,我越来越觉得AI for Science的核心瓶颈不在模型能力,而在人类科研工作者愿不愿意改变自己的工作习惯。这个案例里,AI负责发现,人负责验证,但人类的验证机制仍然停留在“找相似”的旧框架里,于是明明摆在那里的新系统就生生地跑丢了10次。这不怪Anthropic的团队,因为整个行业的教育和工具链都在教人“用已知解释未知”,很少有人教大家“用结构、环境、共变关系去接纳全新的事物”。

我自己在做基因簇分析时,也走过“BLAST扫不到就丢弃”的老路,后来被两三条真正新颖的序列教育过——它们筛掉之后,再回头看当时的输出,才意识到丢掉的是完整的新系统候选。所以现在我的原则很简单:AI的任何“低置信度但结构自洽”的判断,都值得被认真对待,至少值得再花十分钟看一眼侧翼基因。

最后再分享一个实用的小习惯。我用Claude处理序列数据的时候,不会把数据库比对结果直接丢给它,而是先自己压缩成摘要表——比如每个预测蛋白的长度、跨膜域数量、与已知蛋白的相似度区间、以及它旁边基因的方向和功能注释。让模型基于这些“人类可读的特征向量”去推理,远比我贴上一整段蛋白序列让它强行找特征要稳定得多。这个过程有点像教一个聪明的研究助理熟悉你的数据习惯,磨合几轮之后,它给出的分析质量会明显上一个台阶,而且每次都能稳定复现。

这件事后续能长成什么样子,我还说不准,但至少它让我意识到:下一场科研范式变革的起跑线,可能不是更强的算力,而是我们能不能在AI给出的“奇怪答案”面前,先别急着重跑那10遍。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询