module Bio::BioAlignment::Columns

The Columns module provides accessors for the column list returning Column objects

Public Instance Methods

clone_columns!() click to toggle source
# File lib/bio-alignment/columns.rb, line 43
def clone_columns!
  # clone the columns
  old_columns = @columns
  @columns = []
  old_columns.each do | old_column |
    @columns << old_column.clone
  end
end
columns() click to toggle source

Return a list of Column objects. The contents of the

columns are accessed lazily

# File lib/bio-alignment/columns.rb, line 13
def columns
  @columns ||= (0..num_columns-1).map { | col | Column.new(self,col) }
end
columns_to_s() click to toggle source
# File lib/bio-alignment/columns.rb, line 39
def columns_to_s
  columns.map { |c| (c.respond_to?(:state) ? c.state.to_s : '?') }.join
end
columns_where(&block) click to toggle source

Return an alignment which match columns. The originating sequences should have methods 'empty_copy' and '<<'

# File lib/bio-alignment/columns.rb, line 27
def columns_where &block
  seqs = []
  rows.each do | seq | 
    new_seq = seq.empty_copy
    seq.each_with_index do | e,i |
      new_seq << e if block.call(columns[i])
    end
    seqs << new_seq
  end
  Alignment.new(seqs)
end
num_columns() click to toggle source

def columns= list

@columns = list

end

# File lib/bio-alignment/columns.rb, line 21
def num_columns
  rows.first.length
end