Class: GenomeMixTables
- Inherits:
-
Object
- Object
- GenomeMixTables
- Defined in:
- lib/copycats/genome.rb
Instance Method Summary collapse
- #build ⇒ Object
-
#fmt_trait(trait) ⇒ Object
helpers.
-
#initialize(matron, sire) ⇒ GenomeMixTables
constructor
A new instance of GenomeMixTables.
Constructor Details
#initialize(matron, sire) ⇒ GenomeMixTables
Returns a new instance of GenomeMixTables.
142 143 144 145 |
# File 'lib/copycats/genome.rb', line 142 def initialize( matron, sire ) @matron = matron @sire = sire end |
Instance Method Details
#build ⇒ Object
147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 |
# File 'lib/copycats/genome.rb', line 147 def build pos = 0 buf = "" mgenes = @matron.genes sgenes = @sire.genes TRAITS.each do |key, trait| mgene = mgenes[key] sgene = sgenes[key] next if mgene.nil? ## skip future_1, future_2, etc. buf << "#{trait[:name]} (Genes #{trait[:genes]})\n\n" buf << "|Gene |Kai |Trait (Matron)|Kai|Trait (Sire)| |\n" buf << "|------|-----|---------|-----|---------|---|\n" buf << "| #{pos} | #{mgene.d} | **#{fmt_trait(trait[:kai][mgene.d])}** | #{sgene.d} | **#{fmt_trait(trait[:kai][sgene.d])}** | d |\n"; pos+=1 buf << "| #{pos} | #{mgene.r1} | #{fmt_trait(trait[:kai][mgene.r1])} | #{sgene.r1} | #{fmt_trait(trait[:kai][sgene.r1])} | r1 |\n"; pos+=1 buf << "| #{pos} | #{mgene.r2} | #{fmt_trait(trait[:kai][mgene.r2])} | #{sgene.r2} | #{fmt_trait(trait[:kai][sgene.r2])} | r2 |\n"; pos+=1 buf << "| #{pos} | #{mgene.r3} | #{fmt_trait(trait[:kai][mgene.r3])} | #{sgene.r3} | #{fmt_trait(trait[:kai][sgene.r3])} | r3 |\n"; pos+=1 buf << "\n" if key == :body ## add legend for first entry buf << "d = dominant, r1 = 1st order recessive, r2 = 2nd order recessive, r3 = 3rd order recessive\n\n" end end buf end |
#fmt_trait(trait) ⇒ Object
helpers
180 181 182 |
# File 'lib/copycats/genome.rb', line 180 def fmt_trait( trait ) (trait.nil? || trait.empty?) ? '?' : trait end |