Module Bio::KEGG::Common::References
In: lib/bio/db/kegg/common.rb

The module provides references method.

Methods

Public Instance methods

REFERENCE — Returns contents of the REFERENCE records as an Array of Bio::Reference objects.

[Source]

    # File lib/bio/db/kegg/common.rb, line 30
30:       def references
31:         unless @data['REFERENCE']
32:           ary = []
33:           toptag2array(get('REFERENCE')).each do |ref|
34:             hash = Hash.new
35:             subtag2array(ref).each do |field|
36:               case tag_get(field)
37:               when /REFERENCE/
38:                 cmnt = tag_cut(field).chomp
39:                 if /^\s*PMID\:(\d+)\s*/ =~ cmnt then
40:                   hash['pubmed'] = $1
41:                   cmnt = $'
42:                 end
43:                 if cmnt and !cmnt.empty? then
44:                   hash['comments'] ||= []
45:                   hash['comments'].push(cmnt)
46:                 end
47:               when /AUTHORS/
48:                 authors = truncate(tag_cut(field))
49:                 authors = authors.split(/\, /)
50:                 authors[-1] = authors[-1].split(/\s+and\s+/) if authors[-1]
51:                 authors = authors.flatten.map { |a| a.sub(',', ', ') }
52:                 hash['authors'] = authors
53:               when /TITLE/
54:                 hash['title']   = truncate(tag_cut(field))
55:               when /JOURNAL/
56:                 journal = truncate(tag_cut(field))
57:                 case journal
58:                   # KEGG style
59:                 when /(.*) (\d*(?:\([^\)]+\))?)\:(\d+\-\d+) \((\d+)\)$/
60:                   hash['journal'] = $1
61:                   hash['volume']  = $2
62:                   hash['pages']   = $3
63:                   hash['year']    = $4
64:                   # old KEGG style
65:                 when /(.*) (\d+):(\d+\-\d+) \((\d+)\) \[UI:(\d+)\]$/
66:                   hash['journal'] = $1
67:                   hash['volume']  = $2
68:                   hash['pages']   = $3
69:                   hash['year']    = $4
70:                   hash['medline'] = $5
71:                   # Only journal name and year are available
72:                 when /(.*) \((\d+)\)$/
73:                   hash['journal'] = $1
74:                   hash['year']    = $2
75:                 else
76:                   hash['journal'] = journal
77:                 end
78:               end
79:             end
80:             ary.push(Reference.new(hash))
81:           end
82:           @data['REFERENCE'] = ary #.extend(Bio::References::BackwardCompatibility)
83: 
84:         end
85:         @data['REFERENCE']
86:       end

[Validate]