• 推荐一个SAM文件或者bam文件中flag含义解释工具


    SAM是Sequence Alignment/Map 的缩写。像bwa等软件序列比对结果都会输出这样的文件。samtools网站上有专门的文档介绍SAM文件。具体地址:http://samtools.sourceforge.net/SAM1.pdf

    很多人困惑SAM文件中的第二列FLAG值是什么意思。根据文档介绍我们可以计算,但是为了方便大家,下面给大家提供一个脚本工具,大家直接输入flag值就可以知道它代表的含义了。

    该脚本的使用方法如下截图所示:

    脚本工具的使用方法:

    将下面的代码保存在记事本里面,另存为一个html文件,如文件名:FlagExplain.html(拓展名一定要为.html)。双击既可以在浏览器里面打开了。

    01 <html><head><meta http-equiv="Content-Type" content="text/html; charset=GBK">
    02    <title>Explain SAM Flags</title>
    03    <script type="text/javascript">
    04       lstFlags = [["read paired", 0x1],
    05              ["read mapped in proper pair", 0x2],
    06              ["read unmapped", 0x4],
    07              ["mate unmapped", 0x8],
    08              ["read reverse strand", 0x10],
    09              ["mate reverse strand", 0x20],
    10              ["first in pair", 0x40],
    11              ["second in pair", 0x80],
    12              ["not primary alignment", 0x100],
    13              ["read fails platform/vendor quality checks", 0x200],
    14              ["read is PCR or optical duplicate", 0x400]];
    15  
    16       function explainFlags() {
    17          var flagValue = parseInt(document.getElementById('tb').value); //returns 0 or NaN if can't parse
    18          var summary = "";
    19          for(var i = 0; i < lstFlags.length; i++) {
    20             var checkbox document.getElementById('cb' + i)
    21             if(lstFlags[i][1] & flagValue) {
    22                summary  += " &nbsp; &nbsp; " + lstFlags[i][0] + "<br>";
    23                checkbox.checked = true;
    24             } else {
    25                checkbox.checked = false;
    26             }
    27          }
    28  
    29          document.getElementById('summary').innerHTML = summary;
    30       }
    31  
    32       function checkboxClicked() {
    33          //compute the new flag value
    34          var newFlagValue = 0;
    35          for(var i = 0; i < lstFlags.length; i++) {
    36             var checkBox document.getElementById('cb' + i);
    37             if(checkBox.checked) {
    38                newFlagValue |= lstFlags[i][1];
    39             }
    40          }
    41          var textbox document.getElementById('tb');
    42          textbox.value newFlagValue;
    43          explainFlags();
    44       }
    45    </script>
    46  
    47    <noscript>This page requires JavaScript. Please enable it in your browser settings.</noscript>
    48 </head>
    49 <body>
    50  
    51 This utility explains SAM flags in plain English. <br>
    52 <br>
    53  
    54 <form onsubmit="explainFlags(); return false;">
    55 Flag: &nbsp;
    56 <input id="tb" type="text" size="10"> &nbsp; &nbsp; &nbsp;
    57 <input type="submit" value="Explain"><br>
    58 <br>
    59 Explanation:<br>
    60 <script type="text/javascript">
    61 for(var i = 0; i < lstFlags.length; i++) {
    62    document.write("<input type=checkbox name=cb" + i + " id='cb" + i + "' onclick='checkboxClicked();'> &nbsp; " +lstFlags[i][0] + "</input><br>");
    63 }
    64 </script><input type="checkbox" name="cb0" id="cb0" onclick="checkboxClicked();"> &nbsp; read paired<br><input type="checkbox" name="cb1" id="cb1"onclick="checkboxClicked();"> &nbsp; read mapped in proper pair<br><inputtype="checkbox" name="cb2" id="cb2" onclick="checkboxClicked();"> &nbsp; read unmapped<br><input type="checkbox" name="cb3" id="cb3" onclick="checkboxClicked();"> &nbsp; mate unmapped<br><input type="checkbox" name="cb4" id="cb4" onclick="checkboxClicked();"> &nbsp; read reverse strand<br><input type="checkbox" name="cb5" id="cb5" onclick="checkboxClicked();"> &nbsp; mate reverse strand<br><input type="checkbox" name="cb6" id="cb6" onclick="checkboxClicked();"> &nbsp; first in pair<br><input type="checkbox" name="cb7" id="cb7" onclick="checkboxClicked();"> &nbsp; second in pair<br><input type="checkbox" name="cb8" id="cb8"onclick="checkboxClicked();"> &nbsp; not primary alignment<br><input type="checkbox" name="cb9" id="cb9" onclick="checkboxClicked();"> &nbsp; read fails platform/vendor quality checks<br><input type="checkbox" name="cb10" id="cb10" onclick="checkboxClicked();"> &nbsp; read is PCR or optical duplicate<br>
    65 <br>
    66 Summary:<br>
    67 <div id="summary">
    68 </div></form></body></html>

    参考:https://www.plob.org/article/1697.html

  • 相关阅读:
    假丶依赖注入
    .NET Core 傻瓜式CSRedisCore缓存
    .NET Core MD5加密 32位和16位
    数据库所对应的函数
    使用通配符进行过滤
    WHERE 子句操作符
    不同的数据库查询行数的方式
    第一课了解SQL
    微服务架构综述
    三层应用与单块架构
  • 原文地址:https://www.cnblogs.com/Formulate0303/p/7844541.html
Copyright © 2020-2023  润新知