2 # = lib/evo/io/parser/hmmscan_parser.rb - HmmscanParser class
4 # Copyright:: Copyright (C) 2017 Christian M. Zmasek
5 # License:: GNU Lesser General Public License (LGPL)
7 # Last modified: 2017/02/12
16 File.open( @file ).each do | line |
18 if !line.empty? && line[ 0 ] != "#"
19 results << parse_line( line )
25 def parse_line( line )
26 # tn acc tlen query acc qlen Evalue score bias # of c-E i-E score bias hf ht af at ef et acc desc
27 # 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
28 if line =~ /^(\S+)\s+(\S+)\s+(\d+)\s+(\S+)\s+(\S+)\s+(\d+)\s+(\S+)\s+(\S+)\s+(\S+)\s+(\d+)\s+(\d+)\s+(\S+)\s+(\S+)\s+(\S+)\s+(\S+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\S+)\s+(.*)/
37 r.fs_e_value = $7.to_f
43 r.c_e_value = $12.to_f
44 r.i_e_value = $13.to_f
58 if r.number > r.out_of || r.hmm_from > r.hmm_to || r.ali_from > r.ali_to || r.env_from > r.env_to
59 raise IOError, "illogical format: " + line
64 raise IOError, "illegal format: " + line
75 attr_accessor :fs_e_value
76 attr_accessor :fs_score
79 attr_accessor :c_e_value
80 attr_accessor :i_e_value
82 attr_accessor :hmm_from
84 attr_accessor :ali_from
86 attr_accessor :env_from