class BlastHit
Class for a Blast Hit (a concordance between a query and a subject)
Attributes
acc[R]
align_len[R]
bit_score[R]
definition[R]
e_val[R]
full_subject_length[R]
gaps[R]
ident[R]
mismatches[R]
q_beg[RW]
readers and accessor for properties
q_end[RW]
readers and accessor for properties
q_frame[R]
q_len[R]
q_seq[R]
reversed[RW]
s_beg[RW]
readers and accessor for properties
s_end[RW]
readers and accessor for properties
s_frame[R]
s_len[R]
s_seq[R]
score[R]
subject_id[R]
Public Class Methods
new(q_beg,q_end,s_beg,s_end)
click to toggle source
initializes a new hit
# File lib/scbi_blast/blast_hit.rb, line 27 def initialize(q_beg,q_end,s_beg,s_end) set_limits(q_beg,q_end,s_beg,s_end) end
Public Instance Methods
acc=(v)
click to toggle source
# File lib/scbi_blast/blast_hit.rb, line 91 def acc=(v) @acc = v end
align_len=(v)
click to toggle source
# File lib/scbi_blast/blast_hit.rb, line 66 def align_len=(v) @align_len = v.to_i end
bit_score=(v)
click to toggle source
# File lib/scbi_blast/blast_hit.rb, line 82 def bit_score=(v) @bit_score = v.to_f end
compare?(hit)
click to toggle source
# File lib/scbi_blast/blast_hit.rb, line 147 def compare?(hit) res=true res &&=( @q_beg==hit.q_beg) res &&=( @q_end==hit.q_end) res &&=( @s_beg==hit.s_beg) res &&=( @s_end==hit.s_end) res &&=( @subject_id==hit.subject_id) res &&=( @align_len==hit.align_len) res &&=( @gaps==hit.gaps) res &&=( @mismatches==hit.mismatches) res &&=( @reversed==hit.reversed) res &&=( @score==hit.score) res &&=( @acc==hit.acc) res &&=( @definition==hit.definition) res &&=( @q_frame==hit.q_frame) res &&=( @s_frame==hit.s_frame) res &&=( @full_subject_length==hit.full_subject_length) res &&=( @ident==hit.ident) res &&=( @e_val==hit.e_val) res &&=( @bit_score==hit.bit_score) res &&=( @q_seq==hit.q_seq) res &&=( @s_seq==hit.s_seq) if !res puts "Hits not equal:" puts inspect puts "="*20 puts hit.inspect end return res end
definition=(v)
click to toggle source
# File lib/scbi_blast/blast_hit.rb, line 95 def definition=(v) @definition = v end
e_val=(v)
click to toggle source
# File lib/scbi_blast/blast_hit.rb, line 78 def e_val=(v) @e_val = v.to_f end
full_subject_length=(v)
click to toggle source
# File lib/scbi_blast/blast_hit.rb, line 123 def full_subject_length=(v) @full_subject_length = v.to_i end
gaps=(v)
click to toggle source
# File lib/scbi_blast/blast_hit.rb, line 74 def gaps=(v) @gaps = v.to_i end
get_subject()
click to toggle source
# File lib/scbi_blast/blast_hit.rb, line 135 def get_subject return @subject_id end
ident=(v)
click to toggle source
# File lib/scbi_blast/blast_hit.rb, line 62 def ident=(v) @ident = v.to_f end
inspect()
click to toggle source
puts all hit info on a string
# File lib/scbi_blast/blast_hit.rb, line 128 def inspect res = "Hit: #{@subject_id.ljust(10)} #{@ident.to_s.rjust(4)} #{@align_len.to_s.rjust(2)} #{@mismatches.to_s.rjust(2)} #{@gaps.to_s.rjust(2)} #{@q_beg.to_s.rjust(5)} #{@q_end.to_s.rjust(5)} #{@s_beg.to_s.rjust(5)} #{@s_end.to_s.rjust(5)} #{@e_val.to_s.rjust(5)} #{@bit_score.to_s.rjust(5)} #{@reversed.to_s.rjust(5)}" res += " #{@score.to_s.rjust(5)} #{@acc.ljust(10)} #{@definition.ljust(10)} #{@q_frame.to_s.rjust(2)} #{@s_frame.to_s.rjust(2)} #{@full_subject_length.to_s.rjust(5)} #{@q_seq}.#{@s_seq}.#{@q_len}.#{@s_len}" return res end
mismatches=(v)
click to toggle source
# File lib/scbi_blast/blast_hit.rb, line 70 def mismatches=(v) @mismatches = v.to_i end
q_frame=(v)
click to toggle source
# File lib/scbi_blast/blast_hit.rb, line 99 def q_frame=(v) @q_frame = v.to_i end
q_len=(v)
click to toggle source
# File lib/scbi_blast/blast_hit.rb, line 119 def q_len=(v) @q_len = v.to_i end
q_seq=(v)
click to toggle source
# File lib/scbi_blast/blast_hit.rb, line 111 def q_seq=(v) @q_seq = v end
query_overlaps?(hit,threshold=0)
click to toggle source
# File lib/scbi_blast/blast_hit.rb, line 139 def query_overlaps?(hit,threshold=0) return ((@q_beg<=(hit.q_end+threshold)) and ((@q_end+threshold)>=hit.q_beg)) end
s_frame=(v)
click to toggle source
# File lib/scbi_blast/blast_hit.rb, line 103 def s_frame=(v) @s_frame = v.to_i end
s_len=(v)
click to toggle source
# File lib/scbi_blast/blast_hit.rb, line 115 def s_len=(v) @s_len = v.to_i end
s_seq=(v)
click to toggle source
# File lib/scbi_blast/blast_hit.rb, line 107 def s_seq=(v) @s_seq = v end
score=(v)
click to toggle source
# File lib/scbi_blast/blast_hit.rb, line 86 def score=(v) @score = v.to_f end
set_limits(q_beg,q_end,s_beg,s_end)
click to toggle source
# File lib/scbi_blast/blast_hit.rb, line 31 def set_limits(q_beg,q_end,s_beg,s_end) # puts "Set limits #{[q_beg,q_end,s_beg,s_end].join(',')}" @q_beg = q_beg.to_i-1 #blast indexes are 1 based @q_end = q_end.to_i-1 @s_beg = s_beg.to_i-1 @s_end = s_end.to_i-1 # puts "Set limits2 #{[@q_beg,@q_end,@s_beg,@s_end].join(',')}" @s_len=0 @q_len=0 @reversed = false # TODO -Reversed should be taken from q_frame and s_frame instead of s_end. In proteins comes from q_frame. In nt from s_frames. # check if reversed if @s_beg > @s_end @s_beg = s_end.to_i-1 @s_end = s_beg.to_i-1 @reversed = true end # puts "Set limits3 #{[@q_beg,@q_end,@s_beg,@s_end].join(',')}" # puts "Set limits4 #{[q_beg,q_end,s_beg,s_end].join(',')}" end
size()
click to toggle source
# File lib/scbi_blast/blast_hit.rb, line 143 def size return (@q_end-@q_beg+1) end
subject_id=(v)
click to toggle source
some accessors
# File lib/scbi_blast/blast_hit.rb, line 58 def subject_id=(v) @subject_id = v end