十分不同意楼上!尤其微积分,简直莫名其妙啊,从来没用过。。
我觉得按需要程度递减:
1.统计学,尤其是很基础的,统计检验、回归分析
2.至少一种编程语言,首先推荐Python,如果懂一点C, C++, Perl, Java会很有帮助。不过,一种编程语言足够
3.统计软件,首先推荐R,免费开源,另外SPSS也可以。
4.算法只需要最基础的,知道快速排序,二分查找足以。知道一些数据结构。生信每个领域都不一样,需要的算法也不同,遇到具体问题再深入下去就行。
5.概率,尤其是Bayes,这个如楼上所说。
生信文章不需要上传原始代码。可以选择放在论文的附录中,或者干脆不公开。但是,如果你一旦写在了论文的正文当中,那么就意味着代码也是正文的一部分,相当于对所有人公开了。因此,如果你的数据比较敏感,那么尽量少写或者不放在论文里。
生信文章特点
现在的纯生信不但要比拼创新,还需要比拼速度,如果能够补实验更能锦上添花,这就是现在的纯生信行情。纯生信是指不用做实验就可以发表的生信文章,生信文章是指生物信息学类的文章。近年来越来越多的人对生物信息学感兴趣,因为它不需要任何实验就可以发SCI,仅依靠生物信息的相关筛选和统计分析便可发文。
fasta 是一种 基于文本 用于表示 核酸序列 或 多肽序列 的格式。其中核酸或氨基酸均以单个字母来表示,且允许在序列前添加序列名及注释。
特征:2部分-- id行 和 序列行 。 > id行以“>”开头, 后跟序列名称&序列描述。有时候会包含注释信息 > 序列行一个字母表示一个 碱基/氨基酸 (A、T、C、G、N (N表示不知道是什么)/20种常见氨基酸)。序列中允许空格,换行,空行,直到下一个“>”,表示该序列结束。
高通量测序(如Illumina NovaSeq等测序平台)得到的原始图像数据文件,经碱基识别(Base Calling)分析转化为原始测序序列(Sequenced Reads),我们称之为Raw Data或Raw Reads,结果以FASTQ(简称为fq)文件格式存储,其中包含测序序列(Reads)的 序列信息 以及其对应的 测序质量信息 。测序样品中真实数据随机截取结果如下图:
特征: 每4行代表一个reads信息
fastq格式是由fasta (记录id和序列) 和QUAL (记录id和碱基质量) 合并而来。fastq文件第三行往往是个+,其实就是和第一行一样都是id。
第四行碱基质量值 碱基质量值(Quality Score或Q-score)是碱基识别(Base Calling)出错的概率的整数映射。通常使用的碱基质量值Q公式[1]为: Q=-10 * log10P 。其中P为碱基识别出错的概率。下表给出了碱基质量值与碱基识别出错的概率的对应关系。
碱基质量值越高表明碱基识别越可靠,准确度越高。比如,对于碱基质量值为Q20的碱基识别,100个碱基中有1个会识别出错,以此类推。
碱基质量值+33(前32个不是单个值),查表找到对应ASCII码
fastq与fasta文件转换
GFF,全称为Generic Feature Format,主要用来描述 基因的结构与功能信息 ,对基因组进行注释。记录序列中转录起始位点、基因、外显子、内含子等组成元件在染色体中的位置信息。现在用得比较多的是第3版,即gff3。gff是一个三级嵌套结构。格式文件为文本文件,分为9列,以TAB分开。控制符使用RFC 3986 Percent-Encoding 编码。比如:%20 代表着ASCII的空格。
gff文件一共有9列:
第九列的详解
GTF全称为gene transfer format,主要是用来对基因进行注释。现在用得比较多的是第2版,即gtf2。gtf文件也是分为9列,前八个字段与GFF相同(有一些小的差别),重点在第九列的不同。
两种文件差异比较:
bam文件和sam文件内容其实是一样的,只是bam是二进制的压缩文件,占内存空间更小。需要通过特定的软件来进行查看。(sam文件可以直接使用 less -S 查看;bam文件使用 samtools view -h xxx.bam | less -S 查看)
SAM(The Sequence Alignment / Map format)格式,即序列比对文件的格式,详细介绍文档:
SAM文件由两部分组成,头部区和主体区,都以tab分列。 头部区 :以’@'开始,体现了比对的一些总体信息。比如比对的SAM格式版本,比对的参考序列,比对使用的软件等。 主体区 :比对结果,每一个比对结果是一行,有11个主列和一个可选列。
头部区:
@HD VN:1.0 SO:unsorted (排序类型) 头部区第一行:VN是格式版本;SO表示比对排序的类型,有unknown(default),unsorted,queryname和coordinate几种。samtools软件在进行行排序后不能自动更新bam文件的SO值,而picard却可以。 @SQ SN:contig1 LN:9401 (序列ID及长度) 参考序列名,这些参考序列决定了比对结果sort的顺序,SN是参考序列名;LN是参考序列长度;每个参考序列为一行。 例如:@SQ SN:NC_000067.6 LN:195471971 @RG ID:sample01 (样品基本信息) Read Group。1个sample的测序结果为1个Read Group;该sample可以有多个library的测序结果,可以利用bwa mem -R 加上去这些信息。 例如:@RG ID:ZX1_ID SM:ZX1 LB:PE400 PU:Illumina PL:Miseq ID:样品的ID号 SM:样品名 LB:文库名 PU:测序以 PL:测序平台 这些信息可以在形成sam文件时加入,ID是必须要有的后面是否添加看分析要求 @PG ID:bowtie2 PN:bowtie2 VN:2.0.0-beta7 (比对所使用的软件及版本) 例如:@PG ID:bwa PN:bwa VN:0.7.12-r1039 CL:bwa sampe -a 400 -f ZX1.sam -r @RG ID:ZX1_ID SM:ZX1 LB:PE400 PU:Illumina PL:Miseq …/0_Reference/Reference_Sequence.fa ZX_HQ_clean_R1.fq.sai ZX_HQ_clean_R2.fq.sai …/2_HQData/ZX_HQ_clean_R1.fq …/2_HQData/ZX_HQ_clean_R2.fq 这里的ID是bwa,PN是bwa,VN是0.7.12-r1039版本。CL可以认为是运行程序@RG是上面RG表示的内容,后面是程序内容,这里的@GR内容是可以自己在运行程序是加入的
主体部分介绍:
主体部分有11个主列和1个可选列
FLAG详解: 例如:想要查看FLAG 99是什么意思:samtools flags 99
CIGAR详解 CIGAR string,简要比对信息表达式(Compact Idiosyncratic Gapped AlignmentReport),其以参考序列为基础,使用数字加字母表示比对结果,比如3S6M1P1I4M,前三个碱基被剪切去除了,然后6个比对上了,然后打开了一个缺口,有一个碱基插入,最后是4个比对上了,是按照顺序的,字母的含义如下
sam/bam文件查看 samtools工具: Samtools常用命令的总结:
参考: sam格式文件解读
看研究方向。
一个计算机系或者EE的生物信息实验室,对你的数学和计算机要求会很高。
计算机方面:
1. 计算机体系结构,如果你的研究方向是序列比对的显卡运算,那么需要你掌握计算机体系结构的相关知识,我不是这个方向的砖家,但是这个方向比较偏硬件,缓存大小啊,GPU的运算等等好多需要考虑的。
2. 操作系统,如果你的研究方向是各种生物信息算法的并行运算和大数据的分布式算法,需要掌握分布式操作系统的相关知识。
以上两个研究方向很少有文章发在Genome Research, Genome Biology, NAR,PNAS, Nature Method等这些杂志上,他们甚至不参加ISMB,RECOMB这些生物信息学的顶级会议,有些人不把他们叫做生物信息。
3. 算法设计和数据结构,相对于上面两个研究方向,这个方向已经能够接触到更多的生物学知识了,但是对于算法的设计要求仍然很高。包括基础算法,有些人做semi-linear算法的设计,并行算法的设计。
4. 计算机图形学,这个显然是做蛋白质折叠啊,RNA结构啊之类的方向。
5. 编译原理,最主要的是自动机模型,会应用在一些模拟中,比如元胞自动机的模拟,细胞行为,进化的模拟上,自动机模型的paper读到过很多。但是你在写代码的时候偶尔也要考虑下编译器的感受啊。
6. 语言实现,包括应用级别的模式识别,机器学习算法的库。最常用的包括Java,C++(为了保证运行效率)以及Python的脚本,有些人会用R写一些Biocondutor的库,也能发在Bioinformatics上面。
7. Image Processing,最主要的应用包括microarray的处理,测序数据的处理。
8. 用户体验和人机交互,主要是做一些GUI程序和Visualiazation Tool的人会考虑这些东西。
9. 数据库,做个网站或者数据库,呵呵,如果这也算生物信息的话。。
数学方面:
1. 离散数学,主要应用是mapping和assemblying的图论算法
2. 概率论和统计,主要研究包括error correction以及一些k mer based的算法。但是很多paper都会搞一些概率模型在里面,更多的是统计系做生物统计的人做的,暂时认为生物信息不包括生物统计。
3. 矩阵运算,包括线性代数的一般运算,这应用在计算机图形学的算法中,还有比如模式识别算法等需要矩阵的微分和积分运算。这就牵扯出下面的:
4. 微积分, 很多人都觉得生物信息包括计算机算法很少运用到微积分模型,但是由于生物里面有个什么理论说所有的进化啊蛋白质折叠都遵循能量最小,就搞出来个信息熵的概念,以及很多地方的minimum likelihood算法对概率计算的要求,微积分的应用也有很多。
我上面提到的这些只是泛泛说了下,并举了几个研究方向的例子,如果详细说可能要说很多很多,不是数学专业的,对数学的整体架构和分类理解都不深。
但是生物实验室有些对计算机和数学要求极低。。会安装和使用别人的程序就行了。。