From e49ddc7d761733e514c8f093a5c24260d0a56806 Mon Sep 17 00:00:00 2001 From: martinahansen Date: Thu, 12 Jan 2012 12:45:57 +0000 Subject: [PATCH] added check for duplicate seq_names to align.rb git-svn-id: http://biopieces.googlecode.com/svn/trunk@1726 74ccb610-7750-0410-82ae-013aeee3265d --- code_ruby/lib/maasha/align.rb | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/code_ruby/lib/maasha/align.rb b/code_ruby/lib/maasha/align.rb index 12cb5e0..c1f4896 100755 --- a/code_ruby/lib/maasha/align.rb +++ b/code_ruby/lib/maasha/align.rb @@ -91,12 +91,13 @@ class Align # Class method to align sequences in a list of Seq objects and # return these as a new list of Seq objects. def self.muscle(entries) - has_qual = false - result = [] - index = {} + result = [] + index = {} Open3.popen3("muscle") do |stdin, stdout, stderr| entries.each do |entry| + raise AlignError, "Duplicate sequence name: #{entry.seq_name}" if index.has_key entry.seq_name + index[entry.seq_name] = entry stdin.puts entry.to_fasta @@ -111,7 +112,7 @@ class Align fa_entry.seq.scan(/-+/) do |m| fq_entry.seq = fq_entry.seq[0 ... $`.length] + ('-' * m.length) + fq_entry.seq[$`.length .. -1] - fq_entry.qual = fq_entry.qual[0 ... $`.length] + ('@' * m.length) + fq_entry.qual[$`.length .. -1] + fq_entry.qual = fq_entry.qual[0 ... $`.length] + ('@' * m.length) + fq_entry.qual[$`.length .. -1] unless fq_entry.qual.nil? end result << fq_entry -- 2.39.5