Sha256: 2de85ac6f135622e78a46cba1d0c2673100d1d0f3ecd398e66c2e033f18e7e63

Contents?: true

Size: 1.8 KB

Versions: 1

Compression:

Stored size: 1.8 KB

Contents

#require 'bio-assembly/contig/ace'

module Bio
  class Assembly
    
    class Contig 
      attr_accessor :seq, :orientation, :quality, :to, :from, :name, :reads
      alias consensus_seq seq

      def initialize(str="")
        @reads = Hash.new
        @seq = Bio::Sequence::NA.new(str)
        # counter for Reads
        @rds_parsed = 0
      end

      def find_read_by_name(name)
        @reads[name]
      end
      
      def find_reads_in_range(clear_range_from, clear_range_to)
        reads_in_range = Array.new
        each_read do |read|
          
          # Read starts in region
          if read.from+read.clear_range_from > clear_range_from and read.from+read.clear_range_from < clear_range_to
             reads_in_range.push read
          # Read ends in region
          elsif read.to+read.clear_range_to < clear_range_to and read.to+read.clear_range_to > clear_range_from
             reads_in_range.push read
          # Read encompasses region
          elsif read.from+read.clear_range_from < clear_range_from and read.to+read.clear_range_to > clear_range_to
             reads_in_range.push read
          end
          
        end
        reads_in_range;
      end
      
      def add_read(read)
        # TODO do some checks for pos location
        @reads[read.name] = read
      end
  
      def each_read
        @reads.each_value { |read| yield read }
      end
      
      def num_reads
        @reads.size
      end
      
      def num_bases
        seq.length
      end
      
      def seq=(str)
        @seq = Bio::Sequence::NA.new(str)
      end
      
      def num_base_segments
        num_base_sequences = 0
        each_read do |read|
          num_base_sequences += read.base_sequences.size unless read.base_sequences.nil?
        end
        num_base_sequences
      end

    end
    
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
bio-assembly-0.1.0 lib/bio-assembly/contig.rb