生物信息学书籍分享
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了生物信息学书籍分享相关的知识,希望对你有一定的参考价值。
参考技术A 不论你是刚入门学习生物信息学,或者是刚开始分析数据,亦或者是从事生物信息学工作的科研人员,收藏一些经典的书籍,不时地拿出来温习一下!1. 生物信息学札记
这是一本较为实用的生物信息学入门学习的国内教材。目前该书已经出了第四版。
2. Lewin's Genes XII
这是学习分子生物学、分子遗传学、基因组学的最佳参考书之一。了解生物信息的世界少不了它。
3. 分子进化与系统发育
学习分子进化与系统发育的入门教材;做进化分析的首要必读书,俗称绿宝书的也是这本。如果你学习分子进化,可以收藏一下。
4.Bioinformatics with Python Cookbook 2nd
本书适用于数据数据科学家科学家,生物信息学生物信息学分析师,研究人员和Python开发人员,他们希望使用基于配方的方法解决中到高级的生物和生物信息学问题。
5.Bioinformatics with R Cookbook
本书主要介绍如何利用R包来处理生物信息学问题。
6. Bioinformatics Data Skills
学习生信的入门好书, 比较适合对Linux、Python等有一些基本了解的同学学习。
经验分享|如何从Perl语言小白变成大神
运营
干货
深度
报道
观点
运营
干货
深度
报道
观点
运营
干货
深度
报道
观点
运营
干货
深度
报道
观点
运营
干货
深度
报道
观点
本人系在读博士,涉及生物信息学领域也有五六年了,从一个生物信息学是什么概念都不知道的小白翻滚摸爬到今天,终于对这一领域知道了个大概,会分析一些数据,算是基本入门了。分析生物信息学数据,掌握一门以上的编程语言是必不可少的,这能极大的帮助你提升处理数据的效率。本人刚涉及生物信息学时就开始学习Perl语言,如今已经能熟练利用Perl语言处理各式各样的数据,算是略有小成。今天本人就简单聊聊个人学习Perl的经验,我是如何从一个菜鸟成长为一个伪大神的。
记得当年刚读研时,跟的导师有一些高通量测序数据需要分析,那会儿组里只有一位大师兄会生物信息学分析,也会编写Perl脚本。但是这位大师兄很快就要毕业了,他一走我们就人才短缺了,所以当务之急就是把我们新招的这一批研究生培养起来,于是乎我们马上热火朝天的开始学习生物信息学。
学习生物信息学基本概念啊、分析软件啊等过程这里就不废话了,我想说的是那会儿第一次接触到了Perl语言。大师兄把他写好的很多Perl脚本给我们,教我们怎么使用,然后让我们帮他做分析,他就做甩手掌柜忙自己的去了。当我执行师兄给的序列拼接脚本时,屏幕上刷刷刷出现了软件运行的信息,一段时间过后目录里出现了结果文件,一打开发现这么多的小片段序列竟然已经组装成了几条长序列。我满脸崇拜地望着大师兄的背影,实在太神奇了。
这激发了我学习Perl的强烈兴趣,我立即买来Perl的书籍开始学习。我看的第一本书是《Perl语言入门》,称为“小骆驼”,是Perl入门学习的首选。我看的过程中不断的点着头,原来这就是标量,那就是数组,循环语句有for、while、until等,哈希表就是让每个key对应一个value,正则表达式可以匹配到目标文本内容……这本书读起来似乎很容易理解。我跟着书中的例子一句一句代码试验过去,时不时按自己的理解修改一下,发现基本都能成功实现,我不禁有点自得,原来正如引言所说,Perl的确很容易学。
我看完这本书,立即开始摩拳擦掌,想要写出一个完整的脚本。首先我想写一个脚本统计一个fasta文件里每条序列的长度。我知道首先要指定句柄打开该文件,然后用while循环读取文件内容,我很快的写好了“open IN,$ARGV[0];while(<IN>)”,然而接下来我就傻眼了,完全不知道下面该怎么继续写。我知道如何用正则表达式匹配一行序列名称和一行序列,也知道用length就可以计算出一条序列的长度,可是当要读取整个文件,计算所有序列的长度并输出结果的时候,我怎么也不知该如何实现。我又翻了一遍这本书,也没发现哪里告诉我该怎么写。虽然只是看完入门这本书,可是连这么简单的几行代码还是写不出来,这回我明白Perl并不是表面上那么容易掌握了。
其实学编程语言就像我们从小开始学写字、组词、造句,然后学着写出一个段落,最后到一篇完整的文章,这个过程是需要一步步循序渐进的。此时我认得了Perl的基本元素和命令,以及一些简单的代码和功能,但还没学会如何有序的将这些代码组合在一起,形成连贯的完整的代码。这就需要真正理解代码是如何运作的,书上无法回答你,短时间内你也很难领会,只有通过自己不断的去学去写,去理解代码的作用和意义,然后想尽办法通过代码实现自己的目的,你才能在某一天突然明白就是这么回事。
我看了好几遍《Perl语言入门》,还是在实际应用中写不出代码。但是我并不沮丧,因为我手里有大师兄给我的很多Perl脚本,而且知道这些脚本的用途以及使用方法,这对一个初学者来说是一个珍贵的宝库。当我第一次看这些脚本时,都是乱七八糟的字母和符号,简直是天书。随着我看完《Perl语言入门》,我慢慢能看懂师兄的这些脚本中的大部分代码,都是书中提及的命令,原来竟可以如此使用。我仔细把这些脚本的每一行代码都看下来,去理解它们的含义。看完后就关掉,然后开始自己写,一个字母一个符号的输入,尝试着实现同样的目的。
作为一个之前没接触过编程的初学者,在开始的模仿与摸索中,我发现自己不是少个分号,就是少一个括号,或者哪里语法错误,总之一不小心就出错,不断的提示“syntax error at……”,非常郁闷。这是一段难熬的时光,既不能独立写下一个脚本,又需要使劲琢磨别人的代码是什么意思,还老是被莫名其妙的错误所折腾,甚至明明没报错却出现混乱的结果文件,然后不断检查脚本哪里有问题,时刻考验着你的耐心和信心。但是当你坚持下去了,不用多久,你就能看到自己取得了巨大的进步。
不到一个月,我就基本能自己写出代码了。我掌握了大部分大师兄写的功能较简单的脚本,能够独立写脚本处理一些常规的数据,例如去除高通量测序数据的低质量序列、对大量的数据去重复或者挑选出重复的数据、把不同文件里的相同条目对应的内容合并到一个文件等等。在这个过程中,我理解了Perl语言处理文本的基本过程,当你用while命令读取文件内容时,文件的内容是一行一行被代码识别和处理的,如果一行的内容满足代码设定的条件,即开始执行,如果不满足条件就立即去识别下一行,直到下一行文本内容满足条件。理解了这个,你就能把整个文本内容拆分成一行一行,根据每一行内容的特征,利用正则表达式区分识别,然后进行相应的处理和输出,这样一来就很容易实现代码的功能了。
到这个时候,我总算是Perl语言编程入门了,想到自己竟然也掌握了一门计算机语言,可以向计算机小白们炫耀一番,心里不禁一阵得意。但是得意完后我也知道自己仍是菜鸟,看到一些大神们的Perl语言代码,真是出神入化,寥寥两行代码竟然能实现我写十行代码的功能。他们的逻辑与手法,我很多都看不大懂,看来我还有很长的路要走啊。
但是既然已经一只脚踏入Perl的世界,接下来的路就好走的多了,只要愿意花时间继续学习,有一定的逻辑与领悟能力,成为一个Perl大神并不难。毕竟Perl主要还是用来处理数据和文本的工具,不像其它编程语言那么复杂深奥。所谓一通百通,一个类型的数据会处理了,其他类似的数据基本大同小异,生物信息数据再复杂也就那么些类型,所以随着经验的积累,不用多久,你就能熟练利用Perl语言处理各式各样的数据了。
随后的我,又花了半年看完并领悟了《Perl技术内幕》的前面十四章。《Perl技术内幕》共二十八章,全面介绍了Perl的所有基本命令与功能。为什么我只看了前十四章呢,因为那会儿的我完全看不懂后面的章节,不信你自己去看看就知道了。实际上只有前面十四章讲的是数据与文本处理,看懂这十四章就完全够用了。《Perl技术内幕》弥补了我对Perl语言基本命令的漏缺,以后我哪里不明白或者需要用到某些代码就翻出来看一眼,这本书就如同我的字典一般,对我帮助极大。
再后来,经过好几年的实践与学习,我已经对各类数据的处理信手拈来。我可以用Perl语言建立一套完整的数据分析流程pipeline,如同当年大师兄一般。我学会了利用Perl的许多模块进行更快捷的功能,学会了利用Perl对mysql数据库的数据进行读取与输出。我还自创了哈希和数组的高阶多维用法,下次再跟大家分享。 现在,同学们都来找我帮忙写个脚本,我非常有成就感,俨然一个伪大神,多年的学习与付出总是有回报的,这里请容我得瑟一下。
最后,简单说一说关于Perl的最重要学习内容。首先是正则表达式,因为Perl主要处理文本数据,需要正则表达式来匹配识别目标条目,十之八九的Perl脚本都会用到正则表达式,这个必须得掌握;其次是哈希表和数组,我们利用哈希表和数组存储目标条目对应的数据,才能大量的有针对性的进行每个条目数据的处理与输出,这里强调哈希表非常强大,请用心学习领会,用得好简直有如神助;然后就是循环语句与条件语句,只要掌握for循环、while循环、if语句等几个常用的语句就够用了,而且非常容易掌握,只要看几个例子就会用了;剩下的就是掌握Perl的一些常用函数,如split、join、substr、exists等,以及Perl的基本知识,如标量、变量、运算符等。掌握了以上这些内容,就基本能处理绝大多数的常规数据,然后再学会一些逻辑思想和算法,你就能写出更复杂更巧妙的脚本。至于其它Perl的内容,当你以上大成,有需要进一步深入时,再行学习不迟。
最后的最后,我想说学习Perl最难的就是入门,这个关卡过了,后面的学习过程就会水到渠成。总结一下Perl快速入门的经验,当你开始学Perl的时候,几本Perl的书籍是必要的,必须先学会Perl的基本知识,这是看懂和学习脚本的前提;然后尝试自己写代码,不会写就先模仿别人的脚本,先从简单的脚本开始,然后理解消化人家的脚本,在这个基础上自己学着去修改去创新。到一定程度后,你就能理解大多数代码的用法,这时候,你需要找机会不断地写代码,尝试在各种情境下实现目的,虽然很多时候你会无法实现目的,但是通过看Perl进阶的书籍、请教他人或者参考网上的技术分享,你得千方百计找到方法并掌握该方法。这样,通过坚持与实践,你很快就能写出脚本,熟练处理各类数据了。
以上是关于生物信息学书籍分享的主要内容,如果未能解决你的问题,请参考以下文章