生物信息学-2-data format
一些基本格式 http://genome.ucsc.edu/FAQ/FAQformat.html
FASTQ
http://blog.sina.com.cn/s/blog_46d703950101c42f.html
http://en.wikipedia.org/wiki/FASTQ_format
FASTQ是基于文本的,保存生物序列(通常是核酸序列)和其测序质量信息的标准格式。其序列以及质量信息都是使用一个ASCII字符标示,最初由Sanger开发,目的是将FASTA序列与质量数据放到一起,目前已经成为高通量测序结果的事实标准。
FASTQ文件中每个序列通常有四行:
1.序列标识以及相关的描述信息,以‘@’开头;
2.第二行是序列
3.第三行以‘+’开头,后面是序列标示符、描述信息,或者什么也不加
4.第四行,是质量信息,和第二行的序列相对应,每一个序列都有一个质量评分,根据评分体系的不同,每个字符的含义表示的数字也不相同。
SAM
http://blog.sina.com.cn/s/blog_46d703950101fpcn.html
SAM是一种序列比对格式标准,由sanger制定,是以TAB为分割符的文本格式。主要应用于测序序列mapping到基因组上的结果表示,当然也可以表示任意的多重比对结果。
不同的软件,不同的时期,不同的研究方向,都会创建一种或者多种格式标准,当然根据当时的需要,创建符合需求的标准,也是最容易的事情,而反过来想要真正的理解标准,也必须理解为什么要创建这样的标准,解决什么样的需要。我前面的有篇文章已经对于现有的多重比对的格式进行总结,但其更多的站在比较基因组学的角度。当我们去了解sam标准格式是什么的时候,就要思考既然以及有了这么多得标准,为什么还要定义SAM标准,当然拿所有的格式进行比较也并非易事,但是简单的对比,就可以了解其中一二,比如aln格式,是比对视图化的展示,存储的信息不够结构化,无法方便的作为另外程序的输入;表示信息的有限性,如果100个多重比对序列放到一个文件中,查看维护就会非常困难;还有些格式标准挺强大,但是太繁琐,同时不够灵活。那么反过来就是SAM格式的优点,那么SAM如何做到这一点的呢?
SAM要处理好的问题:
非常多序列(read),mapping到多个参考基因组(reference)上;
同一条序列,分多段(segment)比对到参考基因组上;
无限量的,结构化信息表示,包括错配、删除、插入等比对信息;
SAM分为两部分,注释信息(header section)和比对结果部分(alignment section),注释信息可有可无,都是以@开头,用不同的tag表示不同的信息,主要有@HD,说明符合标准的版本、对比序列的排列顺序;@SQ,参考序列说明;@RG,比对上的序列(read)说明;@PG,使用的程序说明;@CO,任意的说明信息。
比对结果部分(alignment section),每一行表示一个片段(segment)的比对信息,包括11个必须的字段(mandatory fields)和一个可选的字段,字段之间用tag分割。必须的字段有11个,顺序固定,不可用时,根据字段定义,可以为’0‘或者’*‘,这是11个字段包括:
QNAME,比对片段的(template)的编号;
FLAG,位标识,template mapping情况的数字表示,每一个数字代表一种比对情况,这里的值是符合情况的数字相加总和;
RNAME,参考序列的编号,如果注释中对SQ-SN进行了定义,这里必须和其保持一致,另外对于没有mapping上的序列,这里是’*‘;
POS,比对上的位置,注意是从1开始计数,没有比对上,此处为0;
MAPQ,mappint的质量;
CIGAR,简要比对信息表达式(Compact Idiosyncratic Gapped Alignment Report),其以参考序列为基础,使用数字加字母表示比对结果,比如3S6M1P1I4M,前三个碱基被剪切去除了,然后6个比对上了,然后打开了一个缺口,有一个碱基插入,最后是4个比对上了,是按照顺序的;
RNEXT,下一个片段比对上的参考序列的编号,没有另外的片段,这里是’*‘,同一个片段,用’=‘;
PNEXT,下一个片段比对上的位置,如果不可用,此处为0;
TLEN,Template的长度,最左边得为正,最右边的为负,中间的不用定义正负,不分区段(single-segment)的比对上,或者不可用时,此处为0;
SEQ,序列片段的序列信息,如果不存储此类信息,此处为’*‘,注意CIGAR中M/I/S/=/X对应数字的和要等于序列长度;
QUAL,序列的质量信息,格式同FASTQ一样。
可选字段(optional fields),格式如:TAG:TYPE:VALUE,其中TAG有两个大写字母组成,每个TAG代表一类信息,每一行一个TAG只能出现一次,TYPE表示TAG对应值的类型,可以是字符串、整数、字节、数组等。
要注意的几个概念,以及与之对应的模型:
reference
read
segment
template(参考序列和比对上的序列共同组成的序列为template)
alignment
seq
- SAM的定义:
http://samtools.sourceforge.net/SAM1.pdf
- 发表的文献:
http://www.ncbi.nlm.nih.gov/pmc/articles/PMC2723002/
- CIGAR的概念
http://asia.ensembl.org/common/Help/Glossary?db=core
- 一篇博客对于sam的解释
http://davetang.org/wiki/tiki-index.php?page=SAM
- perl模块
http://search.cpan.org/~lds/Bio-SamTools/lib/Bio/DB/Sam.pm
BED 文件格式
http://blog.sina.com.cn/s/blog_46d703950101fqi5.html
提供了一种灵活的方式来定义的数据行,以用来描述注释的信息。BED行有3个必须的列和9个额外可选的列。
每行的数据格式要求一致。
必须包含的3列:
chrom, 染色体或scafflold 的名字(eg chr3, chrY, chr2_random, scaffold0671 )
chromStart 染色体或scaffold的起始位置,染色体第一个碱基的位置是0
chromEn 染色体或scaffold的结束位置,染色体的末端位置没有包含到显示信息里面。例如,首先得100个碱基的染色体定义为chromStart =0 . chromEnd=100, 碱基的数目是0-99
9 个额外的可选列:
4. name 指定BED行的名字,这个名字标签会展示在基因组浏览器中的bed行的左侧。
5. score 0到1000的分值,如果在注释数据的设定中将原始基线设置为1,那么这个分值会决定现示灰度水平(数字越大,灰度越高)
6. strand 定义链的方向,''+” 或者”-”
7. thickStart 起始位置(The starting position at which the feature is drawn thickly)(例如,基因起始编码位置)
8. thickEnd 终止位置(The ending position at which the feature is drawn thickly)(例如:基因终止编码位置)
9 itemRGB 是一个RGB值的形式, R, G, B (eg. 255, 0, 0), 如果itemRgb设置为'On”, 这个RBG值将决定数据的显示的颜色。
10 blockCount BED行中的block数目,也就是外显子数目
11 blockSize 用逗号分割的外显子的大小, 这个item的数目对应于BlockCount的数目
12 blockStarts- 用逗号分割的列表, 所有外显子的起始位置,数目也与blockCount数目对应.