class Hsp
Attributes
align_len[RW]
gaps[RW]
ident[RW]
q_beg[RW]
q_end[RW]
s_beg[RW]
s_end[RW]
score[RW]
type[RW]
Public Class Methods
new(q_beg, q_end, s_beg, s_end, align_len, score, ident, gaps)
click to toggle source
# File lib/gene_assembler/hsp.rb, line 3 def initialize (q_beg, q_end, s_beg, s_end, align_len, score, ident, gaps) @q_beg=q_beg #Inicio en query @q_end=q_end #Fin en query @s_beg=s_beg #Inicio en subject @s_end=s_end #Fin en subject @align_len=align_len #TamaƱo de la secuencia alineada #@bit_score=bit_score @score=score @ident=ident @gaps=gaps @type=nil end
Public Instance Methods
compare(hsp)
click to toggle source
# File lib/gene_assembler/hsp.rb, line 16 def compare(hsp) #Compara hsps distintintos a nivel del subject para saber si son el mismo coverage=0 if self.s_beg==hsp.s_end && self.s_end==hsp.s_end coverage=1 elsif self.s_beg>=hsp.s_beg && self.s_end<hsp.s_end #Caso de q el self este dentro de hsp coverage=1 elsif self.s_beg<=hsp.s_beg && self.s_end>hsp.s_beg && (self.s_end-hsp.s_beg).abs>1 ext=self.s_end-hsp.s_beg*1.00 # El producto obliga a usar la clase float para impedir q trunque el resultado coverage=ext/(self.s_end-self.s_beg) elsif self.s_beg<hsp.s_end && self.s_end>=hsp.s_end && (self.s_beg-hsp.s_end).abs>1 #Ultima condicion impide q de como mismo exon el compartir un aa q realmente esta partido entre 2 exones ext=hsp.s_end-self.s_beg*1.00 coverage=ext/(self.s_end-self.s_beg) end return coverage end
compare_q(hsp)
click to toggle source
# File lib/gene_assembler/hsp.rb, line 32 def compare_q(hsp) #Compara hsps distintintos a nivel del query para saber si son el mismo coverage=0 if self.q_beg==hsp.q_end && self.q_end==hsp.q_end coverage=1 elsif self.q_beg>=hsp.q_beg && self.q_end<hsp.q_end #Caso de q el self este dentro de hsp coverage=1 elsif self.q_beg<=hsp.q_beg && self.q_end>hsp.q_beg && (self.q_end-hsp.q_beg).abs>1 ext=self.q_end-hsp.q_beg*1.00 # El producto obliga a usar la clase float para impedir q trunque el resultado coverage=ext/(self.q_end-self.q_beg) elsif self.q_beg<hsp.q_end && self.q_end>=hsp.q_end && (self.q_beg-hsp.q_end).abs>1 #Ultima condicion impide q de como mismo exon el compartir un aa q realmente esta partido entre 2 exones ext=hsp.q_end-self.q_beg*1.00 coverage=ext/(self.q_end-self.q_beg) end return coverage end
length_q()
click to toggle source
# File lib/gene_assembler/hsp.rb, line 49 def length_q #Longitud del hsp en la query length=@q_end-@q_beg return length end
modified_coordenates(add)
click to toggle source
# File lib/gene_assembler/hsp.rb, line 78 def modified_coordenates(add) @q_beg+=add @q_end+=add end
overlap_with(last_hsp)
click to toggle source
# File lib/gene_assembler/hsp.rb, line 91 def overlap_with(last_hsp) overlap=0 diference=self.s_beg-last_hsp.s_end #puts "#{self.s_beg} - #{last_hsp.s_end} = #{diference}" if diference<0 overlap=diference end return overlap end
rev(length_hsp)
click to toggle source
# File lib/gene_assembler/hsp.rb, line 54 def rev(length_hsp) # Cambia coordenadas de reversas a directas @q_beg=length_hsp-@q_beg #Inicio en query @q_end=length_hsp-@q_end #Fin en query @reversed=FALSE end
rev_coord(contig_length)
click to toggle source
# File lib/gene_assembler/hsp.rb, line 83 def rev_coord(contig_length) puts '---------------------------------' puts @q_beg.to_s+' '+@q_end.to_s @q_beg=contig_length-@q_beg+1 @q_end=contig_length-@q_end+1 puts @q_beg.to_s+' '+@q_end.to_s end
within?(hsp,long)
click to toggle source
# File lib/gene_assembler/hsp.rb, line 60 def within?(hsp,long) #Mira si un hsp esta dentro de otro o si hay overlap parcial entre los mismos over=0 if self.q_beg<=hsp.q_beg && self.q_end>=hsp.q_end over=1 end if self.s_beg<=hsp.s_beg && self.s_end>=hsp.s_end over=1 end if over == 0 self_coverage=(self.s_end-self.s_beg)*1.00/long hsp_coverage=(hsp.s_end-hsp.s_beg)*1.00/long if hsp_coverage>(1-self_coverage) #Si el coverage del hsp en mayor que el resto que deja el self, se da como overlap over=1 end end return over end