wurmlab/GeneValidator

View on GitHub
lib/genevalidator/query.rb

Summary

Maintainability
A
0 mins
Test Coverage
A
100%
module GeneValidator
  # This is a class for the storing data on each sequence
  class Query
    attr_accessor :type # protein | mRNA
    attr_accessor :definition
    attr_accessor :identifier
    attr_accessor :species
    attr_accessor :accession_no
    attr_accessor :length_protein
    attr_accessor :reading_frame
    attr_accessor :hsp_list # array of Hsp objects

    attr_accessor :raw_sequence
    attr_accessor :protein_translation # used only for nucleotides
    attr_accessor :nucleotide_rf # used only for nucleotides

    def initialize
      @hsp_list            = []
      @raw_sequence        = nil
      @protein_translation = nil
      @nucleotide_rf       = nil
    end

    def protein_translation
      @type == :protein ? raw_sequence : @protein_translation
    end

    ##
    # Initializes the corresponding attribute of the sequence
    # with respect to the column name of the tabular blast output
    def init_tabular_attribute(hash)
      @identifier     = hash['sseqid'] if hash['sseqid']
      @accession_no   = hash['sacc'] if hash['sacc']
      @length_protein = hash['slen'].to_i if hash['slen']
    end
  end
end