如何自学生物信息学:从菜鸟到专家

尽管人类已把航天器送出太阳系,奔向了无尽的宇宙。而人类的眼睛,借助天文望远镜早已延伸到亿万光年之外。尽管蕴藏在原子内部的巨大能量已被发现并加以利用。但时至今日,人类对自身的了解,才刚刚起步。

一、生物信息学:源起

人类基因组计划(Human Genome Project,HGP),是人类下定决心认识自己的开始。这是一项可与阿波罗登月媲美的宏伟工程,它的目标,就是测定人类的基因组序列。随着计划的开展,产生大量的基因组数据面临分析困难,计算机辅助分析的手段不断被开发出来,进而形成了一门专业的学问——生物信息学。

下面是人类血红蛋白的一个beta亚基(HBB)的基因序列。这种序列类似于一副扑克牌,但只有不同的4张,分别是A、T、C、G。所有核酸都是由这4张牌不同的排列组合而成。比如人类基因组中这样的牌有30亿张。生物信息学是处理海量序列数据的利刃,是遨游数据海洋的一叶扁舟。

NM_000518.4 Homo sapiens hemoglobin subunit beta (HBB), mRNA
ACATTTGCTTCTGACACAACTGTGTTCACTAGCAACCTCAAACAGACACCATGGTGCATCTGACTCCTGA
GGAGAAGTCTGCCGTTACTGCCCTGTGGGGCAAGGTGAACGTGGATGAAGTTGGTGGTGAGGCCCTGGGC
AGGCTGCTGGTGGTCTACCCTTGGACCCAGAGGTTCTTTGAGTCCTTTGGGGATCTGTCCACTCCTGATG
CTGTTATGGGCAACCCTAAGGTGAAGGCTCATGGCAAGAAAGTGCTCGGTGCCTTTAGTGATGGCCTGGC
TCACCTGGACAACCTCAAGGGCACCTTTGCCACACTGAGTGAGCTGCACTGTGACAAGCTGCACGTGGAT
CCTGAGAACTTCAGGCTCCTGGGCAACGTGCTGGTCTGTGTGCTGGCCCATCACTTTGGCAAAGAATTCA
CCCCACCAGTGCAGGCTGCCTATCAGAAAGTGGTGGCTGGTGTGGCTAATGCCCTGGCCCACAAGTATCA
CTAAGCTCGCTTTCTTGCTGTCCAATTTCTATTAAAGGTTCCTTTGTTCCCTAAGTCCAACTACTAAACT
GGGGGATATTATGAAGGGCCTTGAGCATCTGGATTCTGCCTAATAAAAAACATTTATTTTCATTGC

参考: 为什么说生物信息学是真正的大数据专业?

二、生物信息学:全景

生物信息学的应用领域非常广泛。小到细胞,大到生命之树,只要是生命,就有核酸,只要有核酸,就有测定序列的需求。

因为核酸是遗传信息的载体,遗传信息描绘了生命的蓝图。种瓜得瓜,是男是女,都由遗传信息决定。

测定核酸序列,才能从源头上探索生命的奥秘。当然我们也要小心还原论,认为只要测定序列就可以知道生命的所有秘密。但是对一个生命的研究,没有其核酸序列显然是不完整的。

我们可以从三个视角来总结生物信息学的应用领域,分别是:

  • 细胞
  • 生物体
  • 生命之树。

我专门有一篇文章介绍:生物信息学:全景,在此不展开。

三、从菜鸟到专家

1. 职业前景

生物信息学作为交叉学科,既要生物学知识,又要数理知识,还要编程。很多初学者往往感觉无从下手,产生畏难情绪,这是对自己的定位不清楚的结果。

我把生物专业人员的职业发展分成三个方向:

    1. 生命科学专家。就是专注于解决生物学问题,不需要花心思去掌据计算机知识,可以与生信专家合作。生物信息学是数据驱动的科学,你手里有好数据,有资源,不愁没劳力、没合作者。很多老板,PI,就是这类人。
    1. 计算生物学家。专注于开发生物信息学软件,为行业提供工具的人。比如开发短序列比对软件BWA等一系列工具的李恒等。他们是Tool makers。
    1. 介于两者之间,既懂点生物,也懂点编程,这就是搞生信的绝大多数的普罗大众了。通常是Tool users。
    1. 有没有两者融会贯通的顶尖高手呢?我暂时还说不上一个名字来。

2. 基础知识

假定你我都是第三种人。身处第三世界,那如何获得比较优势呢?

    1. 分子生物学细胞生物学,掌握基础知识。
    1. Linux,熟练掌握常用命令;
    1. Python,熟练掌握基础语法;

以上三种技能,需要优先掌握。并且这三种技能是可以在短时间内攻克的,一旦学会,终身受用。

对生物学知识的要求

生物信息学一开始对生物学的要求并不高,只需要具有分子生物学和细胞生物学基础知识就可以了。知道细胞里面有什么,中心法则上下游的一些概念。

参考书:《基因XII》。

为什么要学Linux?

因为生物信息学处理的数据通常比较大,普通笔记本和台式机根本承受不了,必须放在服务器上处理。而Linux是最常用的服务器操作系统。很多生信软件都是为Linux系统开发的,不会Linux,就没法使用这些优秀工具。不用担心,Linux是非常容易掌握的,因为我们的目的是使用,而不是研究操作系统。

参考书:
生信人的自我修养:Linux命令速查手册。相关命令我整理在一篇文章中,掌握这些命令足够用了。

《鸟哥的Linux私房菜》。作为参考书帮助理解上述手册中的命令。

为什么要学Python?

生物信息学使用各种软件,如何把不同软件串联起来工作,Python就是非常好的胶水语言。其次现成的工具有时不能满足数据分析的所有需求,难免需要自己写一些脚本协助解决,比如软件可能会给出许多结果,其中有不少的噪声,如何过滤这些结果,需要脚本。下面是一些比较好的教程。

  • 1.《Python简明教程》。适合快速入门。
    1. 廖雪峰的Python教程。主要是掌握Python的语法,数据类型,文件读写等基础知识,像图形界面,网络编程,数据库可以先不用学。
    1. Python官方文档。官方文档是最好的学习资源。入门之后,应该反复看官方文档。

3. 成为工程师

组学知识

生物信息学为测序而生。当前最成熟,应用最广的是二代测序(Illumina,MGI,Ion Torrent)。目前格局大致如下。

  • 一代测序通量低,数据分析容易,因而不需要太专业的人才。
  • 二代测序上游的PCR技术,现在面临NGS的全面挑战。PCR在特定领域有用,如新冠检测;但难堪大用,如肿瘤基因检测方面。
  • 新一代的三代测序,没二代配合还很难单独形成应用
  • 蛋白组,代谢组,刚刚兴起。

组学涵盖面也是非常大的。有DNA-seq、RNA-seq、ChIP-seq,基因芯片等。拿DNA-seq项目来说,涉及多个环节,每个环节可能就是一个工作岗位。

    1. 基因组如何获得?

测序,组装。测序花样多,二代,三代,Hi-C,光学图谱等,用一种技术,还是几种技术组合?有无参考基因组?情况不同,组装策略也不一样。

从研究对象上来说,有人、动物、植物、微生物、病毒、线粒体、叶绿体,不同的研究对象,测序和组装的手段可能都不一样。

    1. 基因组中有什么?

注释基因组中的有效元件,如基因等。这是数学上的模式识别问题。同样研究对象不同,需要的生信手段也不一样。

    1. 比较基因组学

这是目前的热门。如临床上肿瘤基因检测,微生物基因检测等。以肿瘤基因检测为例,需要检测样本中的各种生物标志物,如:SNV/InDel,CNV,Fusion,TMB,MSI,LOH,HRD等。通过我这篇《基因大数据智能生产及分析》笔记。从中可以看到,仅仅在健康领域,基因组学和生物信息学的应用之广。

    1. 生物进化

通过基因组测序,研究物种的进化以及迁徙等,满足人们的好奇心。

由此可见,即便只是基因组学,一个人想掌握所有环节都面临巨大挑战。因此不要试图什么都学,要聚焦自己的课题,否则会很焦虑。

要说哪些东西是组学中必须掌握的,我觉得有以下这些。

测序原理:一代、二代、三代测序。Illumin、MGI、Ion Torrent、PacBio

基本的文件格式:Fasta, Fastq, BAM, VCF, GFF

数据质控:fastp,Fastqc, Multiqc

比对软件:blast等。序列相似,推断结构相似,结构相似,推断功能相似,是生物学的基本假设。因而要深刻理解生物信息学中相似性比对的思想。

其他东西都是根据项目不同具体去了解,比如:

重测序WGS:主要就是走GATK最佳实践流程(针对人类)。

重测序Panel(WES/大Panel/小Panel):主要走Fastq -> BAM -> VCF -> 变异注释流程,用到的软件fastp,bam, samtools,bcftools, varscan, annovar, snpEff, VEP等。

病原微生物检测:主要是质控 -> 降噪 -> 去嵌合体 -> 生成OTU表 -> 物种鉴定 -> 功能鉴定。用到的软件,fastp,vsearch, usearch, Qiim2等。

参考书/在线课程:

《Bioinformatics Data Skills》——讲得基础。印象最深的是介绍find + xargs + parallel用法,至今受用,其他忘了。

《高通量测序技术》——李金明。介绍高通量测序在临床基因检测中的应用。

《生物信息学与功能基因组学》——非常好的入门教材。

《北京大学生物信息学在线课程》——偏重算法。

《山东大学生物信息学在线课程》——我没看过,但很多人推荐。

《陈润生院士中科院生物信息学课程》——课程虽然有点老(07-08年的),但讲解的知识现在也不过时。我当年主要看这个课入门,其次是北大的课。

我的转型之路:一个生信人的自白:从生物转生信,我的学习与工作经历

理论联系实际

最好的学习方法是项目驱动。每接手一个项目,都把它做到极致,这样随着经验的积累,能力自然也提高了。如果没项目,有这几个选择:

  • 找实习单位:有两个大方向,科研或者临床。
  • 参加竞赛:建议先用瓶中基因组计划中的NA12878样本,走GATK最佳实践流程,GATK官方网站有详细的使用文档。
  • 复现文章套路:套路不在多而在精。

业内经常举办一些“竞赛”。组织者获得一些问题的金标准“真相”,如组装一个基因组或评估变异检测流程的准确性等,然后邀请业界内成员在一定时限内来竞争解决这些问题。通过比较基于不同方法的结果,组织者可以评估每一种方法的性能,即真阳性和假阳性,真阴性和假阴性,并通过定义灵敏度和特异性来了解选用何种工具。一些竞赛案例如下。

究优秀生信算法

这一点尤为重要,甚至比自己写软件重要。因为我们大概率写不出优秀的软件。但看优秀的源码,在IT行业是常识,生信也应如此。很幸运许多优秀的生信软件都是开源的,我们有机会通过源码,知道软件具体的工作方式。如此生信技能必将上一个台阶。这是一块硬骨头,也是成为高手的必由之路。

建议结合一本书看:《生物序列分析Biological Sequence Analysis》。曾经华大基因的王俊称赞这本书:是生信最好的教材,没有之一。

生物信息学与数据科学

自新冠爆发以来,生物信息学的分析在整个病毒研究中发挥了重要的作用。从最初的系统发育树证明Covid-19与SARS病毒的亲缘关系,到最近的“基因组+生物地理学”分析,都体现了生物信息学在疾病控制和个性诊疗中的强大应用能力。

今天的文章,何老师来与大家具体聊聊生物信息科学与最近大热的数据科学都是什么?有什么区别?生物信息学家可以转换为数据科学家吗?在这个过程中有什么挑战,数据科学家需要哪些技能呢?

到底什么是生物信息学?
那么到底什么是生物信息学(Bioinformatics)?生物信息学综合了数学、计算机科学和生物学的各类工具,通过处理生物带来的数据获得我们想要的信息从而进行预测。比如,在已知的序列里,用计算机找到它在哪个物种的哪个染色体上的哪个位置?或者是已知了特定序列,在另一些序列里预测组成成分。现在正处基因数据的爆炸时期,尤其是二次测序能产生无限多数据。

生物信息学和传统的生物学不同,包含了NGS和基因组学。只有真正了解数据的来源,才能更好地分析和处理,挖掘出背后隐含的生物知识,那么如果你想进入生物信息领域,你需要的基本知识点有哪些呢?

  • 了解基因组、转录组、蛋白组、染色体、基因、表现遗传、变异类型等一些列生物原理
  • 明白NGS技术、测序仪、NDA检测的基本方法

那么除了基本的生物信息以外,因为生物信息学是重在数据的,所以在这个领域中同等重要的是数学和计算机,主要是编程能力和算法设计能力。那么这就涉及到了,生物信息学专业的学生,究竟要掌握哪些技术技能点呢?

生物信息学家的技术点分布

除了基本的生物基础理论,生物信息学家需要具备以下技术点。当然大家不需要在以下每个方面都是专家,但至少应该了解,并在某些方面有一些实践的经历:

  • 掌握Linux进行在Terminal中进行数据分析
  • 至少掌握一门高级编程语言,首先推荐Python,其次如果有能力掌握C/C++则更好
  • 学会使用常用的组学数据分析软件,比如bwa、samtools和picard等
  • 有一定的数理基础和统计学基础,包括常用的假设检验,贝叶斯推断和回归分析等
  • 多看开源的组学算法,比如在github上多了解
  • 留意最顶级的CNNS杂志

数据科学家们必备的技能点
那么说完了生物信息学,近年来大热的岗位数据科学家们,应该需要哪些核心技能呢(只列举核心的必备技能包):

  • 数学与统计学的知识:统计学、多元微积分、线性代数等
  • 编程技能:Python语言、R语言或Excel等
  • 数据整合与预处理的能力:主成分分析法PCA等
  • 数据可视化
  • 基本的机器学习的技能
  • 终身学习:多利用Github代码库来了解最前沿发展信息
  • 团队协作力
  • 数据科学的伦理道德

其实要成为数据科学家也不是一件容易的事情,因为不仅要掌握上述技能,还要能熟练的应用。

那么这2个领域,求职者能互相切换么?
简单来说,不是任何生物信息学家都能成为数据科学家的,因为需要额外的学习数据分析的新技术和软件,但如果学生选择申请博士/博士后,增强了数据处理这方面技能的积累,这两个的界限会比较模糊。

但两者在工作的领域肯定是有很大不同的,数据科学家一般是在工商业界比较活跃的,通过分析数据来给客户产出新的产品思路,或者预测新的发展趋势。而生物信息学家则更关心的是如何利用生物学的数据,来发掘基因、病理等生物学新领域。

此外数据科学家很注重团队的合作,与和客户的互动沟通,而生物信息学家很多时候是独立思考和实践,较少的机会会进行公共演讲或合作沟通。

总而言之,这两个领域所需的技能是相似的,并且生物信息学家在掌握了一定技能后是可以在数据科学家的角色中进行转换的,但需要调整自己的思维来配合不同的行业。


相关文章:
如何自学生物信息学:从菜鸟到专家
为什么生物信息学难学,却无数人前仆后继?

为者常成,行者常至