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