常见生信数据格式介绍

多组学分析已逐渐成为当今涉及生物方向相关研究的利器,它可以被用来帮助人们发现和解决常规分子生物学手段无法发现和解决的问题。也正是因为这一分析手段的重要和相关数据无法被部分生信小白快速高效的解读这两方面问题,催生出大量的测序分析公司。然而,这些公司的出现虽然可以解决这一‘痛点’,却也会导致许多生信小白对于多组学分析‘知其然,不知其所以然’。比如,针对生信分析过程中的各种数据格式,作为依靠公司进行多组学分析的生信小白可能不会接触到这些数据,因而对这些数据格式也‘不明所以’。可是,作为一个希望从事深入挖掘这些数据的生信分析人员,如果仅仅以公司的标准分析结果作为依据,则可能错失数据中的许多亮点,因此,本文以转录组测序中涉及到的一些测序数据格式为例,如fasta、fastq、gtf/gff和sam/bam,对这些数据格式进行解读,希望能够加深生信小白对多组学分析中数据格式的了解,从而能够在组学数据中发掘更多的亮点。
一、fasta格式
fasta格式是由William Raymond Pearson和David J. Lipman发明的,用于表示核苷酸或蛋白质序列信息的一种最基本的格式。其文件中可以包含一条或多条序列。首列以‘>’开头,后跟上序列名,随后的每一列均为该序列名所含有的碱基序列,直到遇到以‘>’开头下一列。其文件格式如下:
二、fastq格式
与fasta格式不同,fastq格式除含有序列信息外,还会涉及到更多的信息。该格式文件的第一行以‘@’开始,后面所跟信息用于描述序列,并且该行在同一个文件中不会出现重复。第二行的内容则是序列信息,是由A、T、C、G和N这五个字母所组成,其中N代表的是测序时哪些无法被识别出来的碱基。第三行则是以‘+’开头,通常不添加任何信息。第四行包含的内容是对序列的质量评价,其每个字符对应第二行序列的每个碱基的质量的可靠程度,用ASCII码表示。现如今主流的测序公司为节省存储资源,基本上使用的都是将fastq文件压缩成fq.gz文件的形式分发给使用者。该文件格式如下:
三、gtf/gff文件
gtf的全名为gene transfer format,gff全名为general feature format,均是用来表示基因在基因组中信息的文件格式。这两类文件都是由9列数据组成,其中前8列基本都是相同的。前8列相同的数据分别代表:reference sequence name(通常是序列染色体的ID,)、annotation source(基因的来源)、feature type(代表该区间对应的特征类型,包括5'UTR、3'UTR、exon、CDS、start_codon、stop_codon)、start coordinate(代表区间的起始位置)、end coordinate(代表区间的终止位置)、score(代表该区间的得分)、strand(代表正负链的信息)、frame(仅对CDS有效,需要指定翻译开始的位置,取值范围有0,1,2三种,分别表示该编码框的第一个密码子第一个碱基位于其5'末端,该编码框的第一个密码子的第一个碱基位于该编码区外和该编码框的第一个密码子的第一、二个碱基位于该编码区外)、attributes(代表属性,在本文gff文件中则表明该CDS属于gene1,而在gtf中则表明该cds所属的转录本,基因ID和基因名称)。
其中本推文中gff的文件格式为:
本推文中gtf的文件格式为:
五、sam/bam文件
对于序列比对而言,如何将所有的比对结果统一表示比对结果是一个非常重要的问题。因此,由sanger制定,是以TAB为分割符的文本格式就被制定成为标准。这其中又以sam/bam文件格式为主要代表。sam是一种序列比对格式标准,主要应用于测序序列mapping到基因组上的结果表示,当然也可以表示任意的多重比对结果。而bam文件则是sam文件的二进制文件,用于压缩sam文件的内容。两者的内容完全一样,只是bam文件无法用常规的文本编辑器查看,需要在linux操作系统下使用“samtool view –h *.bam”命令去查看。以本推文为例,其中前三行都是@开头的注释信息,可以忽略。从第四行开始为比对结果的正文。下面将以列的顺序依次进行介绍:
1. 第一列为序列名称(QNAME),用来表示查询序列即测序短片段(reads)的名称。
2. 第二列为标志(FLAG),以整数来表示比对的结果。
不同数值有不同的意义,数值也可以是下列数的组合;比如如果FLAG是4的话则表示该reads没有比对到参考序列上,flag为16表示single-end reads比对到参考序列的反链上,flag为83(64+16+2+1)表示paired-end reads中的第一个reads比对到参考序列上了。如果想要详细了解这个FLAG的含义,详见https://github.com/samtools/hts-specs/blob/master/SAMv1.pdf。
3. 第三列为序列比对上的参考序列的名称(RNAME),比如基因组的染色体编号等,如果没有比对上则显示为*;如本文的数据则显示这个数据没有比对上。
4. 第四列表示比对的起始位置(POS),以1开始计数,如果没有比对上则显示为0;
5. 第五列表示比对质量(MAPQ)。这个数值越高,表明该reads比对到参考序列上相应序列的相似性越高。
6. 第六列为CIGAR(CompactIdiosyncratic Gapped Alignment Report)字符串,即简要比对信息表达式。其以参考序列为基础,使用数字加字母表示比对结果,比如 3M4S2P4M1I,这个字符串表示的结果依次为:3个碱基匹配上,4个碱基被剪切,打开了包含2个缺口,4个碱基重新匹配上,1个碱基插入。而本文未比对上,所以“*”表示
7. 第七列(RNEXT)表示的是双末端测序中第2条用来比对的reads名称,如果没有则用*表示,但是如果和前一个reads比对到同一个参考序列(基因)则用=表示;
模板中下一次读取的主要比对的参考序列名称。对于最后一次读取,下一次读取是模板中的第一次读取。如果@SQ标题行存在,RNEXT(如果 not'*'或'=')必须存在于SQ-SN标签之一中。当信息不可用时,此字段设置为“*”,如果RNEXT与RNAME相同,则设置为“=”。如果不是'=',并且模板中的下一个读取具有一个主映射(也参见FLAG中的位0x100),则该字段与下一次读取的主行中的RNAME相同。如果RNEXT为'*',则无法对PNEXT和bit 0x20做出假设。
8. 第八列(PNEXT)为下一个reads比对到参考序列上的位置,如果没有则用0表示;
模板中下一次读取的主要对齐方式的基于1的位置。当信息不可用时设置为0。该字段等于下一次读取的主要行的POS。如果PNEXT为0,则无法对RNEXT和bit 0x20做出假设。
9. 第九列为TLEN(signedobserved Template LENgth)
TLEN的绝对值等于模板的映射末端与模板的映射起点之间的距离,包括(即结束− 开始+1)。对于单个段模板或信息不可用时(例如,当多段模板的第一个或最后一个段未映射或两者映射到不同的参考序列时),将其设置为0。该字段的目的是指示模板的另一端已对齐的位置,而无需读取SAM文件的其余部分。但是目前,对于该字段的定义并未达成共识,仍需要根据实施的方式进行阐述。该字段的计算方法较为复杂,建议参考官方文件进行进一步的了解。
10.第十列(SEQ)为reads的序列信息。
11. 第十一列(QUAL)为reads 的序列质量信息,同FASTQ。
12.在第十二列之后的字段则为可选字段。比如本文中则是YT:Z:UP
以上就是转录组测序中可能使用到的一些常规测序文件格式,了解这些数据格式可以加深我们对于测序原理的理解,帮助我们更好的分析数据。
注:本文封面图片来源于“Gainingcomprehensive biological insight into the transcriptome by performing abroad-spectrum RNA-seq analysis”。
三 惯例小结
本公众号开发的相关软件,Multi-omics Hammer软件和Multi-omics Visual软件欢迎大家使用。文末是本公众号在其他平台的账户,也欢迎大家关注并多提意见。
简书:WJ的生信小院
博客园:生信小院
最后,也欢迎各位大佬能够在本平台上:1传播和讲解自己发表的论文;2:发表对某一科研领域的看法;3:想要达成的合作或者相应的招聘信息;4:展示自己以寻找博后工作或者博士就读的机会;5:博导提供博后工作或者博士攻读机会,都可以后台给笔者留言。希望本平台在进行生信知识分享的同时,能够成为生信分析者的交流平台,能够实现相应的利益互补和双赢(不一定能实现,但是梦想总得是有的吧)。


