Module: PasvLib::Utils

Defined in:
lib/pasv_lib.rb

Instance Method Summary collapse

Instance Method Details

#get_oligo(gapped_query_seq, key_posns, pos_to_gapped_pos) ⇒ Object

Note:

The key posns are 1-based and non-gapped. The query seq is gapped.



118
119
120
121
122
123
124
125
126
127
128
# File 'lib/pasv_lib.rb', line 118

def get_oligo gapped_query_seq, key_posns, pos_to_gapped_pos
  gapped_key_posns = key_posns.map do |pos|
    pos_to_gapped_pos[pos]
  end

  gapped_key_posns.map do |pos|
    idx = pos - 1

    gapped_query_seq[idx]
  end.join.upcase
end

#get_type(oligo, spans) ⇒ Object



130
131
132
133
134
135
136
# File 'lib/pasv_lib.rb', line 130

def get_type oligo, spans
  if spans == "NA"
    oligo
  else
    "#{oligo}_#{spans}"
  end
end

#pos_to_gapped_pos(gapped_key_seq) ⇒ Object

Note:

Returns a hash that accepts and returns 1-based coordinates.



101
102
103
104
105
106
107
108
109
110
111
112
113
114
# File 'lib/pasv_lib.rb', line 101

def pos_to_gapped_pos gapped_key_seq
  pos_to_gapped_pos = {}
  nongap_idx = 0

  gapped_key_seq.each_char.with_index do |char, gapped_idx|
    unless char == "-"
      pos_to_gapped_pos[nongap_idx + 1] = (gapped_idx + 1)

      nongap_idx += 1
    end
  end

  pos_to_gapped_pos
end

#spans_end(query_seq, gapped_end) ⇒ Object

Note:

Takes 1-based coordinates.



96
97
98
# File 'lib/pasv_lib.rb', line 96

def spans_end query_seq, gapped_end
  !query_seq[gapped_end-1..query_seq.length-1].tr("-", "").empty?
end

#spans_start(query_seq, gapped_start) ⇒ Object

Note:

Takes 1-based coordinates.



91
92
93
# File 'lib/pasv_lib.rb', line 91

def spans_start query_seq, gapped_start
  !query_seq[0..gapped_start-1].tr("-", "").empty?
end