类和子程序设计
针对问题选择合适的数据结构和算法
数据类型决定了程序内存消耗,算法决定了程序的执行速度
示例1: 基因注释功能中查找overlap,即对bam文件中每条reads,在基因注释文件gtf...中查找与之相交的基因,再进行其他处理;一般对gtf文件构建线段树,线段树的具体实现 二叉搜索树 VS 红黑树,由于二叉搜索树是非平衡的,极端情况下甚至会退化成链表,查找最坏需要O(N)的时间复杂度,而红黑树是自平衡的...,平均时间复杂度为O(log(N)),因此数据结构选择红黑树能达到更好的效率
示例2: barcode序列编码成整型,如长度为10的ACGT序列可以编码成int32,只要4个字节,而使用string来存储至少需要...能不读写磁盘就不读写,数据量不大的情况全部放入内存,毕竟读内存比读磁盘要快1000倍
纯文本转二进制,减小写盘数据量....如果确实需要输出一些中间文件,可考虑将纯文本转成二进制,或采用序列化/反序列化方案来降低数据量
考虑异步/多线程读写.