Sha256: 9bfe48538c57c99317ace0d623cd3b02ef0fd8a5810c73518d595289df2ef687

Contents?: true

Size: 795 Bytes

Versions: 39

Compression:

Stored size: 795 Bytes

Contents

module Mspire
  class OBO
    attr_accessor :header
    attr_accessor :elements

    def initialize(file_or_io)
      obo = Obo::Parser.new(file_or_io)
      elements = obo.elements.to_a
      header = elements.shift
    end
    # returns an id to name Hash
    def id_to_name
      @id_to_name ||= build_hash('id', 'name')
    end
    # returns a name to id Hash
    def name_to_id
      @name_to_id ||= build_hash('name', 'id')
    end
    def id_to_element
      @id_to_element ||= build_hash('id', nil)
    end

    protected
    def build_hash(key,val)
      hash = {}
      elements.each do |el| 
        tv = el.tagvalues
        if val.nil?
          hash[tv[key].first] = el
        else
          hash[tv[key].first] = tv[val].first
        end
      end
      hash
    end
  end
end

Version data entries

39 entries across 39 versions & 1 rubygems

Version Path
mspire-0.10.8.0 lib/mspire/obo.rb
mspire-0.10.7.3 lib/mspire/obo.rb
mspire-0.10.7.2 lib/mspire/obo.rb
mspire-0.10.7.1 lib/mspire/obo.rb
mspire-0.10.7 lib/mspire/obo.rb
mspire-0.10.6 lib/mspire/obo.rb
mspire-0.10.5 lib/mspire/obo.rb
mspire-0.10.4 lib/mspire/obo.rb
mspire-0.10.3 lib/mspire/obo.rb
mspire-0.10.2 lib/mspire/obo.rb
mspire-0.10.1 lib/mspire/obo.rb
mspire-0.10.0 lib/mspire/obo.rb
mspire-0.9.2 lib/mspire/obo.rb
mspire-0.9.1 lib/mspire/obo.rb
mspire-0.9.0 lib/mspire/obo.rb
mspire-0.8.7 lib/mspire/obo.rb
mspire-0.8.6.2 lib/mspire/obo.rb
mspire-0.8.6.1 lib/mspire/obo.rb
mspire-0.8.6 lib/mspire/obo.rb
mspire-0.8.5 lib/mspire/obo.rb