class Bio::Bam::File
Class providing access to BAM files
Public Class Methods
new(filename)
click to toggle source
Creates an object for access to BAM file
# File lib/bio-sambamba/bamfile.rb, line 20 def initialize(filename) @filename = filename check_file_existence filename end
Public Instance Methods
[](chr)
click to toggle source
# File lib/bio-sambamba/bamfile.rb, line 62 def [](chr) fetch(chr, nil) end
alignments()
click to toggle source
Returns an AlignmentIterator
object for iterating over all alignments in the file
# File lib/bio-sambamba/bamfile.rb, line 31 def alignments cmdline = ['sambamba', 'view', '--format', 'msgpack', @filename] Bio::Bam::AlignmentIterator.new(cmdline, reference_sequence_names) end
fetch(chr, region)
click to toggle source
Fetches alignments overlapping a region. Returns an AlignmentIterator
object.
Arguments:
-
chr: reference sequence
-
region: a Range representing an interval. Coordinates are 1-based.
# File lib/bio-sambamba/bamfile.rb, line 50 def fetch(chr, region) cmdline = ['sambamba', 'view', '--format=msgpack', @filename] iter = Bio::Bam::AlignmentIterator.new(cmdline, reference_sequence_names) iter.chromosome = chr iter.region = region iter end
has_index?()
click to toggle source
True if index file was found
# File lib/bio-sambamba/bamfile.rb, line 37 def has_index? fn1 = @filename + '.bai' fn2 = @filename.chomp(RubyFile.extname(@filename)) + '.bai' RubyFile.exists?(fn1) || RubyFile.exists?(fn2) end
header()
click to toggle source
SAM header
# File lib/bio-sambamba/bamfile.rb, line 26 def header @header ||= Bio::Bam::SamHeader.new(@filename) end
reference_sequences()
click to toggle source
# File lib/bio-sambamba/bamfile.rb, line 58 def reference_sequences @reference_sequences ||= JSON.parse(Bio::Command.query_command ['sambamba', 'view', '-I', @filename]) end
Private Instance Methods
reference_sequence_names()
click to toggle source
# File lib/bio-sambamba/bamfile.rb, line 67 def reference_sequence_names @reference_sequence_names ||= reference_sequences.map {|ref| ref['name']} end