简略版,部分摘自:https://www.jianshu.com/p/386f520e5de1
SAM格式
从1开始数=SAM,GFF,Wiggle
从0开始数=BAM,BED,PSL
@HD:首行
VN*:版本号
SO:排序,unsorted,coordinate。coordinate的排序主键是RNAME,次要排序键是POS
@SQ:染色体
SN*:染色体名字
LN*:长度
AS:基因组装配标识
SP:species
@RG:reads,可以多个@RG
ID*:read标识
CN:测序中心提供的read名
DS:description
DT:date
LB:library
PG:program
PL:platform
SM:sample
第一列:
QNAME
第二列:
FLAG
Bit | Description |
---|---|
1 | read是pair中的一条(read表示本条read,mate表示pair中的另一条read) |
2 | pair一正一负完美的比对上 |
4 | 片段未比对上 |
8 | mate没有比对上 |
16 | 这条read反向比对 |
32 | mate反向比对 |
64 | 这条read是read1 |
128 | 这条read是read2 |
256 | 第二次比对 |
512 | 没有通过质量控制 |
1024 | read是PCR或光学副本产生 |
2048 | 辅助比对结果 |
解读FLAG小工具:
https://www.samformat.info/sam-format-flag
The reads with flag 0 are mapped to the forward strand, and the reads with flag 16 are mapped to the reverse strand. However, the reads with flag 4 are unmapped.
筛选reads参数
-f 留下的reads,-F 过滤掉的reads
1) 自己没比上,另一端比上的
samtools view -u -f 4 -F 264 file.bam > file.type1.bam
2) 自己比上了,另一端没比上的
samtools view -u -f 8 -F 260 file.bam > file.type2.bam
\#1)和2)出来的结果互相成对,数量一样,1)出来的是没比上的那一半,2)出来的是比上的那一半
3) 两端都比上的
samtools view -u -F 12 file.bam > file.type3.bam
4) 两端都没比上的
samtools view -u -F 8 file.bam > file.type4.bam
第三列:
RNAME
第四列:
POS,1-base
第五列:
MAPQ
第六列:
CIGAR
Op | BAM | Description |
---|---|---|
M | 0 | 比对匹配(可以是序列匹配或不匹配) |
I | 1 | 插入到参考 |
D | 2 | 从参考删除 |
N | 3 | 参考的跳过的区域 |
S | 4 | 软剪切(被剪切的序列存在于序列中) |
H | 5 | 硬剪切(被剪切的序列不存在于序列中) |
P | 6 | 填充(从填充引用中无声删除) |
= | 7 | 序列匹配 |
X | 8 | 序列不匹配 |
H 值出现在最初或者最后操作中
√ S 可证在他们和CIRAG末尾字符串中只有H操作
√ 对于mRNA到基因组的比对,一个N操作符代表内含子。对于其他类型的比对,没有定义N的解释。
√ M/I/S/=/X操作的长度之和等于SEQ的长度
第七列:
RNEXT
mate比对到的染色体号,若是没有mate,则是*
第八列:
PNEXT
第九列:
TLEN
如果R1端的read和R2端的read能够mapping到同一条Reference序列上(即第三列RNAME相同),则该列的值表示第8列减去第4列加上第6列的值,R1端和R2端相同id的reads其第九列值相同,但该值为一正一负,R1文件的reads和R2文件的reads,相同id的reads要相对来看。在进行该第列值的计算时,如果取第6列的数值,一定要取出现M的值,S或H的值不能取
第十列:
SEQ
第十一列:
QUAL
碱基质量加33的ASCII码
对他内容:
。。。
网友评论