生物方面的牛人们有只用linux的吗

2024-11-23 00:25:25
推荐回答(1个)
回答(1):

分两个层次回答这个问题,为什么要选择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/...未来生物信息大数据的方向

  • 不断学习,随着生物信息云平台的发展,必然会有更多东西出来。