Class: Hsp
- Inherits:
-
Object
- Object
- Hsp
- Defined in:
- lib/gene_assembler/hsp.rb
Instance Attribute Summary collapse
-
#align_len ⇒ Object
Returns the value of attribute align_len.
-
#gaps ⇒ Object
Returns the value of attribute gaps.
-
#ident ⇒ Object
Returns the value of attribute ident.
-
#q_beg ⇒ Object
Returns the value of attribute q_beg.
-
#q_end ⇒ Object
Returns the value of attribute q_end.
-
#s_beg ⇒ Object
Returns the value of attribute s_beg.
-
#s_end ⇒ Object
Returns the value of attribute s_end.
-
#score ⇒ Object
Returns the value of attribute score.
-
#type ⇒ Object
Returns the value of attribute type.
Instance Method Summary collapse
-
#compare(hsp) ⇒ Object
Compara hsps distintintos a nivel del subject para saber si son el mismo.
-
#compare_q(hsp) ⇒ Object
Compara hsps distintintos a nivel del query para saber si son el mismo.
-
#initialize(q_beg, q_end, s_beg, s_end, align_len, score, ident, gaps) ⇒ Hsp
constructor
A new instance of Hsp.
-
#length_q ⇒ Object
Longitud del hsp en la query.
- #modified_coordenates(add) ⇒ Object
- #overlap_with(last_hsp) ⇒ Object
-
#rev(length_hsp) ⇒ Object
Cambia coordenadas de reversas a directas.
- #rev_coord(contig_length) ⇒ Object
-
#within?(hsp, long) ⇒ Boolean
Mira si un hsp esta dentro de otro o si hay overlap parcial entre los mismos.
Constructor Details
#initialize(q_beg, q_end, s_beg, s_end, align_len, score, ident, gaps) ⇒ Hsp
Returns a new instance of Hsp.
3 4 5 6 7 8 9 10 11 12 13 14 |
# 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 |
Instance Attribute Details
#align_len ⇒ Object
Returns the value of attribute align_len.
2 3 4 |
# File 'lib/gene_assembler/hsp.rb', line 2 def align_len @align_len end |
#gaps ⇒ Object
Returns the value of attribute gaps.
2 3 4 |
# File 'lib/gene_assembler/hsp.rb', line 2 def gaps @gaps end |
#ident ⇒ Object
Returns the value of attribute ident.
2 3 4 |
# File 'lib/gene_assembler/hsp.rb', line 2 def ident @ident end |
#q_beg ⇒ Object
Returns the value of attribute q_beg.
2 3 4 |
# File 'lib/gene_assembler/hsp.rb', line 2 def q_beg @q_beg end |
#q_end ⇒ Object
Returns the value of attribute q_end.
2 3 4 |
# File 'lib/gene_assembler/hsp.rb', line 2 def q_end @q_end end |
#s_beg ⇒ Object
Returns the value of attribute s_beg.
2 3 4 |
# File 'lib/gene_assembler/hsp.rb', line 2 def s_beg @s_beg end |
#s_end ⇒ Object
Returns the value of attribute s_end.
2 3 4 |
# File 'lib/gene_assembler/hsp.rb', line 2 def s_end @s_end end |
#score ⇒ Object
Returns the value of attribute score.
2 3 4 |
# File 'lib/gene_assembler/hsp.rb', line 2 def score @score end |
#type ⇒ Object
Returns the value of attribute type.
2 3 4 |
# File 'lib/gene_assembler/hsp.rb', line 2 def type @type end |
Instance Method Details
#compare(hsp) ⇒ Object
Compara hsps distintintos a nivel del subject para saber si son el mismo
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
# 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) ⇒ Object
Compara hsps distintintos a nivel del query para saber si son el mismo
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
# 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 ⇒ Object
Longitud del hsp en la query
49 50 51 52 |
# 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) ⇒ Object
78 79 80 81 |
# File 'lib/gene_assembler/hsp.rb', line 78 def modified_coordenates(add) @q_beg+=add @q_end+=add end |
#overlap_with(last_hsp) ⇒ Object
91 92 93 94 95 96 97 98 99 |
# 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) ⇒ Object
Cambia coordenadas de reversas a directas
54 55 56 57 58 |
# 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) ⇒ Object
83 84 85 86 87 88 89 |
# 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) ⇒ Boolean
Mira si un hsp esta dentro de otro o si hay overlap parcial entre los mismos
60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 |
# 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 |