830 - Haplotyper::ScoreLeftConditional()
From Genome Analysis Wiki
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]; } } }