X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=forester%2Fruby%2Fevoruby%2Flib%2Fevo%2Fio%2Fparser%2Funiprot_parser.rb;h=607804c338a588746e1d3c6b63e0f15a452929f8;hb=82c56a39596009de42d64b85390f2b6bc03663b9;hp=a47a6b2d18c912b45ab0a5474f0cc308fe222e16;hpb=d03733a9998b73a5880b9dab0f688e6a69661019;p=jalview.git diff --git a/forester/ruby/evoruby/lib/evo/io/parser/uniprot_parser.rb b/forester/ruby/evoruby/lib/evo/io/parser/uniprot_parser.rb index a47a6b2..607804c 100644 --- a/forester/ruby/evoruby/lib/evo/io/parser/uniprot_parser.rb +++ b/forester/ruby/evoruby/lib/evo/io/parser/uniprot_parser.rb @@ -23,38 +23,26 @@ module Evoruby DR = "DR" LAST = '//' - def initialize file - Util.check_file_for_readability file - @file = file + def initialize + end - def parse( ids ) - entries = Hash.new + def parse( lines ) de = [] dr = [] id = nil - File.open( @file ).each do | line | - if line.index( ID ) == 0 - # puts line - ids.each do | i | - #puts " " + i - if line.include?( i ) && line.split[ 1 ] == i - id = i - break - end - end - end - if id != nil + lines.each do | line | + + if line.include?( ID ) && line.index( ID ) == 0 + id = line.split[ 1 ] + elsif id != nil if line.include?( LAST ) && line.index( LAST ) == 0 e = UniprotEntry.new + e.id = id e.de = de e.dr = dr - entries[ id ] = e - puts id - id = nil - de = [] - dr = [] + return e else if line.include?( DE ) && line.index( DE ) == 0 add( line, de ) @@ -64,7 +52,7 @@ module Evoruby end end end - entries + return nil end private @@ -89,7 +77,61 @@ module Evoruby attr_accessor :pe attr_accessor :kw + def get_pdb_ids + ids = [] + if dr != nil + dr.each do | dr | + if dr != nil + if dr =~ /PDB;\s+([A-Z0-9]{4});/ + ids << $1 + end + end + end + end + ids + end + + def get_go_descriptions + gos = [] + if dr != nil + dr.each do | dr | + if dr != nil + if dr =~ /GO;\s+GO:\d+(.+);\s+([^;]+)/ + gos << $1 + end + end + end + end + gos + end + + def get_full_name + # DE RecName: Full=Apoptosis regulator Bcl-2; + end + + + def get_reactome_descriptions + s = [] + if dr != nil + dr.each do | dr | + if dr != nil + if dr =~ /Reactome;\s+REACT_\d+;\s+([^.]+)/ + s << $1 + end + end + end + end + s + end + + end + + + + + + end # module Evoruby