Class | Bio::AAindex2 |
In: |
lib/bio/db/aaindex.rb
|
Parent: | AAindex |
Returns the value of amino acids substitution (aa1 -> aa2).
# File lib/bio/db/aaindex.rb, line 242 242: def [](aa1 = nil, aa2 = nil) 243: matrix[cols.index(aa1), rows.index(aa2)] 244: end
Returns col labels.
# File lib/bio/db/aaindex.rb, line 232 232: def cols 233: if @data['cols'] 234: @data['cols'] 235: else 236: label_data 237: @cols 238: end 239: end
Returns amino acids matrix in Matrix.
# File lib/bio/db/aaindex.rb, line 247 247: def matrix(aa1 = nil, aa2 = nil) 248: return self[aa1, aa2] if aa1 and aa2 249: 250: if @data['matrix'] 251: @data['matrix'] 252: else 253: ma = [] 254: label_data.each_line do |line| 255: ma << line.strip.split(/\s+/).map {|x| x.to_f } 256: end 257: @data['matrix'] = Matrix[*ma] 258: end 259: end
Returns amino acids matrix in Matrix for the old format (<= ver 5.0).
# File lib/bio/db/aaindex.rb, line 262 262: def old_matrix # for AAindex <= ver 5.0 263: return @data['matrix'] if @data['matrix'] 264: 265: @aa = {} 266: # used to determine row/column of the aa 267: attr_reader :aa 268: alias_method :aa, :rows 269: alias_method :aa, :cols 270: 271: field = field_fetch('I') 272: 273: case field 274: when / (ARNDCQEGHILKMFPSTWYV)\s+(.*)/ # 20x19/2 matrix 275: aalist = $1 276: values = $2.split(/\s+/) 277: 278: 0.upto(aalist.length - 1) do |i| 279: @aa[aalist[i].chr] = i 280: end 281: 282: ma = Array.new 283: 20.times do 284: ma.push(Array.new(20)) # 2D array of 20x(20) 285: end 286: 287: for i in 0 .. 19 do 288: for j in i .. 19 do 289: ma[i][j] = values[i + j*(j+1)/2].to_f 290: ma[j][i] = ma[i][j] 291: end 292: end 293: @data['matrix'] = Matrix[*ma] 294: when / -ARNDCQEGHILKMFPSTWYV / # 21x20/2 matrix (with gap) 295: raise NotImplementedError 296: when / ACDEFGHIKLMNPQRSTVWYJ- / # 21x21 matrix (with gap) 297: raise NotImplementedError 298: end 299: end