/// <summary> /// Converts quality scores from fromQualityScore type to toQualityScore type /// Ex: Phred to Solexa or Solexa to Phred /// </summary> /// <param name="fromQualityScoreType">from quality score type.</param> /// <param name="toQualityScoreType">to quality score type.</param> /// <param name="qualScores">Quality scores</param> private static int[] Convert(BaseQualityScoreType fromQualityScoreType, BaseQualityScoreType toQualityScoreType, int[] qualScores) { long count = qualScores.GetLongLength(); int[] result = new int[count]; if (fromQualityScoreType == toQualityScoreType) { Helper.Copy(qualScores, result, qualScores.GetLongLength()); } else { if (fromQualityScoreType == BaseQualityScoreType.PhredBaseQualityScore) { for (long i = 0; i < count; i++) { result[i] = ConvertPhredToSolexa(qualScores[i]); } } else { for (long i = 0; i < count; i++) { result[i] = ConvertSolexaToPhred(qualScores[i]); } } } return result; }
/// <summary> /// Converts quality score from fromQualityScore type to toQualityScore type /// Ex: Phred to Solexa or Solexa to Phred /// </summary> /// <param name="fromQualityScoreType">from quality score type.</param> /// <param name="toQualityScoreType">to quality score type.</param> /// <param name="qualScore">Quality score</param> private static int Convert(BaseQualityScoreType fromQualityScoreType, BaseQualityScoreType toQualityScoreType, int qualScore) { int result; if (fromQualityScoreType == toQualityScoreType) { result = qualScore; } else { if (fromQualityScoreType == BaseQualityScoreType.PhredBaseQualityScore) { result = ConvertPhredToSolexa(qualScore); } else { result = ConvertSolexaToPhred(qualScore); } } return result; }