生信分析人员如何系统入门linux?
linux系统在生物信息学数据处理中的重要性就不用我多说了,鉴于一直有学生问我一些很显而易见的问题,对系统性的学习并理解了linux系统操作的专业人士来说是显而易见的。
我在这里仅以过来人的角度给大家总结一下linux该如何学,该学什么,该花多少工夫,学习重点是什么?
就我个人这么多年处理生物信息学数据经验来看,可以把linux的学习过程分成三个阶段:
一是把linux系统玩得跟windows系统一样顺畅。
这一阶段的主要目的就是去可视化,熟悉黑白命令行界面。
如何连接服务器(xshell,putty,VNC~~~),了解你在服务器上面有什么权限。
左右鼠标单击双击如何实现?磁盘文件浏览如何实现?文件操作如何实现?绝对路径和相对路径区别?
需要了解的命令有下面这些:
pwd/ls/cd/mv/rm/cp/mkdir/rmdir/man/locate/head/tail/less/morecut/paste/join/sort/uniq/wc/cat/diff/cmp/aliaswget/ssh/scp/curl/ftp/lftp/mysql/
大家可以搜索(每天一个linux命令的博客)来跟着练习,或者看一些linux视频(百度云盘(http://pan.baidu.com/s/1jIvwRD8 )共享了一大堆,建议看鸟哥linux私房菜),或者关注一些linux学习相关公众号,加入一些linux社区,论坛,当然如果你只是简单了解,搞生物信息学其实没必要那么深入理解,跟着一本像样的入门书籍,完整的学习即可!
不懂的名词,赶紧谷歌搜索,多记笔记。
需要深度理解的概念有:
软硬链接区别文本编辑,文件权限设置打包压缩解压操作(tar/gzip/bzip/ x-j x-c vf)软件的快捷方式如何实现?软件如何安装(源码软件,二进制可执行软件,perl/R/python/java软件)软件版本如何管理,各种编程语言环境如何管理,模块如何管理?(尤其是大部分没有root权限)
这些知识需要深度理解,所以一般初学者肯定会遇到问题,自己要多看教程和视频跟着了练习,但总会有一些不是你立即就能解决的,不要纠结,继续学习,不久之后回过头来就明白了。
翻译成生物信息学语言就是:测序文件在哪里?测序文件有多大?测序文件的格式fastq/fasta是什么?
前几行怎么看,参考基因组如何下载?参考基因组如何建立比对索引?blast软件如何安装以及使用?
比对结果如何看?结果如何过滤?两次结果如何比较?
建议自己安装bio-linux系统,里面会自带很多生物信息学测试数据(fastq,fasta,sam,bam,vcf,gff,gtf,bed,MAF......),安装系统的过程也是熟悉linux的过程,熟悉这些数据格式既能加强生物信息学技巧,也能练习linux操作。
不懂的名词,赶紧谷歌搜索,多记笔记。
二是shell脚本,类似于windows的bat批处理文件
懂很多预定义变量 .bashrc/env/HOME/
学会一些控制语句 while/if/for/ 批量执行命令
开始自定义函数,避免重复造轮子。
了解 awk/sed/grep等文件操作语言,短小精悍,很多时候可以不需要编程。
正则匹配技巧,find函数使用
了解编程技巧 ()[]{} $$ 等符合如何使用,技巧有哪些,加快你数据处理能力(建议看shell 13问)
翻译成生物信息学语言就是:要深度组合这些命令,并且通过shell脚本,把它们在实际生物信息学数据处理中应用起来,需要很多的实践操作,可以借鉴EMBOSS软件套件,fastx-toolkit等基础软件,实现并且模仿该软件的功能。
尤其是SMS2/exonerate/里面的一些常见功能,还有DNA2.0 Bioinformatics Toolbox的一些工具。
不懂的名词,感觉谷歌搜索,多记笔记。
基本上要了解到这里才能勉强算是一个合格的生物信息学工程师。
三是高级运维技巧
w/last/top/qsub/condor/apache/socket/IO/ps/who/uid/
磁盘挂载/格式化/重启系统/文件清理/IP查看/网络管理/用户管理/目录结构了解/计划任务
各种库文件了解。
这个强烈建议初学者不要过于纠结,稍微了解为佳。
不懂的名词,赶紧谷歌搜索,多记笔记。
学习linux基础知识的同时,就可以开始项目实战,在实战的过程中要随时思考记录如何应用linux知识辅助生物信息数据处理?
并整理学习笔记以及经验分享。