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

推荐一个SAM文件或者bam文件中flag含义解释工具的更多相关文章

  1. 推荐一个SAM文件中flag含义解释工具--转载

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

  2. 31、SAM文件中flag含义解释工具--转载

    转载:http://www.cnblogs.com/nkwy2012/p/6362996.html  SAM是Sequence Alignment/Map 的缩写.像bwa等软件序列比对结果都会输出这 ...

  3. 推荐一个可以直接在Visual Studio中看到complexity的插件CodeMaid

    博客搬到了fresky.github.io - Dawei XU,请各位看官挪步.最新的一篇是:推荐一个可以直接在Visual Studio中看到complexity的插件CodeMaid.

  4. 推荐一个免费的生成词云(word cloud)的在线工具

    "词云"这个概念由美国西北大学新闻学副教授.新媒体专业主任里奇·戈登(Rich Gordon)提出. "词云"就是对网络文本中出现频率较高的"关键词& ...

  5. bat脚本中%~dp0含义解释

    在Windows脚本中,%i类似于shell脚本中的$i,%0表示脚本本身,%1表示脚本的第一个参数,以此类推到%9,在%和i之间可以有"修饰符"(完整列表可通过"for ...

  6. SAMTOOLS使用 SAM BAM文件处理

    [怪毛匠子 整理] samtools学习及使用范例,以及官方文档详解 #第一步:把sam文件转换成bam文件,我们得到map.bam文件 system"samtools view -bS m ...

  7. bam文件测序深度统计-bamdst

    最近接触的数据都是靶向测序,或者全外测序的数据.对数据的覆盖深度及靶向捕获效率的评估成为了数据质量监控中必不可少的一环. 以前都是用samtools depth 算出单碱基的深度后,用perl来进行深 ...

  8. SAM/BAM文件处理

    当测序得到的fastq文件map到基因组之后,我们通常会得到一个sam或者bam为扩展名的文件.SAM的全称是sequence alignment/map format.而BAM就是SAM的二进制文件 ...

  9. 文件格式——Sam&bam文件

    Sam&bam文件 SAM是一种序列比对格式标准, 由sanger制定,是以TAB为分割符的文本格式.主要应用于测序序列mapping到基因组上的结果表示,当然也可以表示任意的多重比对结果.当 ...

随机推荐

  1. 在win7上跑基于任少卿作者代码修改的RPN+BF实验

    1.前言 之前在win10上成功的跑起来faster-rcnn的实验,并且跑了一下CaltechPedestrian的数据集,但是效果一直不理想,折腾了好久也没弄清楚到底原因出在哪里,直到读了Is F ...

  2. zblog如何更改数据库配置以及生效

    zblog是一个博客的开源框架, 挺不错的,我们当前拿来作为新闻系统管理使用. 由于我们数据库需要统一使用RDS, 故对zblog数据库配置进行修改,修改文件如下: 1. 数据库文件地址: zb_us ...

  3. Python selenium根据class定位页面元素

    在日常的网页源码中,我们基于元素的id去定位是最万无一失的,id在单个页面中是不会重复的.但是实际工作中,很多前端开发人员并未给每个元素都编写id属性.通常一段html代码如下: <div cl ...

  4. mac 安装robot framework报错:No matching distribution found for Pywin32

    运行  pip install robotframework-ride  ,出现以下错误 解决办法:修改Python的运行方式,需要32位的python运行 defaults write com.ap ...

  5. linux c tcp p2p

    江湖上一直都有这位哥哥的传说,也有很多人说自己就他的真身! 但是... 今天分享一下TCP连接的P2P demo,江湖的规矩也要与时俱进... ———————————————————————————— ...

  6. django请求接收及文件上传

    在写后端交互页面的时候常常会遇到接收来自前端页面请求的情况,例如 在写注册页面的时候,会提交一些页面信息,这时需要分三种情况讨论 第一种,接收单项信息: v = request.POST.getlis ...

  7. Linux Centos 删除除某(多)个文件之外的所有文件

    好久没有写东西了.通常我们通过rm -rf  *可以直接强制删除当前文件夹里面的所有内容,但是有些时候我们需要保留一些文件,就比如,网站转移更新需要保留程序压缩包等就需要用到在linux centos ...

  8. Flask-Migrate

    终于到了Flask-Migrate,之前在看Flask-SQLAlchemy的时候, Flask支持 makemigration / migrate 吗? 答案在这里该诉你,如果你同时拥有两个三方组件 ...

  9. 用Java实现图片验证码功能

    一.什么是图片验证码? 可以参考下面这张图: 我们在一些网站注册的时候,经常需要填写以上图片的信息. 1.图片生成实体类: package com.hexianwei.graphic; import ...

  10. SynchronousQueue------TransferStack源码分析

    s,e在线程栈里面,TransferStack在堆里面,方法只是线程的执行逻辑.线程过来调用transfer方法,线程在堆里面创建一个节点,加到Stack里面去,然后这个线程归属节点的waiter,阻 ...