|||
记得很久之前和别人讨论生物信息时,谈到自己对生物信息的感觉时,说了这么一句话:“对于做生物信息的人来说,计算机决定了你的效率,数学决定了你的高度,生物决定了你的境界”,生物信息本身就是,或者说目前至少是用计算机工具,以数学的方法,来解决生物问题的一个学科。所以这个问题应该从计算机,数学,和生物学这三个方面来说。
首先说计算机技能决定了你的效率。对于生物信息来说,计算机技能实在是最基本的能力了,这个不必多说,个人以为,掌握一门脚本语言(比如perl或者python)和c/c++就可以了,当然像java现在用的也越来越多,但是没那么多精力样样都学,够用就行。之所以这么说,是因为目前生物信息的大部分工具都是这两类语言实现的,前者编程效率高,主要用来进行批处理和简单的计算,后者计算速度快,主要用来进行数据计算。因此把这两者结合起来,从软件的安装,使用,到按照自己的需求快速的实现数据处理,是做生物信息的最基本的能力了。能用已有的工具快速处理数据,这是生物信息的第一阶段,能够熟练使用脚本编程就可以了。
其次说数学决定了你的高度。对于生物信息来说,它不像物理,数学那样,有各种各样的公式定理,它有的只是大量的采样数据,如何处理这些数据并从中得到规律性的东西,这才是生物信息要解决的根本问题。比如在基因组组装中如何从一大堆基因组测序数据中恢复出原始的基因组序列,在重测序中如何从reads和reference的比对中检测出SNP,在基因预测中如何使用数学模型计算出最优的基因结构,在分子进化中如何根据已知的基因序列推断它们的进化关系,这些都是数学问题。大部分做生物信息的人,遇到的第二个问题就是,我能用已有的工具处理数据,但是里面一大堆的参数是什么意思,它们对结果有什么影响。同一个分析有那么多软件,哪个软件是最合适的。这些软件的结果都是怎么得出来的。这是生物信息的第二个阶段。这里生物信息的算法问题和模式识别的算法问题基本上完全一样,初学者可以去看<生物序列分析:核苷酸和蛋白质的概率论模型>,基础好的可以去看〈模式分类〉,到了这一步,基本上就有了生物信息的思维了。
第三说生物决定了你的境界。生物信息要解决的问题是具体的生物问题,如何使用计算机和数学去解决特定的生物问题,这个真正就是综合能力的考验了,真的是一个境界问题,反正我还没摸着边。
最后列个书目的清单吧,基础类:linux操作系统,perl二十四学时,perl高级编程,基因8;中级的:c++ primer,生物序列分析;高级的:c++编程思想,模式分类,算法导论。
生物信息边学边搞,如今也四年了,一直是边做边丢,好多积累性的东西都没有记录下来,实在是太遗憾,就从这里开始吧。
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-10-7 03:29
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社