转载自:https://www.zhihu.com/question/20543692/answer/277126384

什么是生物信息学

生物信息学与以往的传统生物学不同,它本身是一个混合体,而且在今天看来它应当还要包含现在的NGS和基因组学。我认为,它重在数据,因此在这个领域中比较重要的是数学和计算机——计算机我指的是:编程能力和算法设计能力。这是我的切身体会,许多生物知识其实可以往后慢慢学,不必一开始花费大量时间补充生物知识

但生物信息毕竟还是和生物有关,毫无生物知识其实也说不过去。那么对于初学者来说,想要进入这个领域,我觉得一开始需要重点搞清楚几个基本概念。比如,什么是基因组,什么是转录组,什么是蛋白组,什么是染色体,什么是基因,什么是基因重组,什么是进化/演化,什么是表观遗传,什么是变异,变异类型有哪些,NGS技术是什么,测序仪的工作原理是什么,DNA是如何被测出来的等这些东西。因为,你只有真正了解数据是如何来的,才能更好地明白数据该如何处理和分析,以及如何才能有效地挖掘出它背后隐含的生物知识。

至于分子生物学中诸多涉及细胞机制机理的知识我觉得在刚开始的时候反而可以缓一缓。我本来是学物理的,做生物信息可以说是半路出家,但其实没觉得有什么障碍,后来实际需要的时候慢慢补上即可。推荐大家买本《基因X》屯着——这是一本有厚度的基因必读书(曾经是《基因8》),作为参考书,平时有空的时候记得多翻翻。

此外,我觉得尽量避免去看生物信息学导论那类书,很多都太旧了,用处不大是一个方面,关键是还会浪费不少时间。

好奇心、兴趣和目标

这应该是促进我们学习的第一要素。所谓,“知之者不如好之者,好之者不如乐之者”。兴趣的力量是强大的,基本上是你乐于继续下去的动力来源。如果仅是以赚钱为目的的话,那么我觉得还是另择一行吧,有很多其它更适合赚钱的领域。那么话说回来,要培养兴趣的话,我们可以先了解现在整个基因科技行业的发展情况,了解学习这些知识都可以做些什么,能够解决什么问题。然后再定一个目标,完成一个具体的项目,自学最怕没有目的性,在没有他人可以指导的情况下,很容易迷失方向。但如果没条件的话,可以尝试利用现有的数据(比如:千人基因组项目,GIAB等)复现它们的成果,甚至只是构建一个分析流程也行,这样子学起来才会比较高效,同时也有利于夯实所学的知识。

使用Google

条件允许的话,请使用Google。在这个信息时代中信息已经足够多了,使用Google至少可以更快让你找到想要的东西,而学习生物信息,我们经常需要找东西。

那么,在有了上面这些基本的认识和目标之后,我们就可以开始了。

Linux

基因数据分析,极度不推荐在Windows下完成,有很多的工具不支持,而且不利于学习,也不利于我们对数据的理解。因此掌握Linux,特别是直接在Terminal中进行数据分析是必须的。

不过,不用太担心,我们不需要成为Linux专家。对于生物信息研究人员来说,只要了解Linux的文件系统结构,能够在Terminal中灵活运用基本的Linux命令就足够了,但vi需要掌握——我们编写程序时需要用到它。不过要达成这些目标不需要看大部头的Linux书籍——这个也是我想给所有要学习生物信息的小伙伴们提个醒,这样可以节省很多不必要花的时间,不然等你看完一大本Linux书,恐怕兴趣也都被磨得差不多了,要直奔目标。

我自己使用Linux的时间超过8年,但是所使用的命令,合起来频度超过99%的竟然不超过20条!基本上就是在接触生信的第一天学会的,而对于聪明如你们的人来说,相信一定可以用更短的时间融汇贯通,对于这几个命令我简单列一下(注意都是在Terminal模式下):

pwd       列出当前目录的完整路径,明确你在哪;
cd        跳转到其他目录,两个好用的cd命令,"cd -" 跳回最近一次的目录,"cd .." 退回上一层目录;
ls        列出当前目录内容,最好加上 -l -rt 参数,会更加清晰,目的是明确目录下都有什么;
mkdir     创建目录;
rm        删除文件或者目录;
mv        重命名文件或者目录;
cat       打开文本文件,内容输出到屏幕;
less -SN  打开文本文件,这个是查看文本文件更合适的方式;
head -n   查看文件前n行;
tail -n   查看文件尾n行;
wc -l     计算文本文件的行数;
”|“       管道操作;
grep命令
awk命令
sed命令
sort命令
du -sh ./  检查当前目录所占空间大小;
bc -l:    启动Terminal下的计算器,可以在这里进行简单的数学运算,输入"quit"就可以退出;
chmod:    修改文件或者目录权限;

接下来,可以继续看一下“极客学院”中那一篇“一步一步学Linux”的文章:http://wiki.jikexueyuan.com/project/learn-linux-step-by-step/,我觉得那篇博文就足够了。值得你多花些时间研究的是Linux中 “|” 管道命令的妙处。另外,掌握基本的grep,sed,awk操作。我之所以推荐这三个命令是因为,它们很适合快速进行简单的文本操作,可以让很多工作直接快速地在命令行上完成,而不需要编写程序。比如抽取一个文本文件特定的几列信息、匹配相关信息、修改输出等,用awk实现起来非常简单。上面这些掌握了之后,你再学习如何利用这些命令和相关执行程序组建简单的shell任务流程,到这个阶段,Linux部分基本就OK了。至于如何在Terminal中编译程序或者安装软件包,一般都有具体教程,按照教程来就可以了,真碰到问题可以多Google。

至少掌握一门高级编程语言

生物信息是一定离不开程序设计的,而且你不能只会R。我建议先学Python(不推荐Perl),它很容易上手——被称为”可执行的伪代码“,社区强大而活跃,碰到问题很容易找到解决办法。而且,支持组学数据分析的工具包也很丰富。还被誉为数据科学第一语言!不但可以进行文本处理,还可以进行统计分析,机器学习,或者作出精美的数据图等等,比起曾经的Perl真的强大很多。

在掌握了Python之后,我推荐的另一门高级语言是C(或者C++),它是难的,我之所以依然觉得有必要,是因为它可以让你具有干大事的能力。

虽然在实际的工作中Python已经足够强大,基本上可以应对项目中的各类大小事宜。但在我看来,如果你希望技术上做得更强,C一定是绕不开的,学会C/C++至少有两个好处:

  • 让你理解机器的工作原理,理解你的程序是如何运作的。这非常有助于你以后写出更加优秀的代码;

  • 设计高效率的算法模块,往往需要借助C/C++,而且设计出来的模块还可以很方便地包装起来用在Python中。同时,也有很多优秀的组学数据处理包是C/C++写的,比如,SSW、Bamtools和SeqAn(https://github.com/seqan/seqan)——这个包很强大——我们可以用它编写比对算法,变异检测算法等。

另外,我认为R是很容易学的,这里也无意起语言之争,虽然Python比R好。只有你有兴趣,在有了上面的基础之后,可以在很短的时间内学会。

Python教程很多!我这里推荐一下gitbook上的这个《简明Python教程》:https://www.gitbook.com/book/lenkimo/byte-of-python-chinese-edition/details 。另外,廖雪峰的Python教程也不错。

掌握常用的组学数据分析软件

生物信息的工具众多,不过数据分析过程中常用的工具和软件还是可以列出来的,主要是:bwa,samtools,picard,GATK,bedtools,bcftools,vcftools,FastQC,MultiQC,VEP这些。基本都是在构造如WGS、WES这类分析流程的时候需要被用到的。另外,还有关于GWAS的一系列分析工具等,这些其实可以根据后续的具体项目逐步深入。除了工具之外,基本的数据文件格式也必须认识,比如:Fasta,Fastq,BAM,gff,vcf等,我在下文中推荐的《Bioinformatics Data Skills》那本书里面就系统讲了诸多在基因数据分析过程用到的工具和文件格式解析,值得一读。

实践

实践是必须的,如果没条件的话可以到Rosalind:http://rosalind.info/problems/locations/ 这个网站上做些训练题,这上面有着很多有意义的生物信息题目,从易到难的都有,涵盖的面也比较广(包括RNA,DNA,蛋白),值得一战。另外要积极寻找到大型基因科技公司(比如华大基因)或者基因研究所实习的机会,如果是在校学生有可能的话应该争取到海外顶级机构留学。

构建一个流程,要敢于造轮子

在掌握了Linux和编程知识之后,建议利用公开的数据构造一个完整的数据分析流程,比如全基因组数据分析流程或者复现一个项目的全过程。现在最好的一个公开数据来自Genome in a bottle(GIAB):http://jimb.stanford.edu/giab/ 。你可以用这个数据参考GATK的最佳实践或者不久前我写的一个“从零开始完整学习全基因组数据分析系列”的文章,构造一个WGS数据分析流程。需要注意的是,你在构建、复现甚至重造的时候,要尝试去理解各个环节的意义,不要只是机械地将一个分析过程串接起来,因为你的目的是学习,碰到问题时也尽量自己解决,这样才能真正掌握它

数理知识

生物信息离不开数学,准确地说是离不开统计学。有太多的数据分析都需要统计学知识的参与,包括常用的假设检验,贝叶斯推断、随机森林,SVM,回归分析,PCA等。因此,在你获得初步的基因数据处理能力之后,更进一步应该做的就是加强这方面的知识。

多看优秀的组学算法

站在巨人的肩膀上才能看得更远。生物信息领域有一个比较突出的特点,就是绝大多数的东西都是开源的,因此很多优秀的算法和程序你都能够在github上直接找到,比如,比对软件bwa和后缀树算法,Smith-waterman局部比对算法;基因组组装软件SOAPdenovo2的de Bruijn graph;变异检测GATK、freebayse、Platypus应用到的贝叶斯、最大似然、EM、Pair-HMM和高斯混合模型等;变异注释工具VEP,GWAS的一系列方法等。特别是GATK,它的文档写的很优秀,因此值得多泡在它的一系列文档中。通过学习它们的源码,不但可以精进你的编程能力、算法设计能力,更重要的是还能让你深刻理解诸多组学数据分析的奥秘!这会在不知不觉中提升你对基因数据的理解,就如同维纳斯的面纱在你面前一点点被揭开了一样,有种豁然开朗的感觉,你不再觉得那堆东西很神秘了。

不要固步自封

最后,一定要紧跟前沿。生物信息学以及现在的基因组学,知识的更新迭代可谓一日千里,可能半年不留神就会落后,所以平时一定要多看前沿的文章成果。但那么多杂志应该看哪些呢?我的建议是直接看最顶级的CNNS(Cell,Nature,NEJM,Science)杂志,如果时间不够用那么更加不必看其它的,原因有三个:

  • 这些顶级杂志所代表的基本上就是领域的最前沿——也正因此它们才会在CNNS上发表。虽然其它杂志也有可能,但概率低很多,因此不必浪费时间,要看就看最好的

  • 这些杂志上的文章大多都能给你带来新的视角,能够开阔你的眼界。带来看待问题、解决问题的新思路和新想法。这一点我觉得是更加重要的,这会有助于你做出创新性的工作

  • 此外,我认为多看这类文章,也会有更高的概率在这类杂志上发表成果。

另外,也可以多看看生物探索、奇点网这些公众号,上面每天都会报道很多关于这个领域的前沿信息,当然也别忘了请一定要多!多!关!注!我!(认真脸)另外,加入一些优质的生物信息交流圈,有机会的话参加一些重要的基因组学会议,千万不要关起门来闷头学,一定要看着外面的世界。

书和课程推荐

推荐两本基础的基因数据处理书籍,都是基于Python语言的:

1. 来自OReilly《Bioinformatics Data Skills- Reproducible.and.Robust.Research.with.Open.Source.Tools》主要偏重工具的使用和数据文件的处理,虽然讲的不是很深入,但是作为生物信息初学者的入门书来说还是十分有价值的,2015年出版的,也不算旧。

2. 第二本是《Bioinformatics with Python Cookbook》,同样是2015年出版的。这一本相比于第一本来说会难一些,它会侧重于一些主题性质的内容,比如群体遗传学,基因大数据这一类。

最后,再推荐几个在线课程。第一个是Coursera上的一个课程:https://www.coursera.org/specializations/genomic-data-science

这是约翰霍普金斯大学组织的一个系列课程,紧扣现在主流的组学数据分析,非常适合于入门学习,是一个精品系列,讲的很好,力荐,但是需要收费,只有7天的免费体验时间。

另外,EMBO上也搞了一个,不过我认为没有Coursera的系统全面,但它是免费的。https://www.ebi.ac.uk/training/online/course/embo-practical-course-analysis-high-throughput-seq

该如何自学入门生物信息学相关推荐

  1. WPF自学入门(十一)WPF MVVM模式Command命令 WPF自学入门(十)WPF MVVM简单介绍...

    WPF自学入门(十一)WPF MVVM模式Command命令 在WPF自学入门(十)WPF MVVM简单介绍中的示例似乎运行起来没有什么问题,也可以进行更新.但是这并不是我们使用MVVM的正确方式.正 ...

  2. python自学行吗-自学入门Python能学会吗?

    原标题:自学入门Python能学会吗? 学习 Python,几行代码就可以实现一个爬虫,几个函数就可以做简单的数据分析,写一个小工具.小游戏也是分分钟的事情--这种成就感,会激发你最原始的兴趣.因此就 ...

  3. python能自学成功吗-自学入门Python能学会吗?

    原标题:自学入门Python能学会吗? 学习 Python,几行代码就可以实现一个爬虫,几个函数就可以做简单的数据分析,写一个小工具.小游戏也是分分钟的事情--这种成就感,会激发你最原始的兴趣.因此就 ...

  4. Photoshop完全自学入门与经典实例全视频教程

    基本信息 讲师: 李辉 时长:43分钟 集数:20 每集定价:2 元 视频内容: 本套PS视频教程共20讲,分为基础篇和实例篇,各10讲. 基础篇重点介绍了学习Photoshop软件时涉及的有关入门知 ...

  5. 一个前端的入行故事,零基础,2个月自学入门前端,半年从外包进淘宝

    我,Scott,一家创业公司的 CTO. 从业 6 年却很少写文章,近一年来接触了几十个刚毕业的前端新人,也面试了 100 多个前端工程师和 Nodejs 工程师,对于前端发展的这个职业算是有些感触吧 ...

  6. 史诗手册!微信小程序新手自学入门宝典!你想要的都在这里

    一.小程序官方指南 1:官方开发工具下载: https://mp.weixin.qq.com/debug/wxadoc/dev/devtools/download.html?t=201714 0.12 ...

  7. 如何自学入门网络安全?

    我也是自学这样过来的 这个行业优势就是工资高,缺点就需要一直学,卷得要死,不是跟别人卷,而是自己卷,一会后面细说 一.网络安全学习的误区 1.不要试图以编程为基础去学习网络安全 不要以编程为基础再开始 ...

  8. matlab自学入门

    (MATLAB是我很早之前自学的一个工具,十分简单,当时是用老师的PPT自学了一下就清楚了,不过因为不常用,所以有很多函数,像num=zeros(m,n)%创建一个m*n的空矩阵这种函数有时候比较傻乎 ...

  9. 网络安全自学入门:(超详细)从入门到精通学习路线规划,学完即可就业

    很多人上来就说想学习黑客,但是连方向都没搞清楚就开始学习,最终也只是会无疾而终!黑客是一个大的概念,里面包含了许多方向,不同的方向需要学习的内容也不一样. 算上从学校开始学习,已经在网安这条路上走了1 ...

最新文章

  1. 深入Linux内核网络堆栈
  2. struts2中一个表单中提交多个请求(动态调用方法)
  3. Customer Report这个Fiori应用必须和CRM耦合在一起么
  4. mysql sqlserver schema_MySQL数据库数据迁移到SQLserver
  5. c语言 包络算法,包络检测C程序
  6. TextView图文混排
  7. Java Arrays.sort()函数
  8. 万能日志数据收集器 Fluentd - 每天5分钟玩转 Docker 容器技术(91)
  9. 最新的Jetson TX2刷机细节,以及一些问题(device not managed:选择network layout时的第二种后wifi消失的问题)
  10. 为什么在idea没有preview_设计学研究的idea从哪里来?
  11. AT2164 AGC006C Rabbit Exercise
  12. windows 内核对象核心知识点
  13. AI为移动医疗APP加码,智能提醒你:该吃药了!
  14. SQL语句基本用法格式
  15. 微信小程序新手向——界面布局
  16. 英语语法学习--名词
  17. highcharts 开发笔记
  18. 为什么总是封板又打开涨停_股票反复打开涨停是什么原因?
  19. mysql 小于号转义_mybatis sql语句配置大于号小于号的处理
  20. 一份完整的app产品运营推广方案,app推广运营的方法(二

热门文章

  1. 【东北师范大学】考研初试复试资料分享
  2. Wappalyzer — 查看網站所使用的環境、技術、主機與分析工具,一覽無遺!
  3. 带你制作一个拥有图形用户界面的彩色动态二维码生成器
  4. java计算机毕业设计家装建材网源程序+mysql+系统+lw文档+远程调试
  5. 计算机软件著作权可否转让,计算机软件著作权能转让吗
  6. 在报表开发工具Stimulsoft Report报表设计中使用存储过程?
  7. uniapp 之 Base64图片的显示问题以及保存到相册
  8. 自媒体人怎么写出爆文?这些技巧让你轻松10W+
  9. 那些年,我们一起参加过的ACM
  10. 商城拍卖活动设计方案 瞬时并发高可用