写在前面
以下摘自别人简书;因为我懒,或者你看:chrome-extension://cdonnmffkdaoajfknoeeecmchibpmkmg/assets/pdf/web/viewer.html?file=http%3A%2F%2Fsamtools.github.io%2Fhts-specs%2FSAMv1.pdf
sequence alignment map/format:sam文件,是fastq比对参考基因组后形成的比对文件,文件一般较大,所以转化成bam,极其节约储存空间。很多下游分析的文件都源自处理的sam/bam,熟记文件格式避免跳坑,其次还可以,了解分析的代码,以及你需要的信息,NGS相关的那些文件里有你想要的信息?!这样的话,你才能找到你想处理的对象。
SAM格式详细说明
模拟书匠X 2018.07.10 10:30
SAM格式,是一种用于存储测序序列比对结果的通用格式,以TAB为分割符。SAM格式的设计理念是:灵活存储所有比对信息。SAM一般为11列以上,其中前11列为已定义列,12列及以后为可选列,算附加信息。
由于测序分两种:单端测序(Single-read)和双端测序(Paired-end和Mate-pair)。下文SAM格式中read表示Single-read或Paired-end Read1序列,mate表示Paired-end Read2序列。
- 第一列:read name,read的名字通常包括测序平台等信息;
- 第二列:sum of flags,比对flag数字之和,比对flag用数字表示,分别为:
0 read是Single-read且正向比对
- 1 read是pair中的一条(read表示本条read,mate表示pair中的另一条read)
- 2 pair一正一负完美的比对上
4 这条read没有比对上
- 8 mate没有比对上
16 这条read反向比对
- 32 mate反向比对
- 64 这条read是read1
- 128 这条read是read2
256 第二次比对【Cui add:非唯一比对的flag是256】
- 512 比对质量不合格
1024 read是PCR或光学副本产生【Cui add:duplication】
- 2048 辅助比对结果
通过这个和可以直接推断出匹配的情况。假如说标记不是以上列举出的数字,比如说83=(64+16+2+1),就是这几种情况值和。
- 第三列:RNAM,reference sequence name,实际上就是比对到参考序列上的染色体号。若是无法比对,则是*;
- 第四列:position,read比对到参考序列上,第一个碱基所在的位置。若是无法比对,则是0;
- 第五列:Mapping quality,比对的质量分数,越高说明该read比对到参考基因组上的位置越唯一;
- 第六列:CIGAR值,read比对的具体情况,
- “M”表示 match或 mismatch;
- “I”表示 insert;
- “D”表示 deletion;
- “N”表示 skipped(跳过这段区域);
- “S”表示 soft clipping(被剪切的序列存在于序列中);
- “H”表示 hard clipping(被剪切的序列不存在于序列中);
- “P”表示 padding;
- “=”表示 match;
- “X”表示 mismatch(错配,位置是一一对应的);
- 第七列:MRNM(chr),mate的reference sequence name,实际上就是mate比对到的染色体号,若是没有mate,则是*;
- 第八列:mate position,mate比对到参考序列上的第一个碱基位置,若无mate,则为0;
- 第九列:ISIZE,Inferred fragment size.详见Illumina中paired end sequencing 和 mate pair sequencing,是负数,推测应该是两条read之间的间隔,若无mate则为0;
- 第十列:Sequence,就是read的碱基序列,如果是比对到互补链上则是reverse completed eg. CGTTTCTGTGGGTGATGGGCCTGAGGGGCGTTCTCN
- 第十一列:ASCII,read质量的ASCII编码。
- 第十二列之后:Optional fields,可选的自定义区域
- AS:i 匹配的得分
- XS:i 第二好的匹配的得分
- YS:i mate 序列匹配的得分
- XN:i 在参考序列上模糊碱基的个数
-
XM:i 错配的个数
【Cui add:如果有错配,这里的数字非0】 - XO:i gap open的个数
- XG:i gap 延伸的个数
- NM:i 经过编辑的序列
- YF:i 说明为什么这个序列被过滤的字符串
- MD:Z 代表序列和参考序列错配的字符串(例如MD:Z:45A2C3 失配碱基的位点,45,45+2两个位点失配)
-
XT:A:U
read只有一个完整比对,U unique【Cui add:只有一个我完整比对】 - XT:A:R read有一个以上位置完整比对,R repeat
- NM:i:2 read有2个碱基mismatch
- X0:i:2 read有2个位置完整比对(与XT:A有对应关系)
- X1:i:2 read有2个位置以1个碱基失配比对
- XA:Z:Chr3,+1530, 50M,0;Chr4,-7568,50M,1 有0/1个碱基失配的详细比对情况(与XT:A、X0:i、X1:i有对应关系)
参考
以上作者参考了:
小猪打呼噜SAM格式详解
EmanLee bam/sam格式说明
SAM格式(wiki)
SAM格式(wikipedia)
SAM格式
彩蛋:看了你也记不住
很少用
还可以学习
https://blog.csdn.net/genome_denovo/article/details/78712972
flags
1 0x1 这序列是PE双端测序
2 0x2 这序列和参考序列完全匹配,没有错配和缺失
4 0x4 这序列没有mapping到参考序列上
8 0x8 这序列的mate序列没有mapping到参考序列上
16 0x10 这序列比对到参考序列的负链上
32 0x20 这序列的mate序列比对到参考序列的负链上
64 0x40 这序列是read1
128 0x80 这序列是read2
256 0x100 这序列不是主要的比对,因为序列可能比对到参考序列的多个位置上
512 0x200 这序列没有通过QC
1024 0x400 这序列是PCR重复序列
2048 0x800 这序列是补充比对