Module | Bio::KEGG::Common::References |
In: |
lib/bio/db/kegg/common.rb
|
The module provides references method.
REFERENCE — Returns contents of the REFERENCE records as an Array of Bio::Reference objects.
# 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