entries.each do |entry|
raise AlignError, "Duplicate sequence name: #{entry.seq_name}" if index.has_key? entry.seq_name
- index[entry.seq_name] = entry
+ index[entry.seq_name] = entry.dup
stdin.puts entry.to_fasta
end
if self.members != 2
raise AlignError "Bad number of members for similarity calculation: #{self.members}"
end
-
+
na1 = NArray.to_na(@entries[0].seq.upcase, "byte")
na2 = NArray.to_na(@entries[1].seq.upcase, "byte")
shared = (na1 - na2).count_false
total = (@entries[0].length < @entries[1].length) ? @entries[0].length : @entries[1].length
- identity = (shared.to_f / total).round(2)
+ identity = shared.to_f / total
identity
end
output
end
+ # Method for iterating each of the aligned sequences.
+ def each
+ if block_given?
+ @entries.each { |entry| yield entry }
+ else
+ return @entries
+ end
+ end
+
private
class Consensus