生物信息分析小贴士

· Read in about 1 min · (34 Words)

前几天帮别人做了细菌的基因组结构变异分析,有一些体会,特记录于此。

  • 实验分析设计仍然是最重要的。一开始没做好,后面就不好办了。
  • 一定要用脉冲场凝胶电泳简单拼装结果的正确性,一定要将gap补全。
  • 标准收费下,测序公司只按标准流程做分析,并不考虑课题背后的故事。所以科研团队还是要有自己的分析人员。
  • 不要忘了最基本的分子生物学知识,比如GC Island,GC skew。
  • 动手前,多向前辈请教。分析的时候先看有无现成的工具,实在没有再自己写程序。
  • 写程序一定要考虑可配置性,可重复性,可扩展性,争取一次编写、多处运行。逐渐积累自己的工具函数库,记录不常用的库。json格式配置更灵活,解析方便。
  • 不能在有“等用的时候再现学的”想法了,比如R绘图。
  • 分析文档要及时跟上,并逐渐完善,规范。
  • 不要临到最后了,再给老板看结果,一定要预留补充修改的时间。
  • 不能以交差的心态做事。
  • 合理安排时间,协调处理多件事情。

两天后把该分析流程用到另一组数据的时候,就发现问题了。数据类型不一样,生物学背景不一样,只得又改程序。每次更改总会发现之前的一些不足,悔恨一开始没有考虑周到。

开始之前,不妨先问自己几个问题:

  1. 客户最终要得到哪些具体的结果?
  2. 客户的设计、数据能否达到其预期目标?我如何跟他恰当解释可能的结果,哪些我能做到,哪些不能做到的?
  3. 客户的数据如何得来,是否做过质量控制,可靠吗?
  4. 有现成的流程/软件吗?可靠吗?
  5. 如果自己开发,这套分析流程/软件能否运用于其他类似的数据?甚至能否开源或者发文章?
  6. 客户要求提供程序吗,命令行还是图形界面?是否需要、以及如何保护源代码?每一部分采用何种编程语言?
  7. 需要经常调试参数吗?是采用配置文件还是命令行参数?配置信息如何组织?
  8. 软件结构如何组织?是否需要编写库,以供不同接口调用?数据结构是否复杂,是否需要数据库?
  9. 分析过程复杂吗,是否需要分步骤进行?哪些耗时的计算过程需要独立出来,并保存结果以避免重复计算?
  10. 哪些信息需要保存?不合格的数据是直接舍弃,还是做出标记后继续保留?
  11. 数据量有多大?需要多线程/并行计算吗?需要考虑内存使用吗?如何优化程序逻辑和数据结构?
  12. 需要考虑跨操作系统平台吗?是直接调用系统命令还是使用跨平台的库?
  13. 是团队合作还是单人项目?托管代码吗?需要进行版本控制,或每日备份吗?代码注释需要详细到哪种程度?
  14. 哪些代码可以重构,以供它用,甚至开源?
  15. 如何组织书写文档?甚至自动化报表?
  16. 中间遇到的问题,得到技巧是否需要记录,以供今后查验或者与他人分享?
  17. 得到的结果符合生物学意义吗?能跟后续分析提供什么帮助?

希望你能少走些弯路。