Class: Bio::Bam::File

Inherits:
Object
  • Object
show all
Defined in:
lib/bio-sambamba/bamfile.rb

Overview

Class providing access to BAM files

Instance Method Summary collapse

Constructor Details

#initialize(filename) ⇒ File

Creates an object for access to BAM file



10
11
12
# File 'lib/bio-sambamba/bamfile.rb', line 10

def initialize(filename)
  @filename = filename
end

Instance Method Details

#alignmentsObject

Returns an AlignmentIterator object for iterating over all alignments in the file



20
21
22
# File 'lib/bio-sambamba/bamfile.rb', line 20

def alignments
  Bio::Bam::AlignmentIterator.new ['sambamba', '--format=json', @filename]
end

#fetch(chr, region) ⇒ Object

Fetches alignments overlapping a region. Returns an AlignmentIterator object.


Arguments:

  • chr: reference sequence

  • region: a Range representing an interval. Coordinates are 1-based.



37
38
39
40
41
# File 'lib/bio-sambamba/bamfile.rb', line 37

def fetch(chr, region)
  Bio::Bam::AlignmentIterator.new ['sambamba', '--format=json', 
                                   @filename,
                                    "#{chr}:#{region.min}-#{region.max}"]
end

#has_index?Boolean

True if index file was found

Returns:

  • (Boolean)


25
26
27
28
# File 'lib/bio-sambamba/bamfile.rb', line 25

def has_index?
  File::File.exists?(@filename + '.bai') || 
  File::File.exists?(@filename[0...-1] + 'i')
end

#headerObject

SAM header



15
16
17
# File 'lib/bio-sambamba/bamfile.rb', line 15

def header
  @header ||= Bio::Bam::SamHeader.new(@filename)
end