SAM是Sequence Alignment/Map 的縮寫。像bwa等軟件序列比對結果都會輸出這樣的文件。samtools網站上有專門的文檔介紹SAM文件。具體地址:http://samtools.sourceforge.net/SAM1.pdf
很多人困惑SAM文件中的第二列FLAG值是什么意思。根據文檔介紹我們可以計算,但是為了方便大家,下面給大家提供一個腳本工具,大家直接輸入flag值就可以知道它代表的含義了。
該腳本的使用方法如下截圖所示:
腳本工具的使用方法:
將下面的代碼保存在記事本里面,另存為一個html文件,如文件名:FlagExplain.html(拓展名一定要為.html)。雙擊既可以在瀏覽器里面打開了。
Explain SAM FlagslstFlags = [["read paired", 0x1],
["read mapped in proper pair", 0x2],
["read unmapped", 0x4],
["mate unmapped", 0x8],
["read reverse strand", 0x10],
["mate reverse strand", 0x20],
["first in pair", 0x40],
["second in pair", 0x80],
["not primary alignment", 0x100],
["read fails platform/vendor quality checks", 0x200],
["read is PCR or optical duplicate", 0x400]];
function explainFlags() {
var flagValue = parseInt(document.getElementById('tb').value); //returns 0 or NaN if can't parse
var summary = "";
for(var i = 0; i < lstFlags.length; i++) {
var checkbox = document.getElementById('cb' + i)
if(lstFlags[i][1] & flagValue) {
summary += " ? ? " + lstFlags[i][0] + "
";
checkbox.checked = true;
} else {
checkbox.checked = false;
}
}
document.getElementById('summary').innerHTML = summary;
}
function checkboxClicked() {
//compute the new flag value
var newFlagValue = 0;
for(var i = 0; i < lstFlags.length; i++) {
var checkBox = document.getElementById('cb' + i);
if(checkBox.checked) {
newFlagValue |= lstFlags[i][1];
}
}
var textbox = document.getElementById('tb');
textbox.value = newFlagValue;
explainFlags();
}
This page requires JavaScript. Please enable it in your browser settings.This utility explains SAM flags in plain English.
Flag: ?
Explanation:
for(var i = 0; i < lstFlags.length; i++) {
document.write(" ? " +lstFlags[i][0] + "
");
}
? read paired ? read mapped in proper pair ? read unmapped ? mate unmapped ? read reverse strand ? mate reverse strand ? first in pair ? second in pair ? not primary alignment ? read fails platform/vendor quality checks ? read is PCR or optical duplicate
Summary: