RogersDNA evaluation methodology
by John L Olson, 15 December 2008
The following equation is used on this site for comparing DNA samples against each other and against modal templates. |
My PHP Code for the above equation: $size = 0; $count = 0; $score = 0; for ( $marker = 1; $marker <= $num_dna_col; $marker += 1 ) { $temp = $ref[$marker][$j]; // 2D array of Modal alleles to compare against $temp0 = $dna_cols[$marker]; // Array of allele names $temp0 = $myrow[$temp0]; // Data array from database read if($temp) // Do we have an allele in the Modal template? if($temp0) // Does the current participant have a corresponding allele? { $size2 += 1; // Increment number of available alleles to compare if($temp) // Does the Modal template have a corresponding allele? { $size += 1; if($temp == $temp0) $count += 1; // Increment number of matches else { $temp1 = ($temp - $temp0); if ($temp1 < 0 ) $temp1 = -$temp1; $temp2 = $mutate_coef[$marker]; // mutation coefficients $temp2 = log($temp2); $temp1 = $temp1 * $temp2; $score = $score + $temp1; } } } } if ($size) // Avoid division by zero { $score = $score / $size; $score = exp($score); } else { $score = 0; } $score = (int) (( $score * 1000. ) + 0.5); |