基因组测得出来,却读不懂:Hugging Face 开源的 Carbon-A 做了什么
Hugging Face 开源 Carbon-A(Carbon-A-1.2B)与注释库:在海量基因组上找基因候选。1.2B 是模型名里的参数规模,不是「12 亿条注释」。
如果我给你一个 5 亿字的文本文件,里面只有 A、C、G、T 四个字母,没有空格,没有标点,也没有目录。
你能告诉我,哪几段是有意义的"句子"吗?
这不是脑筋急转弯。
这就是生物学家每天面对的问题:一个物种的基因组测出来了,但是哪里是基因,并不知道。
2026 年 10 月 8 日,Hugging Face 的生物团队发布了一个开源模型 Carbon-A,以及一个配套的数据库 Carbon Annotation Database(简称 CADB)。
Hugging Face 官方博客称,他们用这个模型找到了约 5.66 亿个新的基因候选,覆盖 22,617 个物种,其中很多物种从来没有人研究过。
今天就用程序员能听懂的话,介绍一下这件事:基因组注释是什么,这个模型和数据库做了什么,这些数字意味着什么,以及怎么拿来用。
一、基因组注释是什么
先说基因组。
一个生物的基因组,可以理解成一份极长的源代码,只用了四个字符:A、C、G、T。
DNA 是双链的,两条链方向相反,基因可能写在其中任何一条上。
问题在于,这份"源代码"里,真正会被翻译成蛋白质的部分,只占一部分,而且被切成好几段,夹在大量其他序列中间。(这是生物学的一般常识,不是本次发布的内容。)
基因组注释,就是给这份源代码加上标记:从第几个字母到第几个字母是一个基因,哪几段是编码蛋白质的区域(英文叫 CDS),写在哪一条链上。
打个比方。
测序,相当于把一本外语书逐字扫描成了文本文件。
注释,相当于在这个文件里标出每个句子从哪里开始、到哪里结束。
没有注释,序列就只是一长串字母,很难检索,也很难拿去做后续研究。
所以,这个领域的瓶颈,已经从"测得出来"变成了"读得懂"。
测序越来越快,数据库里的基因组越来越多,但是给它们做注释的速度,跟不上。
二、Carbon-A 做了什么
Carbon-A 就是一个专门做注释的模型。
你把一段基因组序列交给它,它预测出哪些位置属于蛋白编码区。
模型名字里的 1.2B,按照惯例,指的是参数规模约 12 亿。(这是我根据命名惯例的理解,请以模型页面为准。)
Hugging Face 官方博客列出了它的几个特点。
(1)一个模型,跨很多类群。
同一个模型覆盖哺乳动物、脊椎动物和无脊椎动物、植物、真菌、原生生物。
过去的注释工具,常常要针对某一类物种单独训练或调参。(这是我对该领域的一般了解。)
(2)上下文很长。
一次可以看 98,304 个碱基(bp)。
这个数字正好是 96 × 1024。(这是我自己算的。)
为什么需要这么长?因为一个基因被切成好几段,分散在很长的区间里,窗口太短,就看不到全貌。(这是我的推断。)
(3)精度到单个核苷酸,两条链都看。
官方描述是"双链核苷酸分辨率的蛋白编码区预测"。
也就是说,它对每一个字母、每一条链,都给出"是不是编码区"的判断,而不是只给一个大概的范围。
(4)每个预测带置信度。
官方给出的置信度 AUROC 是 0.876。
AUROC 简单说,就是衡量"模型说自己有把握的时候,是不是真的更可能对"。1 是完美,0.5 等于瞎猜。(这是对指标的一般解释。)
对于一个要处理 5 亿多条预测的数据库来说,这一点很实用:用户可以先看高置信度的结果。
三、它准不准
大家最关心的问题,肯定是:AI 预测出来的基因,靠谱吗?
Hugging Face 官方博客给了几组证据。
第一组,基准测试。
在 42 个基准基因组上,Carbon-A 的宏平均核苷酸 F1 是 0.944。
F1 是同时考虑"找得全"和"找得准"的分数,越接近 1 越好。
官方博客称,这个成绩优于 AUGUSTUS、Helixer、Tiberius、ANNEVO、OrionGeno、SegmentNT、NTv3 等工具。
第二组,它是不是在背答案?
这是做机器学习的人都会问的问题。
训练数据里本来就有大量已知注释,模型会不会只是记住了它们?
官方举了一个猪的例子。
训练时用的是 2017 年的旧版猪基因组组装,结果模型在 2026 年的新版组装上表现更好。
如果只是背答案,它应该在旧版上更好才对。
所以官方认为,这说明它不是简单地背标注。
第三组,没见过的东西。
官方博客称,一个只用动物数据训练的版本(checkpoint),零样本去注释从没见过的植物,表现仍然很强。
还有四膜虫。这种生物使用非常规的遗传密码,相当于同一份代码换了一套解释规则。Carbon-A 在它上面的核苷酸 F1 仍然达到 0.960。
第四组,湿实验。
前面都是计算上的比对,生物学最终要看实验。
团队用 Iso-Seq 做了湿实验验证,物种是猫、叙利亚仓鼠、鸡和拟南芥。
Iso-Seq 是一种测细胞里实际转录出来的 RNA 的方法,相当于去现场看一看,这段基因到底有没有被"执行"。(这是对该技术的一般解释。)
结果是,Carbon-A 预测的完整 CDS 得到实验支持的比例约 0.62,接近参考注释,并且优于其他 ab initio 方法。
ab initio 的意思是"从头预测",只看序列本身,不借助其他物种的已知证据。
此外,官方博客称,团队和 Active Site、UCSD 等机构合作,在猫、鸡、拟南芥等物种上做过验证,更广泛的湿实验结果会在后续公布。
这里要说清楚边界。
这些验证说明的是"这里很可能是一个编码蛋白的基因",并没有证明这个蛋白真的存在、有什么功能。
官方博客明确说,下一步才是核糖体 profiling 和质谱这类实验。
所以,5.66 亿个"基因候选",重点在"候选"两个字。
四、CADB:这些数字意味着什么
模型之外,更有分量的可能是那个数据库。
Hugging Face 官方博客给出的 CADB 规模如下。
- 48,167 个基因组组装
- 约 27 万亿个碱基
- 5.66 亿个预测的蛋白编码位点
- 22,617 个物种
和训练用的 RefSeq 数据相比,CADB 覆盖的类群(taxa)约为 11 倍,序列约为 9 倍。
这些数字很大,不太好想象,我做几个简单的除法。(以下均为我自己算的平均数,实际每个物种差别很大。)
(1)27 万亿碱基 ÷ 48,167 个组装 ≈ 5.6 亿碱基。
也就是说,平均每个组装,就是开头那个"5 亿字的文本文件"。
(2)5.6 亿碱基 ÷ 98,304 ≈ 5,700。
一个平均大小的组装,要切成大约 5,700 个模型窗口才能看完。(这里只是粗略估算,没有考虑窗口重叠和双链。)
(3)5.66 亿个位点 ÷ 48,167 个组装 ≈ 1.2 万。
平均每个组装,预测出大约 1.2 万个蛋白编码位点。
(4)5.66 亿个位点 ÷ 22,617 个物种 ≈ 2.5 万。
平均每个物种约 2.5 万个。
这些平均数本身没有生物学结论,但它们能帮你感受这个规模:这是对几万个物种,每个都"从头读一遍"的工作量。
那么,这件事有什么意义?
我的理解是,它把一大批"测过、但没人读过"的基因组,变成了可以检索的数据。(这是我的解读。)
以前,一个冷门物种的基因组躺在公共数据库里,研究者想用,往往要自己先跑一遍注释。
现在,至少有了一份统一方法、带置信度的初稿。
Hugging Face 官方博客称,EMBL-EBI 对这项工作表态欢迎。
官方还提到,目标是 GenBank 里的基因组,目前大约完成了一半,三周后会再发布一批。(这句是我对官方表述的理解,具体范围以官方博客为准。)
五、怎么获取和使用
对于普通程序员,入口有三个。
(1)模型权重
模型放在 Hugging Face 上:HuggingFaceBio/Carbon-A-1.2B。
和其他 Hugging Face 模型一样,可以在模型页面查看说明和文件。
具体怎么加载、输入格式是什么,请看模型页面的说明,本文不替官方编写调用代码。
(2)Explorer
官方提供了一个 Explorer space,可以直接在浏览器里浏览注释结果。
如果你只是好奇,想看看某个物种被标出了哪些基因,从这里开始最省事。
(3)CADB 数据库
数据库的具体获取方式和格式,请以 官方博客 的说明为准。
那么,一个不做生物的程序员,为什么要关心这件事?
我觉得有两个理由。
第一,这是一个很好的样本,说明"把序列当文本、用模型去读"这个思路,可以延伸到多远。基因组就是一个只有四个字符、没有分隔符的超长文本,这对任何做序列建模的人都有参考价值。(这是我的观点。)
第二,它是开源的。
生物领域的很多模型,或者不公开,或者只能通过付费接口使用。
一个开放权重的模型,加一个开放的数据库,意味着没有大预算的小实验室、学生,也能拿到同样的起点。
技术的价值,往往不在于它有多强,而在于有多少人能用上它。
总结
用一句话概括这次发布。
Hugging Face 用一个开源的 1.2B 模型 Carbon-A,给 22,617 个物种的基因组做了统一注释,得到约 5.66 亿个蛋白编码基因候选,放进了一个人人可查的数据库。
但要记住,它们是"候选",不是"已证实的蛋白"。
如果你对基因组感兴趣,可以先打开 Explorer 随便看几个物种,再去模型页面读一读说明。
(完)
来源:Hugging Face 官方博客:Carbon annotator(2026-10-08);模型页 Carbon-A-1.2B。基因候选数量、物种覆盖等数字据官方博客;文中小学除法换算与标注推断处为作者解读。