| Class | Bio::GO::External2go |
| In: |
lib/bio/db/go.rb
|
| Parent: | Array |
The line syntax is:
database:<identifier> > GO:<term> ; GO:<GO_id>
spkw2go = Bio::GO::External2go.new(File.read("spkw2go"))
spkw2go.size
spkw2go.each do |relation|
relation # -> {:db => "", :db_id => "", :go_term => "", :go_id => ""}
end
spkw2go.dbs
!date: 2005/02/08 18:02:54 !Mapping of SWISS-PROT KEYWORDS to GO terms. !Evelyn Camon, SWISS-PROT. ! SP_KW:ATP synthesis > GO:ATP biosynthesis ; GO:0006754 ...
| header | [R] | Returns aHash of the external2go header information |
Constructor. relation := {:db => aStr, :db_id => aStr, :go_term => aStr, :go_id => aStr}
# File lib/bio/db/go.rb, line 355
355: def initialize
356: @header = {:date => '', :desc => []}
357: super
358: end
Constructor from parsing external2go file.
# File lib/bio/db/go.rb, line 335
335: def self.parser(str)
336: e2g = self.new
337: str.each_line do |line|
338: line.chomp!
339: if line =~ /^\!date: (.+)/
340: e2g.header[:date] = $1
341: elsif line =~ /^\!(.*)/
342: e2g.header[:desc] << $1
343: elsif ary = line.scan(/^(.+?):(.+) > GO:(.+) ; (GO:\d{7})/).first
344: e2g << {:db_id => ary[1], :db => ary[0], :go_term => ary[2], :go_id => ary[3]}
345: else
346: raise("Invalid Format Line: \n #{line.inspect}\n")
347: end
348: end
349: return e2g
350: end
Returns ary of database IDs.
# File lib/bio/db/go.rb, line 390
390: def db_ids
391: self.map {|rel| rel[:db_id] }.uniq
392: end
Returns ary of databases.
# File lib/bio/db/go.rb, line 384
384: def dbs
385: self.map {|rel| rel[:db] }.uniq
386: end
Bio::GO::External2go#set_date(value)
# File lib/bio/db/go.rb, line 362
362: def set_date(value)
363: @header[:date] = value
364: end
Bio::GO::External2go#set_desc(ary)
# File lib/bio/db/go.rb, line 368
368: def set_desc(ary)
369: @header[:desc] = ary
370: end
Bio::GO::External2go#to_str Returns the contents in the external2go format.
# File lib/bio/db/go.rb, line 375
375: def to_str
376: ["!date: #{@header[:date]}",
377: @header[:desc].map {|e| "!#{e}" },
378: self.map { |e| [e[:db], ':', e[:db_id], ' > GO:', e[:go_term], ' ; ', e[:go_id]].join }
379: ].join("\n")
380: end