MAF文件格式

参考: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 

参考:UCSC中对数据格式的说明

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,602评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,442评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,878评论 0 344
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,306评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,330评论 5 373
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,071评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,382评论 3 400
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,006评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,512评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,965评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,094评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,732评论 4 323
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,283评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,286评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,512评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,536评论 2 354
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,828评论 2 345

推荐阅读更多精彩内容