class Bio::DB::Faidx
Public Class Methods
new(opts)
click to toggle source
# File lib/bio-faidx/faidx.rb, line 10 def initialize(opts) @cache = false @cache = opts[:cache] if opts[:cache] @filename = opts[:filename] @inited = false end
Public Instance Methods
[](entry)
click to toggle source
# File lib/bio-faidx/faidx.rb, line 32 def [](entry) init_cache unless @inited @entries[entry] end
each_entry() { |e| ... }
click to toggle source
# File lib/bio-faidx/faidx.rb, line 54 def each_entry unless @cache read_entries { |e| yield e } else entries_order.each { |e| yield @entries[e] } end end
entries()
click to toggle source
# File lib/bio-faidx/faidx.rb, line 27 def entries init_cache unless @inited @entries end
entries_order()
click to toggle source
# File lib/bio-faidx/faidx.rb, line 38 def entries_order init_cache unless @inited return @entries_order end
init_cache()
click to toggle source
# File lib/bio-faidx/faidx.rb, line 17 def init_cache @inited = true @entries = Hash.new @entries_order = Array.new read_entries do |e| @entries[e.name] = e @entries_order << e.name end end
read_entries() { |fasta_entry| ... }
click to toggle source
# File lib/bio-faidx/faidx.rb, line 43 def read_entries CSV.foreach(@filename, :col_sep => "\t", :skip_lines=>/^#/, :skip_blanks=>true) do |row| fasta_entry = Bio::DB::Faidx::Entry.new [:name, :length, :offset, :linebases, :linewidth].each_with_index do |sym, i| answer = row[i] answer = answer.to_i if [:length, :offset, :linebases, :linewidth].include?(sym) fasta_entry.send("#{sym}=".to_sym, answer) yield fasta_entry end end def each_entry unless @cache read_entries { |e| yield e } else entries_order.each { |e| yield @entries[e] } end end end