1. 这条消息为什么让生物信息圈和AI圈同时坐不住了
2025年下半年,一条消息在计算生物学和AI辅助科研两个圈子里同时炸开了锅:Claude在自主探索过程中,发现了一个此前未被标注的、与CRISPR系统相关的候选酶系统。消息的核心信息量其实就两层:第一,AI在没有人类手把手引导的情况下,从海量基因组数据里"捞"出了一套看起来像CRISPR相关系统的基因簇;第二,目前还没人知道这套系统在自然界里到底干什么用。张锋的点评很克制——"值得研究"。
这四个字在CRISPR领域的分量,做过基因编辑的人心里都清楚。CRISPR-Cas系统的发现史本身就是一部"先看到奇怪序列,再花十年搞懂功能"的历史。从1987年日本学者在大肠杆菌里看到那段重复序列,到2012年变成基因编辑工具,中间隔了二十多年。所以当一个AI系统说"我找到了一套新的候选系统"时,真正让人兴奋的不是"找到了",而是"它可能是什么"。
这篇文章面向三类人:一是做基因组挖掘和CRISPR系统进化的研究者,二是对AI辅助科学发现感兴趣的工程师,三是想理解"AI到底能不能做真科研"的普通技术读者。我会把这件事拆成几个层面来讲:AI是怎么"发现"的、CRISPR新酶系统发现的底层逻辑是什么、为什么"不知道能干什么"反而是最有价值的状态、以及如果你自己想复现类似的挖掘流程,具体该怎么动手。关键词里出现的MinCED、DNA、LeetCode这些词,我也会在合适的位置解释它们和这件事的关系——有些是工具,有些是巧合,有些是读者搜索行为的副产品。
先说结论:这件事的真正价值不在于"AI又赢了",而在于它展示了一条可复现的、从序列到候选系统的自动化挖掘路径。这条路径以前靠博士生手动跑BLAST和HMMER,现在可以部分交给AI agent来编排。但"发现候选"和"证明功能"之间,隔着一条巨大的实验鸿沟,这也是张锋说"值得研究"而不是"重大突破"的原因。
2. Claude到底"发现"了什么:从序列噪声里捞出信号
2.1 CRISPR系统的序列特征:为什么它能在基因组里被"认出来"
要理解AI发现了什么,得先知道CRISPR系统在DNA序列上长什么样。一个典型的CRISPR-Cas locus通常包含几个标志性组件:一段CRISPR阵列(由重复序列和间隔序列交替排列而成)、一组cas基因(编码Cas蛋白)、以及一段前导序列(leader sequence,通常在阵列上游,负责转录调控)。
CRISPR阵列的重复序列有个特点:长度通常在21到47个碱基之间,序列高度保守但又不完全相同,而且不同物种间的重复序列差异很大。这就导致一个经典问题——你没法用一个固定的模式去匹配所有CRISPR阵列。早期工具靠正则表达式和已知重复序列库来搜,召回率很低。后来MinCED这类工具出现了,它用的是基于重复序列模式的迭代搜索策略,能在没有先验知识的情况下从基因组里识别候选CRISPR阵列。
MinCED的工作原理值得说清楚,因为它是这次事件里被频繁提到的关键词之一。它本质上是一个改进版的CRT(CRISPR Recognition Tool),核心思路是:先扫描基因组,找出那些在短窗口内反复出现的k-mer,然后把这些k-mer当作候选重复序列,再向两侧延伸,看是否能形成"重复-间隔-重复"的规律结构。这个方法的优势是不依赖已知数据库,能发现全新的重复序列家族。缺点是假阳性率不低,尤其是在低复杂度区域。
Claude做的事情,本质上是在MinCED这类工具的输出基础上,进一步做了上下文关联分析。它不只是找CRISPR阵列,还把阵列附近的基因簇一起拉出来,看这些基因是否编码已知的Cas蛋白同源物,或者是否具有核酸酶结构域。这一步以前是靠人手动做的:跑完MinCED,拿到候选阵列坐标,再去NCBI或者IMG/VR里找邻近基因,逐个做BLASTp,看有没有HEPN、RuvC、HNH这些典型核酸酶结构域。
2.2 AI agent的编排逻辑:它比人强在哪,又弱在哪
Claude在这次任务里的角色,更像一个"会自己写脚本的分析助手",而不是一个"懂生物学的发现者"。它的工作流程大致可以还原成这样:
- 接收一批基因组或宏基因组序列数据;
- 调用或模拟MinCED类工具,识别候选CRISPR阵列;
- 提取阵列上下游一定窗口内的基因序列;
- 对候选基因做同源搜索和结构域注释;
- 根据预设规则(比如是否含有核酸酶结构域、是否与阵列共定位、是否形成操纵子结构)筛选候选系统;
- 输出一个排序后的候选列表,附带证据链。
这个流程本身不新鲜,任何一个做基因组挖掘的实验室都能写出来。Claude的价值在于它能自主决定"下一步该查什么",比如当它发现某个候选基因的同源搜索没有命中已知Cas蛋白时,它会自动去查Pfam或InterPro里的结构域,而不是直接放弃。这种"遇到不确定就换一种证据"的行为,是agent式工作流和传统pipeline的核心区别。
但它的弱点也很明显。第一,它没有实验验证能力,所有结论都是计算层面的推断。第二,它对"生物学合理性"的判断依赖于训练数据里的模式,如果遇到一个完全不同于已知系统的架构,它可能会误判为噪声。第三,它无法判断一个候选系统是否真的具有编辑活性——这需要湿实验。
提示:如果你自己搭类似的agent工作流,不要把"发现候选"和"验证功能"混为一谈。计算挖掘的产出是假设,不是结论。
2.3 "不知道能干什么"为什么不是坏消息
张锋说"值得研究",恰恰是因为"不知道功能"意味着这套系统可能代表一种全新的机制。CRISPR-Cas系统的功能多样性远超最初的想象:Cas9是DNA切割,Cas12是DNA切割加附带切割,Cas13是RNA切割,Cas14是小DNA切割,还有一类系统根本不切割核酸,而是参与信号传导(比如cGAS-STING类似的环核苷酸信号通路)。
一个功能未知的候选系统,可能的方向包括:新型核酸酶、RNA靶向系统、转录调控系统、甚至是被驯化的转座子。每一种可能性都对应着不同的应用场景。如果它真的是核酸酶,那可能带来新的PAM识别特性或更小的蛋白尺寸,这对体内递送是重大利好。如果它是RNA靶向的,那可能在RNA编辑和检测领域有用途。
所以"不知道能干什么"不是缺陷,而是发现阶段的正常状态。真正的问题是:怎么从"候选"走到"功能已知"。这条路通常需要几年时间和大量实验,AI目前只能帮你把候选列表缩短。
3. 从候选到功能:CRISPR新系统验证的完整链路
3.1 计算阶段的证据分级:什么样的候选值得进实验室
不是所有AI给出的候选都值得做湿实验。一个负责任的挖掘流程应该给候选打证据分。我自己的经验是分三级:
| 证据等级 | 判断标准 | 建议动作 |
|---|---|---|
| 强证据 | 含已知核酸酶结构域 + 与CRISPR阵列共定位 + 有保守的辅助基因 | 优先合成、做异源表达 |
| 中等证据 | 含推测结构域 + 与阵列邻近但方向不确定 | 先做序列分析和结构预测 |
| 弱证据 | 只有阵列,邻近基因无已知结构域 | 暂缓,等更多同源序列出现 |
这个分级的意义在于分配实验资源。一个CRISPR系统从候选到发表,通常需要:基因合成、载体构建、异源表达纯化、体外切割实验、PAM鉴定、细胞编辑测试。每一步都是钱和时间。如果候选的证据等级不够,很可能做到一半发现它根本不是CRISPR系统。
3.2 湿实验验证的关键节点:为什么PAM鉴定是分水岭
PAM(Protospacer Adjacent Motif)鉴定是CRISPR系统功能验证的核心节点。一个Cas蛋白如果没有明确的PAM,就没法设计向导RNA,也就没法做编辑。PAM鉴定通常用体外切割文库来做:构建一个包含随机序列的DNA文库,让候选Cas蛋白在向导RNA引导下切割,然后测序看哪些序列被切了,反推出PAM偏好。
这一步的难点在于,很多新系统的PAM很宽松或者很特殊,用常规文库可能筛不出来。比如某些Cas12家族的PAM是TTTV,某些Cas14根本不依赖PAM。如果AI发现的系统属于后者,那PAM鉴定流程需要重新设计。
另一个关键节点是温度敏感性。很多从极端环境微生物里挖出来的Cas蛋白,在37度下没有活性,需要优化反应条件。这也是为什么"知道它来自哪个物种"很重要——AI在输出候选时,应该附带来源基因组的元数据,包括GC含量、预测的最适生长温度等。
3.3 AI在验证阶段能帮什么忙:不是替代实验,而是优化实验
AI在湿实验阶段的价值不是"替你做实验",而是帮你设计更好的实验。具体来说:
- 向导RNA设计:根据候选蛋白的同源模型,预测它可能偏好的PAM和seed区域;
- 结构预测:用AlphaFold类工具预测候选蛋白的三维结构,判断它是否具有典型的RuvC或HNH折叠;
- 脱靶预测:如果候选系统进入细胞编辑测试,AI可以提前预测潜在的脱靶位点;
- 实验条件推荐:根据同源蛋白的已知生化特性,推荐缓冲液、温度、离子浓度。
这些工作以前靠经验,现在可以部分自动化。但要注意,AI的预测必须用实验验证,不能直接写进论文结论。
4. 如果你想自己复现:一套可落地的基因组挖掘流程
4.1 环境准备:MinCED、HMMER和Python分析栈
假设你有一批宏基因组组装结果或者细菌基因组,想自己跑一遍类似的挖掘流程。基础工具链如下:
# 安装MinCED(需要Java运行时) # 从GitHub获取minced的jar包后 java -jar minced.jar -minNR 3 -minRL 18 -maxRL 45 input.fasta output.txt # 安装HMMER用于结构域搜索 conda install -c bioconda hmmer # 安装Prodigal用于基因预测 conda install -c bioconda prodigal # Python分析栈 pip install biopython pandas numpy scikit-learnMinCED的参数里,-minNR是重复序列最少出现次数,-minRL和-maxRL是重复序列长度范围。默认值对大多数细菌基因组够用,但如果你处理的是宏基因组数据,建议把-minNR调到4或5,降低假阳性。
4.2 从CRISPR阵列到候选基因簇的提取脚本
拿到MinCED输出后,下一步是提取阵列上下游的基因。下面是一个简化版的Python脚本框架:
from Bio import SeqIO import subprocess def extract_flanking_genes(genome_file, crispr_coords, window=10000): """提取CRISPR阵列上下游window范围内的序列""" genes = [] for record in SeqIO.parse(genome_file, "fasta"): for start, end in crispr_coords: left = max(0, start - window) right = min(len(record.seq), end + window) flanking = record.seq[left:right] genes.append((record.id, left, right, flanking)) return genes def predict_genes(flanking_seq, output_file): """用Prodigal预测基因""" with open("temp.fasta", "w") as f: f.write(f">flank\n{flanking_seq}\n") subprocess.run([ "prodigal", "-i", "temp.fasta", "-o", output_file, "-a", "proteins.faa", "-p", "meta" ]) return "proteins.faa" def search_domains(protein_file): """用HMMER搜索Pfam结构域""" subprocess.run([ "hmmscan", "--domtblout", "domains.txt", "/path/to/Pfam-A.hmm", protein_file ]) return "domains.txt"这个脚本的核心逻辑是:阵列坐标 → 扩展窗口 → 基因预测 → 结构域注释。实际使用中,你需要处理反向互补链、重叠基因、以及假基因的问题。宏基因组数据还要考虑组装碎片化导致的截断基因。
4.3 候选排序:怎么从几百个候选里挑出最值得做的十个
跑完上面的流程,你可能会得到几百个候选。排序策略决定了你后续实验的效率。我通常用加权打分:
- 结构域权重(40%):含RuvC/HNH/HEPN等核酸酶结构域得高分;
- 共定位权重(30%):基因与CRISPR阵列距离小于5kb,且在同一操纵子方向;
- 同源支持权重(20%):在多个物种或样本中出现同源系统;
- 基因组上下文权重(10%):附近有cas1/cas2等适应模块基因。
这个打分不是绝对的,但能帮你把明显是噪声的候选排到后面。实际经验是,前10个候选里能有1到2个真正值得做实验的,就已经很不错了。
注意:不要迷信AI给出的排序。AI的打分基于训练数据里的模式,如果新系统恰好不符合任何已知模式,它可能被排到后面。人工复核前20个候选的序列比对图,往往能发现AI漏掉的东西。
5. 这件事对AI辅助科研的真实启示
5.1 AI不是"发现者",而是"不知疲倦的初筛工"
把Claude在这次事件里的角色说成"自主发现"有点夸张。更准确的描述是:它完成了一个原本需要研究生花几周做的初筛工作,而且做得更系统、更不容易漏。它的优势在于不会因为重复劳动而疲劳,不会因为先入为主的假设而忽略某些信号。
但"发现"这个词在科学语境里有特定含义:它意味着你不仅看到了现象,还理解了机制。AI目前只能做到前者。这也是为什么张锋的点评是"值得研究"——他看到了候选的价值,但也清楚从候选到机制还有很长的路。
5.2 对做工具的人:agent工作流的关键是"证据链管理"
如果你在开发类似的科研agent,这次事件最大的启示是:证据链管理比单步准确率更重要。一个agent不需要每一步都做到100%准确,但它必须能追踪每个结论的来源,并在证据不足时主动降级结论。
具体来说,agent应该维护一个结构化的证据图:每个候选系统是一个节点,每条证据(结构域命中、共定位、同源支持)是一条边。当某条边的置信度低时,节点整体的置信度应该下降。这种图结构比简单的打分表更能反映真实的证据状态。
5.3 对做实验的人:AI给的候选列表怎么用才不浪费时间
实验科学家面对AI输出的候选列表,最容易犯的错误是"全信"或"全不信"。正确的做法是:
- 先看证据链最完整的几个候选,人工复核序列比对;
- 对每个候选做独立的同源搜索,不要只看AI给的注释;
- 优先选择那些在多个独立样本中出现的系统,重复出现意味着不是测序噪声;
- 如果候选蛋白小于700个氨基酸,优先做——小蛋白更容易表达和递送。
还有一个实用技巧:先做异源表达测试,不要一上来就做体外切割。表达不出来,后面都是白搭。表达测试可以用大肠杆菌或无细胞系统,几天就能出结果。
6. 关于热词里那些"跑偏"的搜索:LeetCode和Claude Code是怎么回事
关键词列表里混进了不少看起来和CRISPR无关的词:LeetCode、claude code安装、vscode配置claude code、claude code 1m上下文等等。这些词的出现其实反映了一个有趣的现象:大量开发者是通过"Claude Code"这个编程助手认识Claude的,当他们看到"Claude发现新酶系统"的新闻时,第一反应是搜索"Claude怎么用""Claude Code怎么装"。
这本身没什么问题,但如果你是想复现基因组挖掘流程的读者,需要区分两类工具:Claude Code是编程辅助工具,它本身不做生物信息分析,但你可以用它来写分析脚本、调试pipeline、解释报错信息。比如你可以让Claude Code帮你写一个解析MinCED输出的Python脚本,或者帮你把HMMER的domtblout格式转成可读表格。它的价值在于降低写代码的门槛,而不是替代分析工具。
至于LeetCode,那纯粹是搜索行为的副产品。很多CS背景的读者同时关注AI和算法题,搜索时把两个兴趣点混在一起了。如果你是从LeetCode过来的,想了解CRISPR挖掘,建议先补一下分子生物学基础:DNA结构、基因表达、限制性内切酶。不需要学到能做实验的程度,但至少要能看懂"核酸酶结构域"和"PAM序列"是什么意思。
7. 我自己的几个实操体会
第一,不要用单一工具做挖掘。MinCED适合找阵列,但找基因簇要靠Prodigal加HMMER,同源搜索要靠BLAST或DIAMOND,结构预测要靠AlphaFold。每个工具都有盲区,组合使用才能互相补位。我自己的流程里,MinCED的召回率大概在70%左右,剩下的30%靠手动检查低复杂度区域的重复模式来补。
第二,宏基因组数据比分离株数据难做得多。分离株基因组完整,基因簇边界清晰;宏基因组组装碎片化严重,一个操纵子可能被拆到几个contig上。如果你只有宏基因组数据,建议先用MetaBAT或MaxBin做分箱,拿到高质量的MAG(宏基因组组装基因组)再跑挖掘流程。
第三,AI给出的候选,一定要做系统发育分析。把候选蛋白和已知Cas蛋白一起建树,看它落在哪个分支上。如果它形成一个独立的分支,而且bootstrap值很高,那说明它可能代表一个新的家族。如果它嵌在已知家族内部,那可能只是一个已知蛋白的变体, novelty有限。
第四,关注"辅助基因"。很多CRISPR系统除了主核酸酶,还有辅助蛋白,比如Cas1、Cas2、Csm6等。这些辅助基因的存在往往能提示系统的功能类型。如果候选簇里有Cas1和Cas2,那它很可能是一个完整的适应模块,参与间隔序列的获取。如果只有核酸酶没有辅助基因,那它可能是一个孤立的效应模块。
第五,别忽略"负结果"。如果你跑完流程发现某个候选系统在多个样本里都出现,但就是没有已知结构域,不要直接扔掉。把它记下来,等更多基因组数据公布后再回头看。CRISPR领域里很多重要发现都是"先看到奇怪序列,多年后才搞懂功能"。
最后说一个现实问题:从AI候选到真正能用的基因编辑工具,中间隔着大量实验和优化。Cas9从发现到成为主流工具用了好几年,Cas12和Cas13也是类似。所以看到"AI发现新CRISPR系统"这类新闻时,保持兴奋但不要过度解读。真正值得关注的是:这套系统有没有独特的生化特性,比如更小的尺寸、更宽松的PAM、更好的特异性。这些才是决定它能不能成为工具的关键。