Tag Archives: pFind

开始用户现场开发了

  今天又搬着服务器去北京蛋白质组研究中心安营扎寨。接下来一个阶段,要和生物学家战斗在一起了,用pFind 2.0 Beta4(刚刚发表在RCMS上的论文)分析蛋白质质谱样品数据,根据情况随时进行现场开发。

  每次去生物实验室一线,都是我最兴奋的时候。因为可以亲眼看看自己的代码如何运行、如何发挥作用、如何逐渐赢得生物学家信任;当然还会发现更多可以改进的地方,收集真正有意义的需求。现场开发对灵活性和鲁棒性的要求很高,是检验系统中各个层次模块的设计编码工程水平的最好标尺。

  除了看人家配药剂,摇试管,最有兴趣的就是了解那些几百万美元的精密分析仪器和软件。软件算法上,俺们pFind正在努力追赶国外的产品;国内做硬件的兄弟们什 么时候才能搞出足以对抗热电、安捷伦和岛津的仪器来呢?只有整个产业链条都起来了,才能支撑单一关节的产品去冲击世界顶尖的位置。

七月

  7月的里程碑,pFind被拆开来整个重写,计划20日开始大规模测试,拖到今天还没写完。其实大伙进度不错,唯独我负责的搜索引擎内核陷入泥 潭,搞得压力很大。上周有一次,不知不觉干到很晚,从书房出来找吃的才发现天都亮了,6点了。因为偏头痛的毛病,我很少熬夜,这是近三年唯一一次。(熬夜不好,第二天效率大大下降,平均效果其实对不起薪水。说到效率,算过组里的工作量,表面上没有区别的人,开发质量居然相差7倍之多。质量包括正确性、速度 和灵活性三方面,笨蛋往往拿其中一两个因素当借口,放弃剩下的要求)。

  前天过生日,正赶上RCM编辑把论文排版发过来,做最后修订,第30稿。虽然这么来来回回改了一年多,编辑随便看看还是指出一堆错 误,wuwu~。最近国内生物科研势头很强,这一期Nature Immuno上同时发表了两篇上海生科院的论文,都没有与国外合作。NIBS今年已两篇Science发表,两篇Science、一篇Nature接收, 还有两三篇CNS在投。

  以前听过个笑话:一个人去算命,算命先生说:“三十岁之前,运气是背到家了,痛苦啊,但是一熬过三十岁……”,那人精神一振,就听先生接着说:“你就习惯了”。

  收到礼物,很合心意的音乐手机,高兴。

  订阅的feed看起来有趣的不多,推荐g9的这篇《双陆棋被搞定了》

论文中了

  出丑了,没想到是用这么搞笑的方式得到好消息的。

  其实上周的邮件就通知论文被接收了的。编辑在一开头就写acceptable,后面一大段教训我:插图太烂,必须改进。俺的烂英文,居然愣是只看懂了后半截,没弄明白重点。

  被photoshop痛苦折腾了一周,今天给编辑回信,fy大虾过来帮忙纠正俺邮件里的低级错误:“你和人家不熟,只要称呼姓就可以了,如果是熟人才叫名字……我看看他写了什么……啊,这里不是说论文已经被接收了吗?笨蛋啊!”

  没有最笨,只有更笨。传说中的菜鸟,就是这样的。

  鞠躬,实在要感谢大伙的帮助。首次投论文,折磨一年多,有篇英文期刊的收获,也算满意了。

  BTW:前两天06年的SCI影响因子发布,几乎都降了,我投的期刊降到了2.680。

上来冒泡

  发烧、流鼻血、看急诊、打针、吃药、请假…… 两个星期没写BLOG了,上来列点流水帐,免得以为我去火星了。

  搬家,好容易搬过去了,发现无数细节问题,地板鼓起来了、热水器排暖管把玻璃烫裂了、空调装歪了噪音很大……被俺一一摆平。此外,去时代金源买了餐桌和茶几,还换了铝制暖气管。

  编辑又来信,说插图的DPI不符合Wiley出版社的标准。只好开始跟photoshop死磕。自我安慰,挑插图的毛病说明论文有望被接收吧。

  前两天维基百科英文可以访问,在里面添上了pFindKSDP的词条,现在又上不去了。

  pFind评价算法中的EV计算依赖于参加鉴定的候选肽的个数,太少的话无法拟合分布计算概率。在搜索引擎里加了个内差,现在不仅在LTQ、LCQ和QTOF上,在高精度的FT和Orbitrap上鉴定效果也不错。

恐龙、pFind和商业

  科学家从6800万年前的暴龙化石中成功鉴定出了胶原蛋白,蛋白分析结果也进一步佐证了鸟类起源于恐龙的进化理论。论文发表在2007年4月13日出版的Science(VOL 316 SCIENCE 280-285)上。鉴定这些胶原蛋白用的是离子阱串联质谱技术,软件是SEQUEST。文章后面说:

  “The fact that sequenceable collagen was very abundant in the mastodon sample, which could be approximately half a million years old, also sheds light on the fact that sequenceable protein lasts much longer than 1 million years.”

  还提到,即使没有基因组序列,质谱技术和生物信息学也可以有所作为:

  “As technologies become more refined and protein extraction techniques are optimized, more informative material may be recovered. This holds promise for future work on other fossil material showing similar preservation, but also demonstrates a method for obtaining protein sequences from rare or endangered extant organisms whose genomes have note been sequenced. The MS- and bioinformatics-based approach we have used can be applied not only to obtain sequences from extinct organisms, but also to obtain protein sequences from extant organisms whose genomes have not been sequenced and to discover mutations in diseased tissues such as cancers.”

  希望有一天,生物学家在Science、Nature或Cell上发表这种有趣的牛文章时能提到pFind的名字。

  明天去北京蛋白质组研究中心。最近连续去合作单位,请生物学家试用。用户认为pFind有望超过SEQUEST。至于Mascot,其实算法也可以比,但工程细节上差距不小。我们的现实问题是科研人员精力有限,软件开发效率不高,团队无法做到快速反馈迭代。

  昨天写email:要保证软件开发质量,就需要职业软件工程师,就需要钱。pFind想更进一步,尤其是着眼海外市场的话,必须按游戏规则来玩,我们得考虑用商业机制来推动了。

列车准点到达

  3月份大多数工程任务的最后一个里程碑都定在23日。下午5点开始陆续收到邮件,除了进度报告,还有大家各式各样的感想和致谢。

  这个月,机构调整,生物信息方向的三个课题组被合并,改换门廷影响到每个人;用户反馈和不断讨论激发出很多新想法,陆续添加到Todo List的工作量超过原计划的三分之一;博士们还在为申请科研基金点灯熬油……

  玩得很惊险刺激,比如最艰难的Web新版,好象是天生命运不济似的,从.net运行时安装缺失,到COM组件编译链接失败,到注册表异 常,到MFC DLL调用约定,到STL版本兼容,再到Windows操作系统漏洞……几乎每个有可能出错的地方都一个不落地出了问题。直到昨天,我还发邮件预计无限期拖延,没想到两位英雄奇迹般地击毙了所有BUG,在最后时刻上演胜利大逃亡。

第一次现场测试

  下午email了这次的用户测试报告,任务算全搞定了。明天把服务器运回去。

  随着样品逐渐复杂,不断增加难度:先鉴定牛血清标准蛋白样品;接着是6种不同的哺乳动物标准蛋白的混合样品;然后开始测试实际实验样品,鉴定含有几十种人类细胞蛋白的质谱数据;第四天进入深水区,开始鉴定含有超过三百种蛋白的样品……

  pFind和竞争对手Mascot一起跑,请生物学家对结果进行分析对比,必要时打开原始谱图人工判断匹配的正确性。和商业化的产品比,我们显然还很粗糙。中间崩溃过一次,只好停下来找BUG;易用性和结果呈现受到批评。战战兢兢,但不管怎么说,生物学家对搜索结果本身比较满意,核心算法得到了承认。第一次现场实验,还算说得过去吧。

  记录两个小花絮:

  跑牛血清标准蛋白数据,用Human库做背景。搜出来的结果居然包括很多的人类蛋白,郁闷。得到解释说,这些大都是角蛋白(人的皮肤和头发),还有汗液里的抗菌成分,是从实验者身上或空气浮尘土带来的污染,很难避免。

  后两个实验用的样品是大名鼎鼎的HeLa细胞,就是那个传说中不死的女人。

升级到CppUnit 1.12.0

  写论文查引用资料,上CppUnit的站点,发现release 1.12.0了。 VC7.1下MFCTestRunner不能jump to failed assertion的问题终于解决了。下载后没任何修改,VC7.1就能顺利编译通过。这下用起来方便多了。这个版本还开始支持Embedded Visual C++,这是两年前做手机人脸识别项目时梦寐以求的东西。

  pFind的开发,如果没有VC7.1和VSS可以用gcc和Subversion替代,但没有CppUnit支持单元测试就寸步难行了。

FDR实验完成

  无论LTQ还是QTOF,pFind的二电荷质谱FDR曲线都很漂亮,超过了Sequest和Mascot。守着12万数据来来回回跑了10遍,熬得灯枯油尽了,俺现在就想着赶紧回去睡个好觉。


LTQ数据鉴定结果FDR曲线对比


QTOF数据鉴定结果FDR曲线对比

喝到水了

  “就像在沙漠里走了十天,终于喝到第一口水”——姚明

  山重水复的时候出现转机。今天那些奇奇怪怪假阳性曲线消失了。组里这些天的不断改进终于见到了成效。索引程序的BUG的修改算法和数据的精度的加强肽序列质量计算公式的摸索N端M问题的发现、搜索策略的尝试……这些点点滴滴的细节构成了量变的基础。

  论文还在不断改,感谢总热心提醒我的dq。

  回家好好休息一下。下个月继续前进。