tranRatio method
Returns the transition/transversion ratio between this sequence and oSeq
.
Implementation
double tranRatio({required DNA oSeq}) {
if (this._len != oSeq._len) {
Errors.unequalSeqLens(func: 'tranRatio');
}
int transitionCount = 0;
int transversionCount = 0;
this.seq.split('').asMap().forEach((idx, nuc) {
if (nuc != oSeq.seq[idx]) {
// 'A' + 'T' => 'AT'.
if (dnaTransitions.contains(nuc + oSeq.seq[idx])) {
transitionCount++;
} else if (dnaTransversions.contains(nuc + oSeq.seq[idx])) {
transversionCount++;
}
}
});
// Cant divide by 0 (inf).
final double result = transversionCount == 0 ? -1 : (transitionCount / transversionCount);
return double.parse(result.toStringAsFixed(2));
}