参考:UCSC中对数据格式的说明
本文所描述的是用于记录序列多重比对信息的multiple alignment format格式,另外还有一种记录肿瘤单细胞突变注释信息的MAF格式叫做mutation annotation format,请注意区分。后一种MAF格式可以参考这篇文章
MAF(multiple alignment format,多重序列比对格式)存储一系列多重序列比对结果(multiple alignment), 并保证易解析和相对易读。这一格式在全基因组DNA水平上存储不同来源的多重序列比对。先前的格式适合单个蛋白质或一段没有重排的DNA区域的多重序列比对结果,但是需要相当大的额外开销来处理基因组问题,例如正向和反向链方向、多个片段的排列等等。
零、一般结构
.maf格式是一种面向行的文本格式。每个多重比对(multiple alignment)均与参考基因组行对齐,并以一个空行结束。一个比对(alignment)中的每个序列都在一行内,这一行的长度可能很长,没有长度限制。行中的单词(Words)由任何空格分隔。以#
开头的行被视为注释。以##
开头的行可以被大多数程序忽略,但包含某种形式的元数据。
文件分为多个段落,段落之间以空行隔开。在段落中,一行的第一个字表示其类型。每个多重比对都在一个单独的段落中,该段落以“a”行开始,并包含多重对齐中每个序列的“s”行。第一个序列必须是其余序列映射的参考基因组。某些MAF文件可能包含其他可选行类型:
- 一个"i"行,包含前一个“s”行前后对齐物种DNA中的信息
- 一个"e"行,包含跨越当前块的路线之间间隙大小的信息
- 一个"q"行,指明物种中已比对碱基的质量
解析器可能会忽略其它类型的段落和一个比对段落中其他类型的行。
一、自定义轨迹(Custom Tracks)
一个自定义MAF 轨迹的首行必须是一个“轨迹”(track)行,包含一个name=value
的组合,以标明轨迹的名字。下面是一个简单示例:
track name=sample
下面这些变量可以在一个自定义MAF中指定一个轨迹行:
- name=sample - 必需。标明一个Track的名字
- description="Sample Track" - 可选。为轨迹指定一个长名称。
- frames=multiz28wayFrames - 可选。告诉浏览器从哪个表中获取基因帧。这通常与名称以“Frames”结尾的N-way比对相关联。
- mafDot=on - 可选。当碱基相同时,用句点"."代替碱基名称。
- visibility=dense|pack|full - 可选。设置此轨迹的默认可见性模式。
- speciesOrder="hg18 panTro2" - 可选。用空格分隔的一个列表,指定maf中序列的显示顺序。
自定义MAF轨迹的第二行必须是一个标头(header)行,其格式如下所述:
二、标头行(header line)
一个.maf文件的第一行以##maf
开头,其后会跟上一些形如variable=value
的变量组合,组合之间以空格分隔开,等号左右不能有空格。
##maf version=1 scoring=tba.v8
已经明确定义的变量包括:
- version - 必需。maf文件的版本号,当前设置为1。
-
scoring - 可选。用于序列比对的评分方案的名称。当前的评分方案是:
- bit - 大致对应于blast bit values(每个匹配的碱基大约是2分,再减去错配和插入的罚分)
- blastz - blastz评分方案——每个比对碱基大约100分
- probability - 一些经过归一化的分数,值域为0到1
- program - 可选。产生此序列比对结果的软件名称。
其他未定义的变量会被解析器忽略。
标头行后面通常是注释行(以#
开头),用于描述用于运行序列比对程序的参数。例如:
# tba.v8 (((human chimp) baboon) (mouse rat))
三、序列比对区块行(Alignment Block Lines)
这些行以字母"a"开头,这个字母用于指明一个新的序列比对区块的开始
a score=23262.0
每个比对以"a"行开始,这一行中对整个比对区块的变量进行了设定。"a"之后跟随一些variable=value
的变量组合,这些变量组合并不是必需的。已经明确定义的变量包括:
-
score - 可选。以浮点数表示的分数,如果其存在,最好在第一行定义一下
scoring
变量。 - pass - 可选。一个正整数。对于执行多遍比对的程序(如blastz),这将显示该比对结果来自哪一遍。通常,这些程序的第1遍比对(pass=1)将在全基因组范围内找到最强的比对,第2遍比对(pass=2)将在两个第一遍比对之间找到较弱的比对。
(一)、以"s"开头的行——一个比对区块中的序列
s hg16.chr7 27707221 13 + 158545518 gcagctgaaaaca
s panTro1.chr6 28869787 13 + 161576975 gcagctgaaaaca
s baboon 249182 13 + 4622798 gcagctgaaaaca
s mm4.chr6 53310102 13 + 151104725 ACAGCTGAAAATA
"s"行与"a"行一起定义了多重比对。第一个"s"行必须是参考基因组,在上面的例子中是hg16。"s"行具有由位置决定的以下字段(从左到右依次为src、start、size、strand、srcSize、text)。
- src - 序列来源(物种名称)。对于驻留在浏览器程序集中的序列,"database.chromosome"表单允许自动创建到其他程序集的链接。非浏览器来源的序列通常仅通过物种名称进行引用。
- start - 比对区域在源序列中的起始位置,这个位置从0开始计数。如果strand字段(见下文)为"-",则这是相对于反向互补的源序列的起点(参见坐标变换)。
- size - 比对区域在源序列中的长度。此数字等于下面序列比对文本字段中的非短杠字符(non-dash characters)的数量。
- strand - 只可以是"+"或"-"中的一种。如果是"-",则表明序列是反向比对到源序列上的。
- srcSize - 整个源序列的完整大小,不仅仅是当前这条比对序列的长度。
- text - 比对序列的内容,包括碱基/氨基酸残基,以及用短杠代表的插入。
(二)、以"i"开头的行——一些信息,关于在当前物种中,在这个序列比对区块之前和之后发生的事件信息
s hg16.chr7 27707221 13 + 158545518 gcagctgaaaaca
s panTro1.chr6 28869787 13 + 161576975 gcagctgaaaaca
i panTro1.chr6 N 0 C 0
s baboon 249182 13 + 4622798 gcagctgaaaaca
i baboon I 234 n 19
"i"行包含关于紧接在它们之前的序列行的上下文的信息。以下字段由位置定义:
-
src - 序列来源(物种名称)。与本行前面的第一个"s"行的
src
字段应当一致。 - leftStatus - 一个字符,指定此块中的序列与前一个区块中出现的序列之间的关系
- leftCount - 通常是在本序列开始位置和前一个区块中序列的结束位置之间的碱基数,表示两个区块之间跳过了多少个碱基对。如果是0,则说明这个区块和前一个区块是紧挨着的。
- rightStatus - 一个字符,指定此块中的序列与后一个区块中出现的序列之间的关系
- rightCount - 通常是在本序列开始位置和后一个区块中序列的结束位置之间的碱基数,表示两个区块之间跳过了多少个碱基对。如果是0,则说明这个区块和后一个区块是紧挨着的。
其中,所有的状态字符(status characters)可以取下列的值之一:
- C - 前一个区块或后一个区块中的序列和本序列连续
- I - 前一个区块或后一个区块中的序列和本序列中间跳过了一些碱基
- N - 这是源序列或测序支架(scaffold)的起始序列
- n - 这是源序列或测序支架(scaffold)的起始序列,但是它被来自不同染色体(chrom)或支架(scaffold)的另一个序列比对所桥接(bridge)。
- M - 本区块之前或之后存在缺失数据(即序列中的"N"字符)。
- T - 本区块中的序列被之前的区块用过了(例如串联重复那样)
(三)、以"e"开头的行——序列比对区块中,空白部分的信息
s hg16.chr7 27707221 13 + 158545518 gcagctgaaaaca
e mm4.chr6 53310102 13 + 151104725 I
"e"行表示在本区块中,本物种没有DNA序列信息,但当前的区块需要承接前一个区块并连接后一个区块,因此使用"e"行进行占位。
是由连接该区块前后的区块的链连接起来的。"e"行具有由位置决定的以下字段(与"s"行类似):
- src - 序列来源(物种名称)。
- start - 比对区域在源序列中的起始位置,这个位置从0开始计数。如果strand字段(见下文)为"-",则这是相对于反向互补的源序列的起点(参见坐标变换)。
- size - 比对区域在源序列中的长度。此数字等于下面序列比对文本字段中的非短杠字符(non-dash characters)的数量。
- strand - 只可以是"+"或"-"中的一种。如果是"-",则表明序列是反向比对到源序列上的。
- srcSize - 整个源序列的完整大小,不仅仅是当前这条比对序列的长度。
- status - 一个字符,指定此块中的非比对序列(non-aligning sequence)与前一块和后一块中出现的序列之间的关系。
其中,status
字符可以取下列数值之一:
- C - 前一个区块或后一个区块中的序列是连续的。这意味着在本物种中这一区块所对应的序列出现了丢失,或者是在参考基因组中,这一段序列出现了插入。在基因组浏览器中,这一段序列会以一系列"-"或单线表示,以表明这是缺失序列。
- I - 本物种中这一区块内,存在未对齐碱基(non-aliging bases),而本区块之前和之后的序列是对齐的。在基因组浏览器中,这一段序列会以一系列"="或双线表示。
- M - 本物种中这一区块内,存在未对齐碱基(non-aliging bases),并且90%以上是缺失值(即序列中的"N"字符)。在基因组浏览器中,这一段序列会以一个黄色的条带表示。
- n - 本物种中这一区块内,存在未对齐碱基(non-aliging bases),而接下来的配对区块中,会从一个新的染色体或支架(scaffold)开始,并可以桥接到其他的区块上。基因组浏览器会以"-"或"="绘制这一区域的序列,取决于两个桥接的配对序列中间的间隔(gap)的碱基数
(四)、以"q"开头的行——本物种中每个配对碱基的质量
s hg18.chr1 32741 26 + 247249719 TTTTTGAAAAACAAACAACAAGTTGG
s panTro2.chrUn 9697231 26 + 58616431 TTTTTGAAAAACAAACAACAAGTTGG
q panTro2.chrUn 99999999999999999999999999
s dasNov1.scaffold_179265 1474 7 + 4584 TT----------AAGCA---------
q dasNov1.scaffold_179265 99----------32239---------
"q"行包含实际的原始质量数据的压缩版本,使用数字0-9或字符"F"表示单个碱基的质量。"q"行具有由位置决定的以下字段:
-
src - 序列来源(物种名称)。与本行前面的第一个"s"行的
src
字段应当一致。 - value - MAF质量数值,每个字符均与前面的"s"行中的碱基一一对应,对于"s"行中的插入突变(以"-"表示),在"q"行中也用短杠"-"表示。质量值可以是"F"(表示完成的序列,“finished sequence”),或者对应于是实际质量分数(0-97)或手动分配(manually assigned)得到的质量分数(=98)的一个数字。MAF质量数值的计算方法如下:
MAF quality value = min( floor(actual quality value/5), 9 )
依据这个方程,我们可以得到实际质量分数和MAF质量数值的映射关系:
MAF质量数值 | 原始质量分数 | 质量级别 |
---|---|---|
0-8 | 0-44 | 低 |
9 | 45-97 | 高 |
0 | 98 | 手动分配(manually assigned) |
F | 99 | 完成的序列(finished) |
四、一个简单的示例
以下是一个简单的示例,包含3个序列比对区块,这些序列来自5条起始序列(starting sequences)。第一个轨迹行(track line)对于自定义轨迹(custom tracks)是必需的,但是在其他情况下应当被删除。序列中的重复以小写字母显示,并且每个区块可能具有一个输入序列的子集。所有序列的列和行必须至少包含一个核苷酸(也就是说,每一列或每一行不可以只由一个插入组成,即每一行或每一列不可以全是"-"字符)。
track name=euArc visibility=pack
##maf version=1 scoring=tba.v8
# tba.v8 (((human chimp) baboon) (mouse rat))
a score=23262.0
s hg18.chr7 27578828 38 + 158545518 AAA-GGGAATGTTAACCAAATGA---ATTGTCTCTTACGGTG
s panTro1.chr6 28741140 38 + 161576975 AAA-GGGAATGTTAACCAAATGA---ATTGTCTCTTACGGTG
s baboon 116834 38 + 4622798 AAA-GGGAATGTTAACCAAATGA---GTTGTCTCTTATGGTG
s mm4.chr6 53215344 38 + 151104725 -AATGGGAATGTTAAGCAAACGA---ATTGTCTCTCAGTGTG
s rn3.chr4 81344243 40 + 187371129 -AA-GGGGATGCTAAGCCAATGAGTTGTTGTCTCTCAATGTG
a score=5062.0
s hg18.chr7 27699739 6 + 158545518 TAAAGA
s panTro1.chr6 28862317 6 + 161576975 TAAAGA
s baboon 241163 6 + 4622798 TAAAGA
s mm4.chr6 53303881 6 + 151104725 TAAAGA
s rn3.chr4 81444246 6 + 187371129 taagga
a score=6636.0
s hg18.chr7 27707221 13 + 158545518 gcagctgaaaaca
s panTro1.chr6 28869787 13 + 161576975 gcagctgaaaaca
s baboon 249182 13 + 4622798 gcagctgaaaaca
s mm4.chr6 53310102 13 + 151104725 ACAGCTGAAAATA