生物技术创新创业分享 http://blog.sciencenet.cn/u/SNPs 美国HudsonAlpha研究院的研究员。做分子鉴别诊断平台技术的开发和免疫组库基础科研。

博文

会写程序了,是“程序猿”了吗?

已有 8806 次阅读 2013-8-13 11:28 |个人分类:生物技术创新创业|系统分类:科研笔记| 生物技术, Python, 生物信息, 写程序

最近一段时间抽空学习python编程语言,前段时间还有博客纪录心得(参考《一定要不懂装懂才能成功》)。上个周末,在湖边休假,用了两天时间完成了下面的程序:

It worked!!

这个简单的程序做了如下的工作:

(1)产生一个任意大小的随机序列;

(2)从一个文件中读入一连串引物序列(高多聚酶亲和指数的引物);

(3)查出所有引物在靶序列中的结合位点(包括正向和反向);

(4)算出扩增产物的平均片段长度(设定一定条件);

(5)测算出靶序列有百分之多少被扩增子覆盖了;

(6)测算出被覆盖部分平均被几个扩增子覆盖了。

我写这个程序的目的是为了研发一个新产品:一组可以用来随机扩增基因组的高效引物。这些引物的组合可以根据所用的酶和靶基因序列的不同而不同。

为什么要做这个产品?因为现有的随机扩增大都用随机六聚体核酸引物。可是,我们的研究显示多聚酶在扩增DNA的时候是有很强的偏好的,有些引物多聚酶很喜欢,而绝大多数引物多聚酶是不喜欢的。所以,与其加入4096个随机引物,还不如就用那些有用的引物(几十个),这样扩增效率会提高很多。因为随机引物有4096个排列组合,每一轮扩增反应,每个引物都要对号入座找到他们特异性的靶序列,效率就很低。如果淘汰掉那些本来就没用的引物,效率和覆盖率就会提高。

python教科书看了不到三分之一就忍不住动手写程序了,这看来是“不踏实”的表现,不过实际是一个非常好的尝试。我得到了很多心得:

(1)带着问题学,比枯燥的书本好玩多了。就是觉得书本离应用差得太远,变得越来越没有耐心,才动手写“有用的”软件的。

(2)许多“语句”和功能都是抄来的,只要会Google,编程就会了一半了。开始还觉得很内疚,以为这不是真的“掌握”了编程。其实不然,这和学习所有语言一样,能实际用上的,才是真正掌握了的。能应付考试的,不一定就是你掌握了的知识。

(3)我想学习编程很久了,买了不少C语言的书,后来没有坚持下来。现在开始学很吃力,有人质疑“怎么还亲自操刀学习编程?雇一个程序员就行啦!” 我的回答是:“我二十年前就想学。我不想过二十年后还说:我四十年前就想学!”。学新东西,总有开始的一天,为什么今天不是那一天?

但愿我能一直学下去,用下去。有了这个好开端,我大概不会轻易放弃了。我已经尝到了编程的乐趣,而且也找到了一些窍门。更何况,我有太多太多的实际应用等着我去做,所以,这个“程序猿”,我是要做下去了。是进化还是返祖?



https://blog.sciencenet.cn/blog-290052-716442.html

上一篇:转让技术使用权:生物技术的连横策略
下一篇:肿瘤:早诊断,早遭殃?
收藏 IP: 216.186.173.*| 热度|

11 武夷山 张忆文 刘全生 曹聪 虞左俊 赵凤光 李毅伟 赵序茅 俞立 谢尚 fishman936

该博文允许注册用户评论 请点击登录 评论 (12 个评论)

数据加载中...
扫一扫,分享此博文

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-12-23 16:45

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部