830 - MarkovModel::WalkLeft(): Difference between revisions

From Genome Analysis Wiki
Jump to navigationJump to search
Created page with "<source lang="cpp"> void MarkovModel::WalkLeft(char * observed, char ** haplotypes, float ** freqs) { // Initialize likelihoods at first position for (int i = 0; i < ..."
 
No edit summary
 
Line 15: Line 15:


   if (observed[markers - 1])
   if (observed[markers - 1])
       Condition(matrix[markers - 1], haplotypes, markers - 1, observed[markers - 1], E[markers - 1], freqs[observed[markers - 1]][markers - 1]);
       Condition(matrix[markers - 1], haplotypes, markers - 1, observed[markers - 1],  
                E[markers - 1], freqs[observed[markers - 1]][markers - 1]);
   }
   }

Latest revision as of 09:24, 19 January 2017

<source lang="cpp"> void MarkovModel::WalkLeft(char * observed, char ** haplotypes, float ** freqs)

  {
  // Initialize likelihoods at first position
  for (int i = 0; i < states; i++)
     matrix[0][i] = 1.;
  // Scan along chromosome
  for (int i = 0; i < markers - 1; i++)
     {
     if (observed[i])
        Condition(matrix[i], haplotypes, i, observed[i], E[i], freqs[observed[i]][i]);
     Transpose(matrix[i], matrix[i+1], R[i]);
     }
  if (observed[markers - 1])
     Condition(matrix[markers - 1], haplotypes, markers - 1, observed[markers - 1], 
               E[markers - 1], freqs[observed[markers - 1]][markers - 1]);
  }