第01章 异常结构

陈启第一次看见那段结构时,以为是仪器坏了。

凌晨一点四十六分,基因工程部三号实验室只剩下一排冷白色的灯。灯管老化,偶尔闪一下,像有人在天花板里眨眼。培养箱低声运转,离心机刚停,空气里有消毒水和咖啡冷掉以后的酸味。

屏幕中央,47 号样本的图谱停在第三外显子附近。

那一段本该是噪声。

至少按照现有数据库,它只能是噪声:重复序列,非编码区,早该被算法标成低价值片段,和人类基因组里那些被温和称作“功能未知”的沉默区域一起,安静地躺进附录。

但它没有沉默。

它折了三次。

第一段向内,第二段反向嵌套,第三段像一枚扣子,把前两段扣在一起。图谱上显示出来的不是普通的碱基排列,而是一种带有空间意图的结构。陈启盯着它看了快十分钟,越看越觉得不舒服。

不是害怕。

是被看见的感觉。

他把模型参数重置,重新跑了一遍。

结果一样。

他换了算法,把最新的灵力适配基因预测模型降级到三年前的稳定版本,又跑了一遍。

结果还是一样。

第三次,他干脆把 47 号样本和空白对照一起送进光谱仪。仪器预热需要三分钟,他趁这三分钟去接咖啡。咖啡机吐出来的是一杯颜色可疑的褐色液体,他喝了一口,苦得像论文返修意见。

回来时,光谱仪正在报警。

不是故障报警。是陈启从没见过的提示。

检测到未知共振结构。
建议终止扫描。
建议终止扫描。
建议终止扫描。

三行字在屏幕上重复跳动。红色,很刺眼。

陈启站在原地,没有立刻碰键盘。

研究所的设备很少用“建议”这个词。系统只会说“错误”“失败”“权限不足”或者“联系管理员”。“建议”意味着程序没有判定出明确风险,却在某个阈值上犹豫了。

机器在劝他停下。

这件事本身比报警更奇怪。

他把咖啡放到桌上,杯底碰到金属台面,发出很轻的一声响。那一瞬间,屏幕上的结构动了一下。

陈启以为自己看错了。

他俯身,调出实时数据。不是图像刷新延迟,也不是显示器抖动。那段三折结构的光谱回波在刚才短暂升高了 0.03 个单位,时间点精确对应咖啡杯落桌的那一声震动。

声波?

不,不可能。普通机械震动不该影响基因样本的灵力光谱。除非这段结构不是被动地被扫描,而是在响应外部刺激。

陈启的手指停在键盘上。

他应该终止扫描,写一份异常报告,等明天上午设备组和伦理办公室一起过来。标准流程是这样。标准流程能保护他,也能保护样本。

但标准流程也会把 47 号样本封存至少三周。

三周以后,这段结构可能会变成会议纪要里的一个编号,躺在某个“待复核”文件夹里,直到没人再记得它。

陈启很讨厌这种结局。

他把报警窗口拖到一边,手动打开高级参数。

权限提示弹了出来。

当前操作将进入非标准扫描模式。
是否继续?

他点了继续。

请填写用途说明。

陈启想了想,输入:

复核疑似设备噪声。

他自己都不信。

系统通过了。也许凌晨两点的权限系统比人类更宽容,或者更疲惫。

扫描重新开始。

光谱曲线一点点爬升,像某种正在醒来的东西。第一分钟,一切正常。第二分钟,结构边缘出现微弱的金色噪点。第三分钟,陈启听见了声音。

很轻。

不像从音箱里传出来,也不像实验室里哪个设备在响。它更像是在头骨里面,贴着颅骨内侧,很远地敲了一下。

咚。

陈启抬头。

实验室里没有人。

他摘下眼镜,揉了揉眉心。最近睡眠不好,咖啡喝得太多,出现短暂听觉错位并不奇怪。他给自己找了一个合理解释,然后低头看屏幕。

曲线还在爬升。

咚。

第二下。

这一次更清楚。不是声音,是一个“事件”。它发生在他的身体里,又像来自身体外面。陈启的后颈慢慢发凉,右手指尖开始发麻。

他终于伸手去按终止键。

按下去之前,屏幕上跳出新的一行字。

结构匹配中……

陈启停住了。

匹配?

和什么匹配?

他没有给系统导入任何外部模板。数据库里也不该有这种结构。如果系统正在匹配,就说明本地某个隐藏索引里存在相似对象。

研究所有他不知道的数据库。

这个念头像一根细针,轻轻扎进脑子里。

陈启把终止扫描的手收回来,打开后台日志。权限再次弹出。他输入自己的研究员密码。失败。又输入项目负责人临时授权码。失败。

第三次,他用了林澈给他的调试口令。

那是两周前林澈帮他修模型时留下的,说“应急用,别乱碰”。

权限通过。

后台日志展开的一瞬间,陈启看见了一串不该存在的调用记录:

hidden_index / lock_gene / restricted_archive

lock_gene。

基因锁。

陈启的心跳慢了一拍。

他并不是第一次见到这个词。十二岁那年,他在一本旧科普书里读到过类似的民间假说:人类基因组里存在某些被“锁住”的潜能区域。后来他上大学,学会了分辨科学和幻想,这个词就和许多少年时代的胡思乱想一起,被他扔进了记忆深处。

可现在,它出现在研究所的隐藏索引里。

不是论坛。不是小说。不是阴谋论视频。

是研究所的后台日志。

第三声敲击传来。

咚。

陈启眼前黑了一下。

他扶住实验台,咖啡杯被碰倒,冷咖啡沿着桌面流向键盘。他没有管。太阳穴像被一根细线勒住,越收越紧。屏幕上的三折结构开始闪烁,金色噪点沿着折叠边缘聚集,最后形成一个极细的圆环。

圆环出现的瞬间,实验室所有灯同时暗了一下。

陈启听见自己喘气的声音。

然后,他听见了第四下。

这一次不是敲击。

是一个字。

不属于任何他知道的语言,却在进入脑子的瞬间被翻译成了明确含义:

停。

陈启的手终于按下终止键。

扫描停止。报警消失。光谱曲线冻结在峰值前一秒。实验室的灯恢复稳定,培养箱继续低声运转,世界好像什么都没发生。

只有陈启知道,有什么东西已经越过了边界。

他坐在椅子上,缓了很久,才发现自己的右手一直在抖。

手机震了一下。

是林澈发来的消息。

你是不是又在实验室?

陈启盯着这行字,忽然有点想笑。林澈总是这样,像在研究所各处埋了看不见的传感器。也许只是因为太了解他。

他回复:

如果一个隐藏数据库里出现了 lock_gene,你会怎么解释?

林澈没有立刻回。

十秒。

二十秒。

一分钟。

然后手机亮起。

别动。
断网。
不要上传。
我现在过去。

陈启看着“不要上传”四个字,后背慢慢凉了。

他抬头看向屏幕。自动备份图标正在旋转。

上传进度:97%。

陈启几乎是扑过去拔掉网线的。

进度停在 99%。

实验室里安静下来。

他能听见自己的心跳,一下,一下,很重。屏幕右下角弹出系统提示:

备份失败。
本地缓存已保留。

陈启盯着那行字,忽然意识到自己刚刚做了一件无法解释的事。

他中断了研究所的自动备份。

这意味着从这一刻起,47 号样本的数据不再只是项目资产。它变成了他私人手里的一份异常材料,一份可以被追责、被封存、被定义为违规操作的东西。

他把自己从标准流程里摘了出去。

门外传来急促的脚步声。

林澈推门进来,头发乱着,外套拉链都没拉。他先看陈启,再看屏幕,最后看见那行“备份失败”。

他的脸色变了。

“你上传了多少?”

“百分之九十九的时候断了。”

林澈闭了闭眼。

“那就不是没上传。”他说,“是已经有人知道你看见它了。”

陈启没有说话。

太阳穴深处,那种敲击感又轻轻响了一下。

咚。

这一次,屏幕没有变化,仪器没有报警,灯也没有闪。

只有陈启听见了。

林澈注意到他的表情。

“怎么了?”

陈启抬起头,看着屏幕上那段冻结的三折结构。

“它刚才让我停下。”

林澈沉默了两秒。

“谁?”

陈启想说不知道。

可他忽然明白,这不是“不知道”的问题。

有些门,在你不知道门后是什么的时候,最好不要打开。可如果门已经从里面敲响了,你就不能再假装自己只是路过。

他听见自己说:

“锁。”