tranRatio method

double tranRatio({
  1. required DNA oSeq,
})

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));
}