作为本科学生物,硕博转行生物信息的人,经常会被人问起,为啥学习生物信息了呢?这背后通常会带着一些困惑,生物信息分析好不好学?

生信的作用越来越大,想学的人越来越多,不管是为了以后发展,还是为了解决眼下的问题。但生信学习不是一朝一夕就可以完成的事情,也许你可以很短时间学会一个交互式软件的操作,却不能看完程序教学视频后就直接写程序。也许你可以跟着一个测序分析流程完成操作,但不懂得背后的原理,不知道什么参数需要修改,结果可以出来,却把握不住对还是错。

我读书的时候,实验室纯计算机出身的人员只占很小比例,更多的是大学期间学生物的;特别的,有个做的挺好的师兄,本科是商科出身。从这来看,像我这样本科学生物转行生物信息还不算是有跨度的。这也从一个侧面说明,专业背景不是能否学好生信的决定因素。

想想自己大学开始自学生信的时候,可以说是一头雾水,只知道先学习编程,查了查资料,是要学习perl语言,但是不知道要在什么地方写,怎么去运行。费了些劲,在windows上安装好perl,写个文本文件,改下后缀,发现文件的图标变成了perl的图标,双击就可以运行了,不会写命令行参数,不会输出重定向,一种傻呵呵的体验。

后来接触了Linux系统,体验到在终端输入命令的快意,才找到了编程的感觉。不过,深深印在脑海里的还是作为一个生信小白的时候,写一个程序不知道在哪写,在哪运行。看过不少的教程都默认学习者会打开终端,会使用终端,会在终端运行命令。而我却是个例外,什么都不会。程序可以照着教程写下来,却不知道怎么运行。所以在我后来写python教程的时候(后台回复python 可获取),第一部分就是介绍程序在哪儿写,在哪儿运行,怎么运行。(最开始学习perl,在研一时在QQ群一个同一大学学长的忽悠下,尝试了下python,那时有些编程基础,寒假在家看了遍《python简明教程》就可以写了,以后也就习惯了这个语言)。

我个人是个理解能力比较差的,尤其是在接触新的领域时,阅读不少教程,总觉得这些教程都是给有些基础的人写的,自己去学习时,需要多方尝试,多多综合,才能找到门路。为了方便自己学习,也为了记述学习过程,就开始写博客去记录,力争从一个小白的视角、从最基础的角度去写作,记述哪怕是最简单的一步操作,一个错误,提供一个近乎人人可以直接上手的教程 (比如虚拟系统Docker的使用教程 -http://blog.genesino.com/2016/07/docker/)和任务流控制管理的Airflow教程 -http://blog.genesino.com/2016/05/airflow/),这些文章被转载后,在同一平台相比于同类的教程阅读量多了10倍,我想这正是因为简单、可操作,为初学者接触这些工具提供了最大的便利)。

在初步知道程序语言怎么运行并能成功运行完示例后,就要系统地读一本简明教程;简明的教程不多见,因为一般的教程都涵盖的面比较广,而我们初期只需要关注最基本的就好。

(所以我提取了我个人认为比较重要的基础内容,形成教程),可以找本经典书,请身边朋友划下重点,先从头到尾读一遍,不管理解多少,然后再读一遍 。读不下去,就抄写一遍。最好的自学方式就是守住一本教材,一遍一遍地去读去熟悉,每看一遍都会有一些了解,从陌生到熟悉,慢慢就串起来了。然后就开始自己去写代码,代码就是我们思想的体现;我在教人写代码时,总会让他先描述下如果没有程序,我们自己是如何一步步的手动处理这个问题的,模拟的是程序运行的过程。理清一遍思路之后,怎么想的就怎么写,只要你敢写,就成功了。

当然这个时候一般会遇到初学,者经常犯的错误,写完代码,觉得自己写的很对,但运行时却总是提示错误,然后总以为是电脑出错了。而绝大多数情况下,错误是我们自己写作的错误;起码在最开始时,要相信是自己的错误,不是程序语言设计的错误。错误的种类就这么几种,比如引号未配对、缩进不对、少了空格、文件名不对、变量名字不一致等。这时需仔细看屏幕提示的错误信息,在提示的错误行附近反复去查看。在之前的python教程和后续的文章中,都有或会提到经常出现的错误和解决办法。

能让程序提示的错误都算不上大的错误,而程序运行成功,不等同于程序的逻辑是对的,获得的结果是对的。程序是我们设计的,多数情况,我们对程序的输出结果是可以预估和判断的,不符合预期的结果是我们最应该慎重对待的。

在能独立写作程序后,一方面是学以致用,在解决问题中逐步学习;这时谷歌是你最好的帮手,把你遇到的错误或想解决的问题的关键字提取出,一键搜索,可以帮你解决大部分问题。另一方面,则是去学习别人的代码、学习初学时跳过的内容,利用社区中提供的优秀的模块或包来简化、加速自己的操作。入了门,就不需要像刚开始时,什么操作都自己去写了,俗语叫“自己造轮子”(但自己造轮子是最好的入门方法);可以用很多经验更丰富的开发人员做好的轮子解决我们的问题。

学习生信从来就不是一个简单的事,需要做好持久战的心理准备。

在学习时,我们都希望由浅入深的逐步深入,不断地练习和实践,这就是为什么我们需要一本书,因为书很系统。但生信发展的历史短于计算机编程的历史,如果想要一门程序设计的入门数据,每种语言都可以找到几本。但想要一个囊括生信的书,就有些难了。本身生信跨领域,需要多学科的知识,而其内部又有不少分子,都囊括了太大,包括的少又有些隔靴搔痒的感觉。

我们当时都是零基础下自学Linux,  自学Python,自学R,自学高通量测序;这些学习经历,之前都零星地记录在博客里。现在回头去看几年前自己记录的东西,觉得好简单,而当时却费了很大的力气。这些零星的随手记,当时也只是为了自己看,到现在确实只有自己能看得懂,不便惠及更多的人。

因此我们创建了生信宝典,希望从不同的角度传播知识。这个不同有三点含义,一是形式上的不同,摒弃之前主编们单人作战想写啥就写啥,而是有组织有计划的内容聚合,提供一系列的教程,由入门到提高。二是内容的不同,不去用网上现有教程的通用数据做例子,而是拿实际生物数据,讲述如何解释生信中普遍碰到的问题,讲述如何处理自己的数据。三是立足点不同。在写作时,我们回到了当年,在回忆中用整个阶段的学习去指导当初的那个小白,从那些会了的人觉得微不足道而不会的人又迈不过的坎入手,直击痛点。知识点的收录依据不是是否炫酷,是否难,而是是否必要。如果必要,再简单,也要提及;如果不必要,再炫酷,也暂不纳入。

通过大量的生信例子、关键的注释和浓缩的语句形成下面的一系列学习教程。每一篇内容都不多,可以当做小说阅读,也可以跟着去练,反复几遍,每读一次都会有不同的收获和体会。

PS. 所有图片来源于新媒体管家插件

知乎阅读三百万的生信学习指南相关推荐

  1. 送书 | 知乎阅读300w+的生信学习指南(更新版)

    先送书 在上周的留言送书活动中,恭喜下面这位读者获得书籍"Oracle高性能系统架构实战大全",请及时与生信宝典编辑(shengxinbaodian)联系. 2020过去三分之一了 ...

  2. 生信学习学的是什么?常识!

    生物信息学学的是什么?常识! 学习的是基本生物学概念的常识! 学习的是计算机基础的常识! 学习的是图形解读的常识! 学习的是统计的常识! 拦住生信学习脚步的不是技术有多难,而是有些常识你还不知道. 这 ...

  3. 生信学习——R语言练习题-初级(附详细答案解读)

    题目目录 1. 打开 Rstudio 告诉我它的工作目录. 2. 新建6个向量,基于不同的数据类型.(重点是字符串,数值,逻辑值) 3. 告诉我在你打开的rstudio里面 getwd() 代码运行后 ...

  4. 计算机通路的基本概念,【生信学习笔记】KEGG分子通路数据库

    原标题:[生信学习笔记]KEGG分子通路数据库 首先什么是一个通路? 通路可以定义为a series of actions among molecules in a cell,细胞中的分子的一系列的行 ...

  5. 生信学习之通路富集一(GO分析)

    生信学习之通路富集一(GO分析): 富集分析的理论知识 富集分析(Enrichment Analysis)是一种广泛应用于生物信息学研究的统计方法,主要用于检验一个基因集合中某些功能或特征的富集程度. ...

  6. 生信学习——R语言学习总结

    写在前面--经过了四十天断断续续的学习,算是对R语言有了初步的了解.其实使用R语言,无非就是对数据进行处理分析,然后把结果可视化.但是数据的千变万化,还有数以万计的函数.数据格式,使得这个过程变得很复 ...

  7. 【生信学习第一天】DEseq2 差异表达基因计算

    一.介绍 分析来自 RNA-seq 的计数数据的一项基本任务是检测差异表达的基因.计数数据以表格的形式呈现,其中报告了每个样本已分配给每个基因的序列片段的数量.其他检测类型也有类似的数据,包括比较 C ...

  8. 生信学习-二代测序知乎专栏总结[转]

    转自:https://zhuanlan.zhihu.com/p/20702684 1.基本概念 flowcell 是指Illumina测序时,测序反应发生的位置,1个flowcell含有8条lane ...

  9. 生信学习--生物数据库大全

    本文转自https://blog.csdn.net/g863402758/article/details/52957299 综合数据库 ★ INSD,国际核酸序列数据库(International N ...

最新文章

  1. libevent源码深度剖析十一
  2. 历史性难题——如何为Kafka挑选合适的分区数?
  3. php中的isset函数和empty函数
  4. Flume学习笔记(二)问题整理
  5. C# 函数 传入 C++动态库中 做回调函数
  6. Vue系列之搭建环境
  7. 吴恩达深度学习之三《结构化机器学习项目》学习笔记
  8. PYTHON 处理JSON文件(新建key值Findex,并将歌手名字转换为大写首字母作为value值)
  9. C-order/Fortran-order(Row-/Column-major order)
  10. 程序员工作5年后,在管理通道和技术通道上,如何抉择?
  11. 蜂鸣器的专业分类是这样的
  12. 【统计学】【2008.11】中国铜铝未来市场价格的时间序列预测模型
  13. 北美电影票房Top10-2019年12月27日:《小妇人》表现亮眼
  14. 安卓c语言hook,C语言hook技术实现木马功能-盗QQ密码
  15. shell while用法
  16. COLLADAMaxNew插件,opencollada导出DAE文件格式 for 3dmax2019
  17. 《Microsoft Sql server 2008 Internals》读书笔记--第六章Indexes:Internals and Management(3)
  18. 什么是链接,为什么需要链接?
  19. 抽鬼牌(poker)
  20. OsgEarth中设置模型运动路径,并绘制雷达扫描、动态实时绘制运动轨迹、跟随彩带

热门文章

  1. 《大数据》杂志——大数据容灾备份技术挑战和增量备份解决方案
  2. 【Java】《基于Java的面向对象范式》学习笔记分享
  3. 【Java】《Java面向对象编程的三大特性》阅读笔记
  4. gitlab重置root密码
  5. 2018最新大神教你用Python玩转数据视频教程
  6. ubantu-16+ndk-r14b 编译 ffmpeg-4.0.2+lame_mp3-3.99.5
  7. 学习Javascript的书籍(转)
  8. 兔子--百度地图所需的jar+so下载地址
  9. win7无法打开设备和打印机
  10. maven 构建 springmvc + spring security 权限控制示例