+ # Method to parse a FASTA file with Ustar alignments and for each alignment
+ # yield an Align object.
+ def each_alignment
+ old_cluster = 0
+ entries = []
+
+ Fasta.open(@outfile, "r") do |ios|
+ ios.each do |entry|
+ entry.seq.tr!('.', '-') # Replace . with - in Ustar alignments.
+ cluster, identity, name = entry.seq_name.split('|')
+ cluster = cluster.to_i
+
+ if cluster == old_cluster
+ entries << entry
+ else
+ fix_alignment(entries)
+
+ yield Align.new(entries)
+
+ old_cluster = cluster
+ entries = []
+ entries << entry
+ end
+ end
+
+ yield Align.new(entries) unless entries.empty?
+ end
+ end
+