Class: Ensembl::Variation::CompressedGenotypeVar

Inherits:
Connection
  • Object
show all
Defined in:
lib/ensembl/variation/activerecord.rb

Instance Method Summary collapse

Methods included from TableNameOverrides

#table_name

Instance Method Details

#genotype_code_idsObject



93
94
95
# File 'lib/ensembl/variation/activerecord.rb', line 93

def genotype_code_ids
  unpack_genotypes.select.each_with_index{|str,i| i.odd?}
end

#individual_genotypesObject



70
71
72
73
74
75
76
77
78
79
80
81
82
83
# File 'lib/ensembl/variation/activerecord.rb', line 70

def individual_genotypes
  nil if genotypes.nil?

  # To decrease number of DB queries needed
  # FIXME: Should be in GenotypeCodes class or should use caching
  allele_codes=GenotypeCode.eager_load(:allele_code).where(:genotype_code_id=>genotype_code_ids.uniq).inject({}){|hsh,gc|hsh[gc.genotype_code_id]=gc.allele_code.allele;hsh}

      #genotype_code_ids.uniq.inject({}) { |hsh, gc_id | hsh[gc_id]=GenotypeCode.find(gc_id).allele_code.allele;hsh  }

  @igs||=unpacked_genotypes.map{|s|
    IndividualGenotype.new({ individual_id:  s[0],
                             genotype_code_id:s[1],
                             allele: allele_codes[s[1]] })}
end

#individual_idsObject



89
90
91
# File 'lib/ensembl/variation/activerecord.rb', line 89

def individual_ids
  unpack_genotypes.select.each_with_index{|str,i| i.even?}
end

#unpacked_genotypesObject



85
86
87
# File 'lib/ensembl/variation/activerecord.rb', line 85

def unpacked_genotypes
  unpack_genotypes.each_slice(2).map{|sl| sl }
end