Sha256: b91e8379b746e20026e686a3ea445a3147edd47a30423188261c8fac58f9111d

Contents?: true

Size: 1.29 KB

Versions: 11

Compression:

Stored size: 1.29 KB

Contents


class SequenceGroup
  
  attr_accessor :stats,:output_text,:output_files
  
  
  def initialize(seqs)
    @stats={}
    @seqs=seqs
    @output_text={}
    @output_files={}
    
  end
  
  
  def push(seq)
    @seqs.push seq
  end
  
  def delete(seq)
    @seqs.delete(seq)
  end
  
  def empty?
    return @seqs.empty?
  end
  
  
  def each
      @seqs.each do |seq|
        yield seq
      end
  end
  
  def each_slice(n)
      @seqs.each_slice(n) do |seqs|
        yield seqs
      end
  end
  

  def each_with_index
      @seqs.each_with_index do |seq,i|
        yield seq,i
      end
  end

  
  def reverse_each
      @seqs.reverse_each do |seq|
        yield seq
      end
  end
  
  def add(array)
    @seqs = @seqs + array

    # sort by tuple_id and order in tuple
    @seqs.sort! do |a,b|
      comp = (a.tuple_id <=> b.tuple_id)
      comp.zero? ? (a.order_in_tuple <=> b.order_in_tuple) : comp
    end

    # print
    # @seqs.each do |s|
    #   puts "TID:#{s.tuple_id}, OIT: #{s.order_in_tuple}"
    # end
    
  end
  
  def count
    return @seqs.count
  end
  
  def include?(s)
    return @seqs.include?(s)
  end
  
  def remove_all_seqs
    @seqs=[]
  end
  
  # def job_identifier
  #     return @seqs[0].seq_name
  # end
  
  def inspect
    return "Group with #{@seqs.count} sequences"
  end
  
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
seqtrimnext-2.0.68 lib/seqtrimnext/classes/sequence_group.rb
seqtrimnext-2.0.66 lib/seqtrimnext/classes/sequence_group.rb
seqtrimnext-2.0.62 lib/seqtrimnext/classes/sequence_group.rb
seqtrimnext-2.0.61 lib/seqtrimnext/classes/sequence_group.rb
seqtrimnext-2.0.60 lib/seqtrimnext/classes/sequence_group.rb
seqtrimnext-2.0.59 lib/seqtrimnext/classes/sequence_group.rb
seqtrimnext-2.0.57 lib/seqtrimnext/classes/sequence_group.rb
seqtrimnext-2.0.56 lib/seqtrimnext/classes/sequence_group.rb
seqtrimnext-2.0.55 lib/seqtrimnext/classes/sequence_group.rb
seqtrimnext-2.0.54 lib/seqtrimnext/classes/sequence_group.rb
seqtrimnext-2.0.52 lib/seqtrimnext/classes/sequence_group.rb