Class: Hsp

Inherits:
Object
  • Object
show all
Defined in:
lib/gene_assembler/hsp.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

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_lenObject

Returns the value of attribute align_len.



2
3
4
# File 'lib/gene_assembler/hsp.rb', line 2

def align_len
  @align_len
end

#gapsObject

Returns the value of attribute gaps.



2
3
4
# File 'lib/gene_assembler/hsp.rb', line 2

def gaps
  @gaps
end

#identObject

Returns the value of attribute ident.



2
3
4
# File 'lib/gene_assembler/hsp.rb', line 2

def ident
  @ident
end

#q_begObject

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_endObject

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_begObject

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_endObject

Returns the value of attribute s_end.



2
3
4
# File 'lib/gene_assembler/hsp.rb', line 2

def s_end
  @s_end
end

#scoreObject

Returns the value of attribute score.



2
3
4
# File 'lib/gene_assembler/hsp.rb', line 2

def score
  @score
end

#typeObject

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_qObject

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

Returns:

  • (Boolean)


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