Class: Sequence

Inherits:
Object
  • Object
show all
Defined in:
lib/full_lengther_next/classes/sequence.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(seq_name, seq_fasta, seq_qual = '') ⇒ Sequence

Returns a new instance of Sequence.



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/full_lengther_next/classes/sequence.rb', line 8

def initialize(seq_name,seq_fasta,seq_qual='')
  fasta_ori = seq_fasta.dup
  @seq_name=seq_name
  @seq_fasta = seq_fasta
  @fasta_length = fasta_ori.length
  change_degenerated_nt!
  @seq_qual = ''
  @sec_desc = ''
  @annotations=[]
  @orfs=[]
  
  @rejected=false
  @rejected_message=''
  
end

Instance Attribute Details

#fasta_lengthObject

Returns the value of attribute fasta_length.



6
7
8
# File 'lib/full_lengther_next/classes/sequence.rb', line 6

def fasta_length
  @fasta_length
end

#orfsObject

Returns the value of attribute orfs.



6
7
8
# File 'lib/full_lengther_next/classes/sequence.rb', line 6

def orfs
  @orfs
end

#sec_descObject

Returns the value of attribute sec_desc.



6
7
8
# File 'lib/full_lengther_next/classes/sequence.rb', line 6

def sec_desc
  @sec_desc
end

#seq_fastaObject

Returns the value of attribute seq_fasta.



6
7
8
# File 'lib/full_lengther_next/classes/sequence.rb', line 6

def seq_fasta
  @seq_fasta
end

#seq_nameObject

Returns the value of attribute seq_name.



6
7
8
# File 'lib/full_lengther_next/classes/sequence.rb', line 6

def seq_name
  @seq_name
end

#seq_qualObject

Returns the value of attribute seq_qual.



6
7
8
# File 'lib/full_lengther_next/classes/sequence.rb', line 6

def seq_qual
  @seq_qual
end

Instance Method Details

#add_orf(orf_seq, orf_t_start, orf_t_end, orf_frame, orf_stop_codon, orf_type) ⇒ Object



24
25
26
27
28
# File 'lib/full_lengther_next/classes/sequence.rb', line 24

def add_orf(orf_seq, orf_t_start, orf_t_end, orf_frame, orf_stop_codon, orf_type)
  orf = Orf.new(orf_seq, orf_t_start, orf_t_end, orf_frame, orf_stop_codon, orf_type)
  @orfs.push orf
  
end

#annotate(annotation_type, message = '', replace_existing = false) ⇒ Object



44
45
46
47
48
49
50
51
52
53
54
55
56
# File 'lib/full_lengther_next/classes/sequence.rb', line 44

def annotate(annotation_type, message='', replace_existing = false)

  if replace_existing
    @annotations.reverse_each do |annotation| 
      if annotation[:annotation_type]==annotation_type
        @annotations.delete(annotation)
      end
    end
  end
  
  
  @annotations.push({:annotation_type=>annotation_type,:message=>message})
end

#change_degenerated_nt!Object



58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
# File 'lib/full_lengther_next/classes/sequence.rb', line 58

def change_degenerated_nt!
  
  
  ########################################

  tranlaste_hash = {}
  tranlaste_hash['R']= [['a','g'],0]
  tranlaste_hash['W']= [['a','t'],0]
  tranlaste_hash['M']= [['a','c'],0]
  tranlaste_hash['K']= [['g','t'],0]
  tranlaste_hash['S']= [['g','c'],0]
  tranlaste_hash['Y']= [['c','t'],0]
  tranlaste_hash['H']= [['a','t','c'],0]
  tranlaste_hash['B']= [['g','t','c'],0]
  tranlaste_hash['D']= [['g','a','t'],0]
  tranlaste_hash['V']= [['g','a','c'],0]
  tranlaste_hash['N']= [['g','a','c','t'],0]

  ########################################

  fix_degenerated_fasta!(tranlaste_hash)
  
  
end

#fix_degenerated_fasta!(tranlaste_hash) ⇒ Object



83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
# File 'lib/full_lengther_next/classes/sequence.rb', line 83

def fix_degenerated_fasta!(tranlaste_hash)
  s = @seq_fasta
  res = []

  nts_of_a_line = s.split('')

  nts_of_a_line.map{
    |e|
    # puts "#{e} "

    if (e =~ /[RWMKSYHBDVN]/)

      # puts "#{e} "
      tranlaste_hash[e][1] += 1
      # puts "#{e}  #{tranlaste_hash[e][1]}"

      e = tranlaste_hash[e][0][tranlaste_hash[e][1]%tranlaste_hash[e][0].length]

      # puts "#{e}"
    end

    res.push e

  }

  @seq_fasta=res.compact.join
  # @seq_fasta='dario'
end

#get_annotations(annotation_type) ⇒ Object

:complete, :tmp_annotation, :error, :protein, :nucleotide, :alignment, :tcode



40
41
42
# File 'lib/full_lengther_next/classes/sequence.rb', line 40

def get_annotations(annotation_type)
  return @annotations.select{|a| a[:annotation_type]==annotation_type}
end

#reject!(message = '') ⇒ Object



34
35
36
37
# File 'lib/full_lengther_next/classes/sequence.rb', line 34

def reject!(message='')
  @rejected=true
  @rejected_message=message
end

#rejected?Boolean

Returns:

  • (Boolean)


30
31
32
# File 'lib/full_lengther_next/classes/sequence.rb', line 30

def rejected?
  return @rejected
end