关于SAM格式中的Flag [Sequence Alignment/Map]

SAM是Sequence Alignment/Map 的缩写,目的是为了个大家提供一个序列比对的通用格式,方便后续处理。SAM.pdf官方文档

ILLUMINA-57021F:5:1:1361:5913#0 81 chr9 103745559 0 40M chr11 51579596 0 ATTTCCTTCTCCTGCCTGATTGCCCTGGCCAGAACTTCCA bT^bbTT`_ccac`caa^bccccccccdddddc^Yad XT:A:R NM:i:0 SM:i:0 AM:i:0 X0:i:2172 XM:i:0 XO:i:0 XG:i:0 MD:Z:40

这个是由Fawn同学提供的SAM格式的比对结果的其中一行(这里就不扯每行的含义了),第二列就是SAM的Flag,它是按位来描述序列的比对模式,方向等信息。官方文档是这么说的,“Field <flag> is a bitwise flag. The meaning of predefined bits is shown in the following table:”

牢骚,忽略之...【就为了wp的table展示阿,我到现在还没睡...愤恨阿,这点比Joomla差远了...】

[table id=1 /]

1. Flag 0x02, 0x08, 0x20, 0x40 and 0x80 are only meaningful when flag 0x01 is present.
2. If in a read pair the information on which read is the first in the pair is lost in the upstream analysis, flag 0x01 should
be present and 0x40 and 0x80 are both zero.

这个注解是说,第2,4,6,7,8,10位有效的前提是,第一位必须是1

例子中的81换算成二进制就是00001010001(不足11位,首位位补0【转换方法这里

从表格中可以看出:

这条比对信息的就是说它是个PE测序的【第一位是1】

并且比对到reference上是反向的【第五位是1】

它本身是这对序列的1#【第七位是1】

后续处理关于验证这个flag,分别从位来判断比对的结果信息,要判断哪一位,就用2^(n-1) AND Flag,返回1就是true,0就是flase

扛不住了,睡觉...

正版VISTA VS 盗版XP

某日W师兄在其VISTA的本本上装tassel的时候发着牢骚:

W: 小师妹,你说这Vista怎么这么慢?现在tassel也装不上阿?
L: 不知道阿,你是不是中毒了?java环境装了没有?
W: 没有病毒。Vista系统的兼容性好差阿,而且系统特别慢,还是XP好唉,$%&*@#^%
L: 那你就换成XP呗,我这里有盘的
W: 可惜你那XP是盗版的阿,我总不能卸了正版Vista去装盗版XP…$%&*@#^%
….

.

许久之后,我装完java、tassel,对W总结:你嫌弃Vista不好用,想装XP的这种心理就像你有老婆但嫌弃她不够好又去找小3快活,最后既不跟老婆离婚也不跟小三结婚一样。

整个实验室其他人那个汗呀…

PS:tassel是分析连锁不平衡的软件,想跟我师兄交流的同学留下Email。