Class: HTS::Bam::Flag

Inherits:
Object
  • Object
show all
Defined in:
lib/hts/bam/flag.rb

Overview

SAM flags

Constant Summary collapse

PAIRED =
1
PROPER_PAIR =
2
UNMAPPED =
4
MATE_UNMAPPED =
8
REVERSE =
16
MATE_REVERSE =
32
READ1 =
64
READ2 =
128
SECONDARY =
256
QCFAIL =
512
DUPLICATE =
1024
SUPPLEMENTARY =
2048
TABLE =
{ paired?: PAIRED, proper_pair?: PROPER_PAIR, unmapped?: UNMAPPED,
mate_unmapped?: MATE_UNMAPPED, reverse?: REVERSE,
mate_reverse?: MATE_REVERSE, read1?: READ1, read2?: READ2,
secondary?: SECONDARY, qcfail?: QCFAIL, duplicate?: DUPLICATE,
supplementary?: SUPPLEMENTARY }.freeze

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(flag_value) ⇒ Flag

Returns a new instance of Flag.

Raises:

  • (TypeError)


10
11
12
13
14
# File 'lib/hts/bam/flag.rb', line 10

def initialize(flag_value)
  raise TypeError unless flag_value.is_a? Integer

  @value = flag_value
end

Instance Attribute Details

#valueObject

Returns the value of attribute value.



16
17
18
# File 'lib/hts/bam/flag.rb', line 16

def value
  @value
end

Instance Method Details

#&(other) ⇒ Object



64
65
66
# File 'lib/hts/bam/flag.rb', line 64

def &(other)
  self.class.new(@value & other.to_i)
end

#<<(f) ⇒ Object



82
83
84
# File 'lib/hts/bam/flag.rb', line 82

def <<(f)
  self.class.new(@value << f.to_i)
end

#>>(other) ⇒ Object



86
87
88
# File 'lib/hts/bam/flag.rb', line 86

def >>(other)
  self.class.new(@value >> other.to_i)
end

#^(other) ⇒ Object



72
73
74
# File 'lib/hts/bam/flag.rb', line 72

def ^(other)
  self.class.new(@value ^ other.to_i)
end

#duplicate?Boolean

Returns:

  • (Boolean)


57
# File 'lib/hts/bam/flag.rb', line 57

generate :duplicate?

#has_flag?(f) ⇒ Boolean

Returns:

  • (Boolean)


60
61
62
# File 'lib/hts/bam/flag.rb', line 60

def has_flag?(f)
  (@value & f) != 0
end

#mate_reverse?Boolean

Returns:

  • (Boolean)


52
# File 'lib/hts/bam/flag.rb', line 52

generate :mate_reverse?

#mate_unmapped?Boolean

Returns:

  • (Boolean)


50
# File 'lib/hts/bam/flag.rb', line 50

generate :mate_unmapped?

#paired?Boolean

Returns:

  • (Boolean)


47
# File 'lib/hts/bam/flag.rb', line 47

generate :paired?

#proper_pair?Boolean

Returns:

  • (Boolean)


48
# File 'lib/hts/bam/flag.rb', line 48

generate :proper_pair?

#qcfail?Boolean

Returns:

  • (Boolean)


56
# File 'lib/hts/bam/flag.rb', line 56

generate :qcfail?

#read1?Boolean

Returns:

  • (Boolean)


53
# File 'lib/hts/bam/flag.rb', line 53

generate :read1?

#read2?Boolean

Returns:

  • (Boolean)


54
# File 'lib/hts/bam/flag.rb', line 54

generate :read2?

#reverse?Boolean

Returns:

  • (Boolean)


51
# File 'lib/hts/bam/flag.rb', line 51

generate :reverse?

#secondary?Boolean

Returns:

  • (Boolean)


55
# File 'lib/hts/bam/flag.rb', line 55

generate :secondary?

#supplementary?Boolean

Returns:

  • (Boolean)


58
# File 'lib/hts/bam/flag.rb', line 58

generate :supplementary?

#to_iObject



90
91
92
# File 'lib/hts/bam/flag.rb', line 90

def to_i
  @value
end

#to_sObject



94
95
96
# File 'lib/hts/bam/flag.rb', line 94

def to_s
  Native.bam_flag_string(@value)
end

#unmapped?Boolean

Returns:

  • (Boolean)


49
# File 'lib/hts/bam/flag.rb', line 49

generate :unmapped?

#|(other) ⇒ Object



68
69
70
# File 'lib/hts/bam/flag.rb', line 68

def |(other)
  self.class.new(@value | other.to_i)
end

#~Object



76
77
78
79
80
# File 'lib/hts/bam/flag.rb', line 76

def ~
  # FIXME: Only 12bits are used for flags
  # The result is different from the Crystal version.
  self.class.new(~@value)
end