记一次开源软件的篡改
2015-08-06 16:54
295 查看
pandaseq是一款非常好用的序列拼接软件,项目传送:https://github.com/neufeld/pandaseq/ (编译安装前需要libtool-devel)
所谓科技服务和科研态度有的时候真的不统一,
在pandaseq拼接的时候,如果输出fastq文件,overlap部分,如果错配的话,质量值会变成1(软件认为不可靠碱基),这样的做法无可厚非的,而且个人觉得也是比较好的做法;
但是这个做法给公司带来的困扰是:由于公司使用pandaseq作为拼接和去primer等的第一步工具,所以得到的Q20,Q30统计都是从pandaseq统计的结果出来的,结果发现Q30只有60%多,
在二代测序质量值都非常高的这个年代,60%的Q30肯定会被客户质疑的,最后找到是pandaseq的原因(还好不是实验的失误),怎么办,弥补吧。
首先安排了一位同事去溯源拼接前的质量,然后替换掉pandaseq的质量值,忙乎了一段时间,该同事使用了一种估计长度的溯源方式,算是勉强完成了,然后交给我添加到流程中。
附图,pandaseq官方解释:
以上就是这次“篡改”的起因了,用这种方式来弥补质量值不好看让我有点接受不了,首先修改不严谨,拼接过程中有漏配错配,而且建库方式不同接头长度也会不同,估计长度的方式非常容易出错(虽然肯定会比原来好看)
反正是开源软件,不如修改源代码好了(同时修改选择-b R参数后,会将BUILD信息输出到log的问题,BUILD信息实在太长了,所以注释了吧)
首先找到该方法所在的文件,通过关键字查找,由于经验不足找了好久才找到:assembler.c,之后的做法就简单了,在220行后面添加:
然后根据关键字:“LOGV(PANDA_DEBUG_RECON”,将包含“S[%d] = %c, F[%d] = %c, R[%d] = %c”此类的log输出行全部注释掉(log文件瞬间从6G变成20M)
最后make && make install ,修改完成,overlap部分取质量值最高的碱基,还有质量值显示比这更加高的方法了吗?:-)
发表前看了一遍,我真的不是一个好的讲故事的人
所谓科技服务和科研态度有的时候真的不统一,
在pandaseq拼接的时候,如果输出fastq文件,overlap部分,如果错配的话,质量值会变成1(软件认为不可靠碱基),这样的做法无可厚非的,而且个人觉得也是比较好的做法;
但是这个做法给公司带来的困扰是:由于公司使用pandaseq作为拼接和去primer等的第一步工具,所以得到的Q20,Q30统计都是从pandaseq统计的结果出来的,结果发现Q30只有60%多,
在二代测序质量值都非常高的这个年代,60%的Q30肯定会被客户质疑的,最后找到是pandaseq的原因(还好不是实验的失误),怎么办,弥补吧。
首先安排了一位同事去溯源拼接前的质量,然后替换掉pandaseq的质量值,忙乎了一段时间,该同事使用了一种估计长度的溯源方式,算是勉强完成了,然后交给我添加到流程中。
附图,pandaseq官方解释:
以上就是这次“篡改”的起因了,用这种方式来弥补质量值不好看让我有点接受不了,首先修改不严谨,拼接过程中有漏配错配,而且建库方式不同接头长度也会不同,估计长度的方式非常容易出错(虽然肯定会比原来好看)
反正是开源软件,不如修改源代码好了(同时修改选择-b R参数后,会将BUILD信息输出到log的问题,BUILD信息实在太长了,所以注释了吧)
首先找到该方法所在的文件,通过关键字查找,由于经验不足找了好久才找到:assembler.c,之后的做法就简单了,在220行后面添加:
if ( rpr < fpr ){ q = fpr; }else{ q = rpr; }
然后根据关键字:“LOGV(PANDA_DEBUG_RECON”,将包含“S[%d] = %c, F[%d] = %c, R[%d] = %c”此类的log输出行全部注释掉(log文件瞬间从6G变成20M)
最后make && make install ,修改完成,overlap部分取质量值最高的碱基,还有质量值显示比这更加高的方法了吗?:-)
发表前看了一遍,我真的不是一个好的讲故事的人
相关文章推荐
- 最大权闭合子图 分类: bzoj poj templates 2015-08-06 16:54 11人阅读 评论(0) 收藏
- PHP fopen()参数
- PHP fwrite()写入文件
- HDOJ1061Rightmost Digit
- Android官方技术文档翻译——ApplicationId 与 PackageName
- CodeForces 200C Football Championship(暴力枚举)
- 关闭 updatedb.mlocate?
- MyBatis延迟加载的问题
- Android上玩玩Hook?
- BZOJ 4204 取球游戏 循环矩阵优化期望递推
- PHP文件上传
- Android Studio之同一窗口打开项目
- cookie类的简单创建
- thinkphp模块
- hibernate3下载地址
- thinkphp连接数据库
- 单位冲击响应与频响以及FIR实现代码(C语言)(转)
- android解决部分手机无法通过uri获取到相册的path
- bzoj3576: [Hnoi2014]江南乐
- nodejs环境搭建(linux版)