学习新工具的思路

96
思考问题的熊 22d8d123 271c 4d80 9c59 6990844a9e37
6.7 2019.03.14 20:53* 字数 2376

有两件事情,第一是前几天看到一个朋友分享了自己 学习生物信息工具的经验,借着这个机会刚好反思了一下自己过去几年是如何做的;第二是最近有人问了我一个问题:“使用 tophat 比对完的转录组数据 bam 文件想用RNA-SeQC 来质控,但是这个软件好像没人维护了”(竟然还在用 tophat)。那这次就聊聊如何学习一个新的工具。

学会提炼需求

学习新工具有两种途径,一种是按需搜索一种是被动获取。被动获取还好,就是一般最新的杂志发表了什么平台推荐了什么就看什么。如果是按需搜索需要首先明白自己的需求是什么。

举一个最简单的例子,如果你使用一个转录组拼接工具提示内存不够了不能正确运行。这个时候你的需求是什么,很自然会想到去找一款需要消耗内存更少的软件。然后找了另外两个软件,一测试一个效果非常不好另一个压根自己不会安装。卒。

但如果换个角度分析一下自己的需求,你要做的可能是想办法去除 input 文件中那些只带了冗余信息的 reads,进而减小拼接工具所需要的内存。

做一件事情,总有前因后果。遇到问题除了盯住眼前的一点点内容,还要尽可能往前看一看向后想一想。

搜索工具

搜索引擎

明确了自己的需求,接下来就需要去找想要的工具。首先是搜索引擎,通常我们建议在力所能及的情况下,先Google再国际版bing在bing在百度。当然,你可能还听说过一些程序员自己开发的小众搜索引擎,其实本质就是人为提高了一些网站的搜索权重。国内目前有一个叫做http://caup.cn/的工具类似于 duckduckgo,不过它的地址偶尔会变,属于打一枪换一个地方。

说到搜索引擎,我曾经写过几篇相关的搜索技巧,比如在Google中指定搜索哪一个网站或者哪几个网站,指定搜索什么样类型的内容。你要是有心也可以去网上自己找找类似的内容学习。

omicX

omicX 之前叫做 omictools,最近改版之后增加了很多非常强大的功能同时伴随而来的是持续的邀请你付费。omicX 的口号是释放大数据的潜能(Unleashing the value of big biodata)。按照官网的说法他们现在已经索引了30k+的protocol,50k+的datasets以及40k+的software tools。很多时候在这里就可以找到你需要的工具了。

文献积累

自己搜出来的工具,很多时候都感觉用着没底。还有一种比较简单的方法就是去自己的文献库中搜索,你看过哪些文献可能记不住具体的细节,但是总应该知道他做了什么,如果人家做过的事情也可能涉及到你目前的需求,去翻翻人家的文章,没准就有意外收获。而且人家用那个工具已经发了文章,你总不会自己担太大的风险。

学习工具

通过一番搜索,你或许找到了两三个感觉自己可以用的工具,接下来的问题就是怎么学习和使用的问题了。学习一个工具大致有如下几个主要的思路。

快速查看 input 和 output

可能一个软件的 manual 有好几十页上百页,有十几个命令上百个参数,但是这些都不应该是你最开始先关注的问题,你要做的是先快速的找到它的输入文件和输出文件。一看他的输入文件是不是你手里现在有的数据类型内容,或者是不是可以比较方便的转换;二看他的输出文件会不会有你想要的那个结果或者可以很方便的进行二次处理得到你要的结果。如果这两者有一样不满足,首先把它放在一边,即便这个软件引用再多写的再好,可能并不适合此刻的你。

查看原始文献

如果,发现了这个软件的输入输出内容都比较符合你的需求,接下来要做的最好是浏览一下它原始文献的关键信息点。这一步不是必需步骤,但是强烈建议不要舍去。泛读工具的原始论文可以让你简单了解其开发背景和实用的方法,而且通常会包含和过往工具的一些比较,以及自己的优势特长。如果你发现自己很在意文章中所提到的优势你就可以留下来进行后续步骤,如果人家的注意事项里强调的问题恰好是你目前的状况,可能这个工具就又要舍弃了。

看谁引用了它

看完原始论文,接下来的一步依旧不是安装使用而是建议再看看有哪些后续的文章引用了它以及这些文章的水平。这样做,一方面是看看它的受认可程度,另一方面是要学习别人怎么用它。在 pubmed 或者google 学术中,你可以轻易的看到有哪些文章引用这篇文章,挑几篇出来索引一下,看看别人是在什么前提和需求下使用了这个工具,以及别人在用这个工具的时候进行了哪些设置。

在这一步还可能会有意外惊喜,比如你发现一片更新的文献引用了它,而这篇文献恰好也是一个类似功能的工具,但是表现更加优秀。

使用工具

注意,至此你都还没有仔细看过这个工具的manual或者详细的帮助文档,不要担心因为很可能你根本就装不上这个工具,更别提用了。但是你可能会问为什么一开始就不先装这个软件呢?那是因为一旦装不上你就很可能失去了了解和学习这个工具的唯一机会,也很可能就错过了通过它了解到其它相关内容的机会。总之,多看点文献总是好的。

安装

安装这一步没法展开说,但是按照现在的风气如果我说「300字学会软件安装」恐怕是要犯错误。推荐你去看技能树开发的生物信息软件安装入门课程,只需要在腾讯课堂的搜索界面输入生信软件,然后按照人气排序,排在第一位已经卖出去900多份的那个就是了。

只提醒一句,如果一个软件需要的依赖环境太多,需要的各种配套内容很旧。那通常是你没有找到和它同类更好更方便的工具。比如OrthoFinder之于Orthomcl。

跑测试文件

软件装好了也想好了要跑那些命令。先别急着直接上,把 input 文件随机提取出1/10或者1/50去进行一下测试,确认一下是不是能跑通也能给出你想要的结果。因为现实和想象总是存在着一定差距,很可能1/10的数据已经内存不够了。

即便跑通了也不要着急,这个时候可以相对仔细的学习一下官方帮助文档或者看一些七七八八的教程。试着修改几个你感兴趣的参数,看看会不会得到更理想的或者很奇怪的结果。如果有,你就要再去想想自己应该用调整哪些参数来处理自己的实际数据。

实际运行

实际运行需要注意的就是留意一下软件的log文件和报错信息。如果一旦出了问题,自然又回到了搜索一步,再一次强调掌握一些常规的搜索技巧十分重要。


如果顺利拿到了结果,恭喜你完成了初级阶段,很可能得到的结果和你自己的预期相差甚远。这个时候,就又要回到文章的开头,想一想问题出在了哪里又该何去何从。

发现了么,当一个合格的「调包侠」似乎也没那么容易。

生物信息
Web note ad 1