Advertisement
Guest User

Untitled

a guest
Mar 29th, 2017
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 1.06 KB | None | 0 0
  1.  
  2.  
  3. # Computing minimum alignments and minimum scores using a brute-force iterative approach.
  4.  
  5. # min_alignment_brute_force(seq0,seq1)
  6. #
  7. # param seq0, seq1: sequences.
  8. # result: a minimum alignment.
  9. # effects: none.
  10. #
  11. # Computes the minimum alignment by comparing all extension sequences of length seq0.length + seq1.length
  12. # with each other.
  13. #
  14. def min_alignment_brute_force(seq0, seq1)
  15.   # Initialize.
  16.   min_score = seq0.length + seq1.length + 1  # min score
  17.   eseq0 = Ext_Sequence.new(seq1.length, seq0)  # first extension sequence to test
  18.  
  19.   while eseq0.length == seq0.length + seq1.length
  20.     # Initialize.
  21.     eseq1 = Ext_Sequence.new(seq0.length, seq1)  # rist extension sequence to compare with
  22.  
  23.     while eseq1.length == seq0.length + seq1.length
  24.       # Check if new alignment is better and if so update min score and min alignment.
  25.       if eseq0.score(eseq1) < min_score
  26.         min_score = eseq0.score(eseq1)
  27.         min_align = [eseq0, eseq1]
  28.       end
  29.  
  30.       eseq1 = eseq1.next()
  31.     end
  32.  
  33.     eseq0 = eseq0.next()
  34.   end
  35.   min_align
  36. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement