Class Bio::AAindex1
In: lib/bio/db/aaindex.rb  (CVS)
Parent: AAindex

Class for AAindex1 format.

Methods

Public Class methods

[Source]

# File lib/bio/db/aaindex.rb, line 142
    def initialize(entry)
      super(entry)
    end

Public Instance methods

Returns correlation_coefficient (Hash) in the C line.

cf.) {‘ABCD12010203’ => 0.999, ‘CDEF123456’ => 0.543, …}

[Source]

# File lib/bio/db/aaindex.rb, line 149
    def correlation_coefficient
      if @data['correlation_coefficient']
        @data['correlation_coefficient']
      else
        hash = {}
        ary = field_fetch('C').split(' ')
        ary.each do |x|
          next unless x =~ /^[A-Z]/
          hash[x] = ary[ary.index(x) + 1].to_f
        end
        @data['correlation_coefficient'] = hash
      end
    end

Returns the index (Array) in the I line.

an argument: :string, :float, :zscore or :integer

[Source]

# File lib/bio/db/aaindex.rb, line 166
    def index(type = :float)
      aa = %w( A R N D C Q E G H I L K M F P S T W Y V )
      values = field_fetch('I', 1).split(' ')

      if values.size != 20
        raise "Invalid format in #{entry_id} : #{values.inspect}"
      end

      if type == :zscore and values.size > 0
        sum = 0.0
        values.each do |a|
          sum += a.to_f
        end
        mean = sum / values.size # / 20
        var = 0.0
        values.each do |a|
          var += (a.to_f - mean) ** 2
        end
        sd = Math.sqrt(var)
      end

      if type == :integer
        figure = 0
        values.each do |a|
          figure = [ figure, a[/\..*/].length - 1 ].max
        end
      end

      hash = {}

      aa.each_with_index do |a, i|
        case type
        when :string
          hash[a] = values[i]
        when :float
          hash[a] = values[i].to_f
        when :zscore
          hash[a] = (values[i].to_f - mean) / sd
        when :integer
          hash[a] = (values[i].to_f * 10 ** figure).to_i
        end
      end
      return hash
    end

[Validate]