lib/bio/maf/writer.rb in bio-maf-0.3.0-java vs lib/bio/maf/writer.rb in bio-maf-0.3.1
- old
+ new
@@ -57,7 +57,33 @@
lines << sprintf("i %-20s %s %s %s %s",
s.source, *s.i_data)
end
end
end
+
+ FASTA_LINE_LEN = 72
+
+ class FASTAWriter
+
+ def initialize(outf)
+ @f = outf
+ end
+
+ def write_block(block)
+ block.sequences.each do |seq|
+ write_sequence(seq) unless seq.empty?
+ end
+ end
+
+ def write_sequence(seq)
+ @f.puts(">#{seq.fasta_desc}")
+ 0.step(seq.text.size, FASTA_LINE_LEN) do |pos|
+ @f.puts(seq.text.slice(pos, FASTA_LINE_LEN))
+ end
+ end
+
+ def close
+ @f.close
+ end
+ end
end