IGV-基因组浏览器-改造记录(一)
我一直都相信,
只要有足够长的时间,没有什么事情是我们做不到的。
我也明白,
人的生命是有限的,所以追求的东西应该尽可能少。
我只是没想到,
很多时候,不是你没时间,而是你身边的人,等不了。而事实上,你也等不了。
感伤是没有意义的。
无论何时何地,保持往前行进,总是对的。
写在前面
在前述的推文,我已经分享了《任何人,如何改造IGV基因组浏览器》。但是似乎,并没有太多人感兴趣。当然,这个也并不值得Care,毕竟不是每个人都有时间做一个自己需要的工具。
前述我已经提过,设计,实现了两个我自己其实并不满意的浏览器,所以我最终还是决定直接改造IGV。
浪费了两天时间,终于基本可以认为是,完成了一个两年前就计划做的事情。
这个事情,也是现在的博导与我刚认识不久,就讨论到的一个事情。
可能时间确实能解决以前。两年前,做不到的事情;现在并没有觉得太过复杂就折腾好了。
改造IGV的初衷
关注过sRNA测序数据分析,尤其是相对高水平的植物小RNA相关论文,那么应该见过类似下图。
这三个小图,展示的都是sRNA中特殊的一类,即phasiRNAs(往往与育性有关,如水稻的热敏雄性不育)。三个图,均来自植物sRNA研究大牛Blake课题组的网页浏览器(传言,浏览数据和输出可发表的图片,需要的是两个不同版本的浏览器)。呃....各种原因,我从来没有使用过...
两年前,博导与我商量,猜想着,是否有可能,在IGV上直接展示这类点图,那么一方面高效,另一方面直接得到矢量图。那会他的设想是改造IGV,我的设想是自己从头写一个。中间的插曲是,我花了大半天,确实是改造了一个看起来能用的IGV,其实有问题。后续,我们都没有再提起这个事情。但这个想法,我从来就没有放下过。为此,我在写JIGplot图形引擎的时候,都是不时地会考虑一些可以用在基因组浏览器的部件。
总的来说,两战两败,无论我怎么写,再有看起来不错的特性,始终感觉无法超过IGV。只能认怂,重新回来改造IGV。于是有了以下功能。
sRNA测序数据的readLen点图
在IGV中,每一个BAM或者SAM文件导入之后,可以实时生成一个Coverage Track
,如果是RNAseq数据的话,那么也还可以实时生成一个Juncitons Track
。这两类Track在大多数数据分析中都是有用的,如
可以很好的看出每个位点的覆盖率,可变剪接等。
但是,对于小RNA数据,则并没有太多有用的插件。尤其是当我们需要前述Blake课题组的浏览器类似的功能时。于是,改之可得。
改造,并使IGV对于BAM文件的展示,即AlignmentTrack可以跟支持CoverageTrack一样,支持一种新的Track。
其中,每一个位置会有0~5个点,不同点的颜色对应不同的read长度。如橙色对应的是24nt的sRNA,而浅蓝色对应的是21nt的sRNA,绿色对应的是22nt的sRNA,紫色对应23nt的sRNAs,其他长度对应的是剩余长度的sRNAs。点的高度对应的是该sRNAreads的丰度。
所以整体上,可以辨识出,右侧即为一个21nt的PHAS locus。
由于,我们增加的一个新的Track类型,所以整体上,他的使用与CoverageTrack是类似的。于是可以在不查看Alignment的时候,同时可视化多个BAM文件,进行不同样本之间的比较。如
可以看出,第一个样品右侧的locus上24nt的reads相对于其他样品多,或许是甲基化高频区域。
功能的调出
开启这个Track的方式,与Coverage的开启和关闭是类似的,
另外的,当然也只是AutoScale(上图均用的SetDataRange...)
写在后面
事实上,也有不少其他增加的功能。留待后续再推。
距离人生大事,有十天时间。总的来说,整体上这个事情,麻烦了双方家人较多事情,后续也要麻烦很多的亲朋好友。
这几天邀请了一些朋友,也忘了邀请一些朋友,也不敢邀请一些朋友。
这似乎是一个比较复杂的事情。不邀请的,或许会担心朋友觉得你没把他放在心上;邀请的,则会担心朋友不好意思拒绝而不得不(请假并赶去)参与。我最后是更多的选择不邀请。
当然,这个过程中,我也重新审视了自己过去的时间里面,与认识的人之间的交往方式。事实上,我发现,我的朋友确实很少;尤其是硕士以前,这主要是我个人始终没搞明白,到底人与人之间的交往,如果才是正确。或者直白一些说,我似乎很少真诚地对待确实将我视作朋友的人。
硕士以后,我认识了现在的女朋友,我才真正明白,其实每个人都可以过得很真实,并没有必要去担心太多其他人的想法和看法。或者简单地说,还是要活出自己。更或者通俗地说,“人活着,最重要的是开心”。
总的来说,或许我认知内,朋友之间的交往,应该是一个真心换真心的过程。而是否真诚,其实一两次交谈便可以知晓。