芝加哥大学提供的校园网,速度远没有想象中那么快。
几十个GB的数据,像一头老牛,拖着沉重的步伐,在细细的网络管道里艰难挪动。
林允宁没睡。
I-House的老旧暖气管整晚都在发出有节奏的“哐当”声,像个疲惫的心脏。
他戴上耳机,隔绝了噪音,所有的注意力都集中在笔记本屏幕上。
几十个G的数据,下载了整整三个小时。
下载完成的瞬间,他立刻调出了Aether_Chrono的核心模块。
这不是他第一次处理低温电镜数据,但绝对是最复杂的一次。
数万张高分辨率图像,每一张都记录着蛋白质分子在特定时间点的投影,但这些投影被淹没在电子枪流不稳造成的散粒噪声,以及样品冷冻时形成的冰晶衍射背景中。
他没有直接运行程序。而是先花了半个小时,仔细阅读了程新竹发来的仪器参数和校准文件,然后,他动手修改了Aether的配置文件。
#ModelConfigurationforCryo-EMTauProteinData
noise_model=shot_noise+background_pattern_fft
signal_prior=protein_structure_gaussiansigma=0。5
algorithm=hidden_markov_modelstates=dynamic,solver=viterbi
他将噪声模型解耦为两部分:
一部分是随机的散粒噪声,另一部分是通过小波分析得出的具有固定模式的背景干扰。
同时,他加入了一个基于高斯分布的物理先验??他假设蛋白质的真实结构是存在的,只是被噪声掩盖了。
设置完毕,他按下了回车。
IBMX40笔记本的风扇开始狂转,发出不堪重负的嗡鸣。
屏幕上,终端窗口里滚动的日志快得看不清。
Aether像一头饥饿的怪兽,开始疯狂吞噬和消化那些原始数据。
林允宁靠在椅背上,看着进度条一点点前进。
他知道,这不仅仅是一次数据处理,这是一场与时间赛跑。
两天之后,程新竹顶着两个黑眼圈,端着一杯咖啡来到了林允宁的临时工位。
“怎么样怎么样?”
她一脸急切,声音压得像做贼。
林允宁把笔记本屏幕转向她。
屏幕上并排显示着两张图。
左边,是原始数据,一片模糊的“雪花点”中,隐约能看到一些灰色的细丝。
而右边,是经过Aether处理后的结果。
程新竹的呼吸停住了。
右边的图像里,背景的“雪花”消失了,那些恼人的冰晶衍射花纹也已经无影无踪。
灰色的细丝变得无比清晰,甚至能分辨出其中由折叠片层构成的核心结构,以及周围像毛刺一样伸展出来的、无规则卷曲的侧链。
“我的天。。。。。。”
程新竹放下咖啡,一把抢过笔记本,手指在触摸板上滑动,不断放大图像细节,“你看这里。。。。。。这几个氨基酸残基的相对位置。。。。。。还有这个转角。。。。。。太清楚了!这比我们组里那个博士后用商业软件跑一个月的结果还要好!”
她抬起头,看着林允宁,眼神里是纯粹的震惊和狂喜。
她以为这至少需要一周,没想到林允宁只用了不到48小时。
“别急,”