830 - Haplotyper::ScoreLeftConditional()

From Genome Analysis Wiki
Revision as of 15:01, 13 September 2013 by Goncalo (talk | contribs) (Created page with "void Haplotyper::ScoreLeftConditional() { ResetMemoryPool(); GetMemoryBlock(0); SetupPrior(leftMatrices[0]); ConditionOnData(leftMatrices[0], 0, current_genoty...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigationJump to search

void Haplotyper::ScoreLeftConditional()

  {
  ResetMemoryPool();
  GetMemoryBlock(0);
  SetupPrior(leftMatrices[0]);
  ConditionOnData(leftMatrices[0], 0, current_genotypes[0]);
  double theta = 0.0;
  float *from = leftMatrices[0];
  for (int i = 1; i < markers; i++)
     {
     // Cumulative recombination fraction allows us to skip uninformative positions
     theta = theta + thetas[i - 1] - theta * thetas[i - 1];
     // Skip over uninformative positions to save time
     if (current_genotypes[i] != GENOTYPE_MISSING || i == markers - 1)
        {
        GetMemoryBlock(i);
        Transpose(from, leftMatrices[i], theta);
        ConditionOnData(leftMatrices[i], i, current_genotypes[i]);
        theta = 0;
        from = leftMatrices[i];
        }
     }
  }