class Bio::MAF::Writer
Attributes
f[R]
path[R]
Public Class Methods
new(fspec)
click to toggle source
# File lib/bio/maf/writer.rb, line 6 def initialize(fspec) if fspec.respond_to? :write @f = fspec if fspec.respond_to? :path @path = fspec.path end else @path = fspec @f = File.open(fspec, 'w') end end
Public Instance Methods
flatten_vars(vars)
click to toggle source
# File lib/bio/maf/writer.rb, line 18 def flatten_vars(vars) vars.to_a.collect {|k, v| "#{k}=#{v}"}.join(" ") end
write_block(block)
click to toggle source
# File lib/bio/maf/writer.rb, line 34 def write_block(block) lines = ["a #{flatten_vars(block.vars)}"] block.sequences.each do |seq| write_seq(seq, lines) end lines << "\n" f.write(lines.join("\n")) end
write_blocks(blocks)
click to toggle source
# File lib/bio/maf/writer.rb, line 27 def write_blocks(blocks) blocks.each do |block| write_block(block) end f.flush end
write_header(header)
click to toggle source
# File lib/bio/maf/writer.rb, line 22 def write_header(header) f.write "##maf #{flatten_vars(header.vars)}\n" f.write "##{header.alignment_params}\n" if header.alignment_params end
write_seq(s, lines)
click to toggle source
# File lib/bio/maf/writer.rb, line 43 def write_seq(s, lines) lines << sprintf("%s %-20s %12d %2d %s %9d %s", s.empty? ? "e" : "s", s.source, s.start, s.size, s.strand, s.src_size, s.empty? ? s.status : s.text) if s.quality lines << sprintf("q %-20s %s", s.source, s.quality) end if s.i_data lines << sprintf("i %-20s %s %s %s %s", s.source, *s.i_data) end end