常识的力量 - 防止错得太远

Posted Digital-LI

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了常识的力量 - 防止错得太远相关的知识,希望对你有一定的参考价值。

做生物信息的一定要会利用常识的力量。

1. 对自己分析结果的把握

普通生物信息最大的弊端就是太依赖工具、算法这些东西,大部分的人平时其实都不知道自己用的工具到底是干嘛的,它能产生什么结果,更别说评价不同工具的优劣了。(主要也是工具太多了,有些也比较复杂)(建议有空还是看看工具的原理,大致了解就行,这能非常有效的提升分析的手感)

既然大部分生信工作者都是工具使用者,那我们如何掌控工具产生的结果呢?最有效的就是利用我们已有的常识来反推工具到底在做什么。

比如我在用RNA-seq数据来组装转录本,300个样品,通过标准的hisat2和stringTie流程我得到所有的转录本,这时我计数了一下699638个转录本。有点惊喜,这么多啊。

但是,这个数量合理吗?俺暂时不知道。

接着就是blast,499764条都能比对到,打开结果一看很多转录本都比到一个蛋白上了,而且比对位置也一样,这里我就知道了699638条转录本里大部分应该就是duplication了。

再接着,除去能比对到多个数据库的转录本,我还剩下10w条,自然就去用CPC等预测lncRNA,发现大部分都被鉴定为non-coding。这不科学吧,CPC和CPAT都是灵敏度、特异性很高的预测工具,别人文章最多也就鉴定几千个,我这随便就鉴定出来了10w条,嘛呀,是不是可以发nature了。

后来反复思考,觉得这个数字肯定异常,CPC等工具其实是不靠谱的,它们统计的灵敏度、特异性时使用的数据集就是有问题的,他们用的已经注释好的mRNA和ncRNA,那他们就只能局限于预测这两个了。

但是,但是,我们大部分时候用CPC的时候是直接来跑stringTie等预测的transcript,由于是二代数据,我们组装出来的是转录组碎片,stringtie等出来的大部分都是一些没有意义的exon的随机组合而已(我同时用了ref和denovo模式),也都被CPC预测为non-coding了。

自此,通过一些常识,我发现strinTie的结果的特征,同时也明白了CPC等工具的局限性。

所以,在生信分析时,多用常识质问自己“我的结果合理吗?”是很实用的,能防止“重大惨剧”的发生。

2. 正确写代码的姿势

生信肯定离不开写代码,我觉得写代码的时候似乎也在利用常识。

写代码比点击GUI更灵活高效,也更容易出错。

我有轻微强迫症,所以在写任何代码的时候会输出一些关键的变量,看是否符合自己的预期。

后来想想,其实这是非常有用的,它能有效杜绝99%的error。

就像建大楼,从底下开始稳稳的往上堆,大楼就会很稳固。

在写大型脚本(>1000行)时,再结合模块化思维(函数封装,类),普通人都可以写出非常健壮和正确的脚本。

 

小结:诸位想让生信事业一帆风顺的话,还是得多思考,多利用一下常识的力量。

 

一些常识:

How many proteins in the human proteome?

以上是关于常识的力量 - 防止错得太远的主要内容,如果未能解决你的问题,请参考以下文章

如何防止 node.js 中的内存泄漏?

生存战争怎么防止迷路

读懂CommonJS的模块加载

学不会“常识”:人工智能的致命短板?

替换不需要的字符时如何防止某些单词一起运行?

AI学习吧-REDIS-常识