zoukankan      html  css  js  c++  java
  • 常识的力量

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

    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?

  • 相关阅读:
    Anaconda下载及安装教程
    机器学习之一元线性回归模型
    PyCharm下载及安装教程
    Python基础之数据类型、变量、常量
    新旧代码的兼容(c和c++)
    埃拉托斯特尼--筛法 c++求质数,用bitset类型
    使用预处理器进行调试
    刷题-网易2018实习生招聘笔试题
    深度优先搜索-DFS遍历图-C++
    图--邻接矩阵c++
  • 原文地址:https://www.cnblogs.com/leezx/p/8640904.html
Copyright © 2011-2022 走看看