先送书
在上周的留言送书活动中,恭喜下面这位读者获得书籍“Oracle高性能系统架构实战大全”,请及时与生信宝典编辑(shengxinbaodian)联系。
2020过去三分之一了,您年初定的小目标完成多少了呢?您又发生了哪些变化呢?
欢迎留言讨论,留言得赞最高的读者将获得下面书籍,结果将在下周的“送书”活动中公布,期待您的留言。
作为本科学生物,硕博转行生物信息的人,经常会被人问起,为啥学习生物信息了呢?这背后通常会带着一些困惑,生物信息分析好不好学?
生信的作用越来越大,想学的人越来越多,不管是为了以后发展,还是为了解决眼下的问题。但生信学习不是一朝一夕就可以完成的事情,也许你可以很短时间学会一个交互式软件的操作,却不能看完程序教学视频后就直接写程序。也许你可以跟着一个测序分析流程完成操作,但不懂得背后的原理,不知道什么参数需要修改,结果可以出来,却把握不住对还是错。
我读书的时候,实验室纯计算机出身的人员只占很小比例,更多的是大学期间学生物的;特别的,有个做的挺好的师兄,本科是商科出身。从这来看,像我这样本科学生物转行生物信息还不算是有跨度的。这也从一个侧面说明,专业背景不是能否学好生信的决定因素。
想想自己大学开始自学生信的时候,可以说是一头雾水,只知道先学习编程,查了查资料,是要学习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. 所有图片来源于新媒体管家插件
教程合集
生信宝典-Linux教程.pdf (微信公众号后台回复 生信宝典福利第一波)
生信宝典Py3_course.pdf
生信宝典-R学习教程.pdf
加拿大生信课程
Bioinformatics_for_Cancer_Genomics
Informatics_on_High-Throughput_Sequencing_Data
Informatics_for_RNA-Seq_Analysis
Analysis_of_Metagenomic_Data
Informatics_and_Statistics_for_Metabolomics
Bioinformatics_of_Genomic_Medicine
Epigenomic_Data_Analysis
Pathway_and_Network_Analysis_of_omics_Data
Infectious_Disease_Genomic_Epidemiology
Illumina测序应用手册
RNA层面
DNA层面
单细胞层面
系列教程
蛋白质组学研究
转录组研究
单细胞系列教程
经典综述
文章解读
系列教程
特色分析
复现原文(一):Single-cell RNA sequencing of human kidney(step by step)
复现原文(二):Single-cell RNA sequencing of human kidney(step by step)
GEO/TCGA数据
扩增子三步曲
宏基因组教程
宏基因组分析专题
ChIP-seq专题
Linux 全介绍
CIRCOS系列
R统计和作图
随机森林randomForest 分类Classification 回归Regression
NGS基础和软件应用
生信宝典之傻瓜式
Python
分子对接
文献精读
实用网站和精选文献
科研经验
软件与数据库
基因组注释 1重复序列 2非编码和编码基因 3功能注释Prokka
扩增子分析
16S功能预测 0概述 1KO通路PICRUSt 2元素循环FAPROTAX 3表型bugbase 4KO通路Tax4Fun
扩增子分析神器USEARCH 简介 v11新功能 v11命令大全 OTU表抽平otutab_rare 核心OTU鉴定otutab_core
扩增子分析神器VSEARCH 分析流程 2.8.1中文帮助文档
宏基因组分析
实验设计与技术
学习全基因组测序数据分析 1测序技术 2fasta&fastq
文献精读
科普视频*寓教于乐
系列宣传
永久链接
http://blog.genesino.com/
往期精品(点击图片直达文字对应教程)
后台回复“生信宝典福利第一波”或点击阅读原文获取教程合集