Difference between revisions of "830 - Haplotyper::ImputeGenotypes() (edge)"

From Genome Analysis Wiki
Jump to navigationJump to search
(Created page with "<source lang="cpp"> void Haplotyper::ImputeGenotypes(float * matrix, int marker) { posterior[0][marker] = posterior[1][marker] = posterior[2][marker] = 0.0; for (in...")
(No difference)

Revision as of 14:26, 2 October 2013

void Haplotyper::ImputeGenotypes(float * matrix, int marker)
   {
   posterior[0][marker] = posterior[1][marker] = posterior[2][marker] = 0.0;

   for (int i = 0; i < states; i++)
      if (haplotypes[i][marker])
         for (int j = 0; j <= i; j++, matrix++)
            posterior[haplotypes[j][marker] + 1][marker] += *matrix;
      else
         for (int j = 0; j <= i; j++, matrix++)
            posterior[haplotypes[j][marker]][marker] += *matrix;

   double sum = posterior[0][marker] = posterior[1][marker] = posterior[2][marker];
 
   posterior[0][marker] /= sum;
   posterior[1][marker] /= sum;
   posterior[2][marker] /= sum;
   }