class MgNu::Parser::FastaIndex
Attributes
db[R]
db_name[R]
db_type[R]
filename[R]
Public Class Methods
new(filename, options = {})
click to toggle source
create a new FastaIndex
parser
# File lib/mgnu/parser/fasta_index.rb, line 10 def initialize(filename, options = {}) options = { :db_type => :TokyoCabinet }.merge!(options) @db_type = options[:db_type] @filename = filename if @db_type == :TokyoCabinet if @filename =~ /^.+\.tch$/ @db_name = @filename else @db_name = "#{@filename}.tch" end end if db_type == :TokyoCabinet @db = Moneta.new(:TokyoCabinet, file: @db_name, type: :hdb) end parse end
Public Instance Methods
[](name)
click to toggle source
# File lib/mgnu/parser/fasta_index.rb, line 41 def [](name) f = nil if @db.key?(name) d = JSON.parse(@db[name]) f = MgNu::Sequence::Fasta.new(:header => "#{name} #{d['description']}", :sequence => d['sequence']) end f end
close()
click to toggle source
# File lib/mgnu/parser/fasta_index.rb, line 51 def close @db.close unless @db.nil? end
parse()
click to toggle source
setup parse method for creating tokyo cabinet
# File lib/mgnu/parser/fasta_index.rb, line 33 def parse MgNu::Parser::Fasta.new(@filename).each do |f| name = f.header_name description = f.header_description @db[name] = { 'description' => description, 'sequence' => f.sequence }.to_json end end