• samtools flags 分解


      bam文件的第二列的flag值,代表了当前read比对到基因组序列的基本情况。flag值由2的0次方到2的11次方这11个数字组成,即1,2,4,8,16,32,64,128,256,512,1024,2048。每个数字表示的比对情况这里不赘述,当获得当前read的flag值时,如何拆解成flag最初的值呢,这里提供一个脚本,权当记录备忘了,大家有更便捷的方法,欢迎交流。

    程序主体如下:

     1 #!/usr/bin/perl
     2 use strict;
     3 use autodie;
     4 use warnings;
     5 
     6 sub o2bn{
     7         my $n = shift;
     8         my $b = sprintf("%b", $n);
     9         my @str = split //, reverse $b;
    10         my @result;
    11         for(my $i=0; $i<@str; $i++){
    12                 if($str[$i] eq '1'){
    13                         push @result, 2**$i;
    14                 }
    15         }
    16         return @result;
    17 }
    18 
    19 print "please input flag number [quit:0]: ";
    20 while(my $number = <STDIN>){
    21         last if $number == 0;
    22         my @ret = o2bn($number);
    23         print "result is : @ret\n";
    24         print "please input flag number [quit:0]: ";
    25 }

    结果:

  • 相关阅读:
    day01-h1字体大小和文本居中
    js正则表达式中的
    js滚动分页原理
    在web.xml中设置全局编码
    C# 导出word 表格代码
    C# 创建单例
    Winform 异步调用2 时间
    Winform 异步调用
    c#中跨线程调用windows窗体控件
    C# 中的委托和事件
  • 原文地址:https://www.cnblogs.com/mmtinfo/p/15973747.html
Copyright © 2020-2023  润新知