做ATACseq时正好碰到了samtools的各种用法,整理备忘
1 : 代表这个序列采用的是PE双端测序
2: 代表这个序列和参考序列完全匹配,没有插入缺失
4: 代表这个序列没有mapping到参考序列上
8: 代表这个序列的另一端序列没有比对到参考序列上,比如这条序列是R1,它对应的R2端序列没有比对到参考序列上
16:代表这个序列比对到参考序列的负链上
32 :代表这个序列对应的另一端序列比对到参考序列的负链上
64 : 代表这个序列是R1端序列, read1;
128 : 代表这个序列是R2端序列,read2;
256: 代表这个序列不是主要的比对,一条序列可能比对到参考序列的多个位置,只有一个是首要的比对位置,其他都是次要的
512: 代表这个序列在QC时失败了,被过滤不掉了(# 这个标签不常用)
1024: 代表这个序列是PCR重复序列(#这个标签不常用)
2048: 代表这个序列是补充的比对(#这个标签具体什么意思,没搞清楚,但是不常用)
上面的这几个标签都是2的n次方,这样的数列有一个特点,就是随机挑选其中的几个,它们的和是唯一的,比如
65 只能是1 和 64 组成,代表这个序列是双端测序,而且是read1
所以在bam文件中的第二列,即flag列的值代表这条序列符合上述所有条件的值的和,所以根据这个flag我们可以确定这条序列究竟是read1 还是read2
##可以查看flag 代表的所有含义
samtools flags 99
0x63 99 PAIRED,PROPER_PAIR,MREVERSE,READ1