有人说:鼠标点点点,绝对是后面生物数据分析的演化方向。 ------佚名
多功能生物软件eGPS(http://www.egps-software.net/) 现在功能越来越多,我这里想试着对它进行分类。那么这个分类有什么用呢?至少有如下用途:
- 让你对软件的整体功能有一个具体的认识
- 我们可以酝酿一个导航模块/浏览模块/图册模块帮助别人去认识这里有什么功能,这些功能是不是用户所需要的
昨天有一个用户向开发者提了一个建议:我用软件的时候很多功能需要我点开 iTools 菜单才行,点开来之后只是几个按钮,按钮点进去又只是一个面板而已,我根本不知道里面究竟有什么。这对我整个认知过程造成了负担,能不能有方法我知道每个模块的具体功能,这样我知道了之后,后面也许会有相应的需求。
所以我想从多个角度对这里的功能做一个分类,当然我最希望的就是这个分类尽可能的全。最好的情况是,该分类可以包含几乎所有的软件模块,也就是说,以后但凡有一个需求,这个需求的实现形式就是这些分类的中的其中一种。同时这个需求的具体内容也是这个分类中的某一种。尽量不出现一个需求是开发者以前没有考虑到的,最好不要出现新的情况,这种情况不在我们的考虑范围内。
下面我具体从三个角度来进行分类
1.按照功能性质来分
首先请浏览一下如下的归类:
类型名称 | 注备 | 举个例子 |
---|---|---|
大型可视化 | 功能多,开发时间长,单独一个模块也可以发文章 | 热图,韦恩图,进化树图,联配(alignment)图 |
简单可视化 | 模块开发简单,功能单一,但是确实解决用户的需求,其实这个也可以看做是早期的大型可视化模块。这些模块可以视作是粗略版的大型可视化模块 | 纠缠图,点图,和弦图 |
小工具 | 这些模块包括一些简单的字符串操作,基本文件的读入和输出,这些功能如果用户自己掌握一些脚本语言会很快解决。值得一提的是,这些工具虽然开发者感觉没什么技术含量,但是用户有时候真的蛮需要的 | fasta序列的提取,集合的交差并补,字符串操作 |
专业计算类 | 顾名思义,这里的模块是有自己对应的专业方法的,这个方法本身就可以发很好的文章。这里我觉得复杂格式的转换也是一种专业的计算 | 如Blast,BWA,MAFFT这些序列比对工具;简单一点例如 NJ法构建进化树,Sankhoff算法计算祖先状态,或者自己写的简单的序列比对方法(如Neededman算法);还有一些统计方法 |
操作台类 | 有很多享有同一输入文件,功能相近的模块的集合。而且这个大的模块它能交互式的分析数据,实时预览结果,直接对着这个屏幕可以去想一些解释数据的原因。看到有意思的地方还可以探索。这个操作台中的模块也是上述的几种模块的组合 | 如eGPS中的VCF tools,如果那个fasta的所有操作都实现的话,也可以是一个操作台类的模块 |
流程类 | 这些模块是组合其它模块来完成一定任务的组合模块。有很多时候我们有封装一定流程的需求,这些类就可以做到 | 如eGPS中的一些loader模块,这些模块就是用专业计算类去解析一定格式的数据,然后导入可视化模块;还有Gene to gene tree本身就封装了很多东西,最后跳转到了进化树可视化模块 |
简单可视化模块的存在其实是很有价值的,因为开发一个大型可视化模块费时费力,而且很多功能可能用户永远都不会用到,那何必呢?而且很多时候一个分析最重要的就是出一个图,从很多现在发表的文章来看,图的风格和板式一般是比较固定的。所以这些简单可视化模块很有存在的价值。
2.按照专业应用领域来分
这个可以按照人们研究的领域来划分。
类型名称 | 注备 | 举个例子 |
---|---|---|
通用的模块 | 面向所有的人,所有人都有可能产生的需求,例如查看一个10G的大文件 | 文本编辑器,Date Time calculator |
生物进化 | 主要面向进化的一些功能 | 构建进化树的方法,进化树可视化,联配(alignment)可视化 |
群体遗传学 | 主要面向群体遗传学的一些功能 | 检测正选择方法,探究群体历史,计算多样性,物种或者人群混合 |
基础统计与一些应用 | 如其名字,统计的分布,假设检验等等 | MA plot, 火山图,t-test这些;还有PCA,层次聚类 |
数据的可视化与探索 | 可视化文本数据,做出漂亮的图,还可以交互式的调整 | 前面分类的操作台类的模块 |
基因组学 | 主要探究DNA,有一类比较多的就是Call SNP之后得到VCF文件之后的很多分析 | 计算群体多样性,GWAS(当然现在还没有实现) |
转录组学 | 主要探究RNA,如一直流行的RNA-seq数据分析 | RNA-seq 各个流程,如一些下游的火山图绘制 |
蛋白质组学 | 主要探究蛋白质,如质谱数据分析 | 如eGPS中的MAP方法的实现 |
其实对eGPS来说,它主要是一个应用于进化和群体遗传学以及数据可视化与探索的软件。
3.按照模块复杂度来分
这个模块复杂度是和用户的上手程度强烈相关的,所以这个标题也可以叫做 按照用户上手难易程度来划分
类型名称 | 注备 | 举个例子 |
---|---|---|
简单模块 | 遵循最基本的 “打开-导入-点击按钮-输出” 的逻辑,参数比较少,功能单一 | 一些小工具,简单可视化模块 |
复杂模块 | 模块功能很多,要完全掌握需要看使用手册,参数多 | 现在eGPS的热图,大型插件CGB |
中等模块 | 介于两者之间 | - |
欢迎多多评论支持!!!
网友评论