|||
在“知因网”回答的一个问题,分享在这里。
http://www.knowgene.com/question/2286
问:
生物信息学是否需要掌握Linux系统操作呢?一般的生物信息分析软件基于Linux系统开发的,那么当我们需要使用时是否需要掌握该系统的功能才能够正确的使用分析功能呢?
答:
分两个层次回答这个问题,为什么要选择Linux/Unix平台,作为生物信息研发的主要平台?怎样由浅入深熟悉Linux/Unix开发环境进行生物信息数据分析?
为什么要选择Linux/Unix平台,作为生物信息研发的主要平台?
生物信息的主要工作是用软件和脚本处理生物数据,其平台的选择是多样化的,根据目的需要选取。主要的可能选择有:
网上的服务,如NCBI, Ensembl, UCSC, DAVID等等,这类服务器的特点是门槛低,满足常用需求,有后台数据库的支持,浏览器模式可视化效果好;缺点是定制的服务往往支持不好;现有的网上服务对单一的分析支持的多,但对多个流程的串联和并行化等的支持不够;对商业话单一化服务支持好,对科研多样化支持弱。
本地终端,如BioEdit,Primer5, SAM,TreeView,Cytoscape,Excel, SpotFire等本地软件或客户端,很多软件在窗口类操作系统上运行,特点是可以无须网络支持,故而小规模运算速度快,可视化效果佳,支持鼠标操作效果好;缺点自然就来了,大数据支持不好,无法高性能运算,操控受设计者的限制多,不好定制。
命令行操作平台,如Linux/Unix Shell支持的高性能计算机群和云服务平台,特点大数据高性能支持,shell可编程能力强,生物信息软件包和脚本丰富,定制设计和开发容易。缺点是需要学习编程和命令行方式,操控没有鼠标直观,可视化不够。
集成开发环境/图形化界面开发平台:这应该以网站、应用程序开发为目标的一类平台,代表的是Windows应用开发,Java Eclipse等。这类是为有特定商业或科研目的的专业软件开发人员设计的,对探索发现和数据分析不是最好的选择。
从上面的分析不难发现从生物信息的从业者的职业方向看,大多是关注数据分析,将来特别是生物信息的大数据量的分析,命令行操作系统是必须要掌握的技能。而Windows Shell的设计很差,根本无法满足数据分析的需要,在高性能集群和云平台大多配备Linux,Linux学习就是必须的。
从将来的产业分工来看,大数据的云计算平台可能提供非常好的服务,利用其提供的API服务可能使用户提供非常好的生物数据的开发环境,把数据分布式、计算并行化和结果的可视化隔离到平台的管理功能中,生物信息的研究和开发者只需专注数据分析业务即可,与云平台的交互,应该有一个好的接口平台,Linix shell可能是一个不错的选择。
怎样由浅入深熟悉Linux/Unix开发环境进行生物信息数据分析?
正如bioops说的,我再补充一些:
熟悉基本命令和命令行操作方式,如cd,ls, less, cp,...
熟悉编辑器,个人推荐vi
熟悉一种shell编程,如bash
熟悉数据分析Linux常用工具sed, grep, awk, sort, cut, wc, uniq,...
熟悉软件安装方法
要更深入就要掌握一种,或更多脚本语言,个人推荐Python, Perl也需要了解,早期的生物信息软件很多是用它开发的。如果用到统计,R也是必须的。与数据库相关的工作,基本的SQL也需要会。Python,R,SQL是数据分析学者选出的用的最多的脚本语言。
了解高性能平台的任务提交系统,这是在现在大多数高性能集群上用得较多的系统,是PBS/SGE/OGE系列。
了解Hadoop/MapReduce/...未来生物信息大数据的方向
不断学习,随着生物信息云平台的发展,必然会有更多东西出来。
抛砖引玉,请大家拍砖。
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-12-19 08:04
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社