Class | Bio::AAindex1 |
In: |
lib/bio/db/aaindex.rb
|
Parent: | AAindex |
Class for AAindex1 format.
Returns correlation_coefficient (Hash) in the C line.
cf.) {‘ABCD12010203’ => 0.999, ‘CDEF123456’ => 0.543, …}
# File lib/bio/db/aaindex.rb, line 149 149: def correlation_coefficient 150: if @data['correlation_coefficient'] 151: @data['correlation_coefficient'] 152: else 153: hash = {} 154: ary = field_fetch('C').split(' ') 155: ary.each do |x| 156: next unless x =~ /^[A-Z]/ 157: hash[x] = ary[ary.index(x) + 1].to_f 158: end 159: @data['correlation_coefficient'] = hash 160: end 161: end
Returns the index (Array) in the I line.
an argument: :string, :float, :zscore or :integer
# File lib/bio/db/aaindex.rb, line 166 166: def index(type = :float) 167: aa = %w( A R N D C Q E G H I L K M F P S T W Y V ) 168: values = field_fetch('I', 1).split(' ') 169: 170: if values.size != 20 171: raise "Invalid format in #{entry_id} : #{values.inspect}" 172: end 173: 174: if type == :zscore and values.size > 0 175: sum = 0.0 176: values.each do |a| 177: sum += a.to_f 178: end 179: mean = sum / values.size # / 20 180: var = 0.0 181: values.each do |a| 182: var += (a.to_f - mean) ** 2 183: end 184: sd = Math.sqrt(var) 185: end 186: 187: if type == :integer 188: figure = 0 189: values.each do |a| 190: figure = [ figure, a[/\..*/].length - 1 ].max 191: end 192: end 193: 194: hash = {} 195: 196: aa.each_with_index do |a, i| 197: case type 198: when :string 199: hash[a] = values[i] 200: when :float 201: hash[a] = values[i].to_f 202: when :zscore 203: hash[a] = (values[i].to_f - mean) / sd 204: when :integer 205: hash[a] = (values[i].to_f * 10 ** figure).to_i 206: end 207: end 208: return hash 209: end