docs: def getRelativeQualityScore(self, i, score_type="ILLUMINA_PHRED_PLUS_33"):
      """
      Get the realtive quality score (i.e. the phred quality score) for a given
      base.
  
      :raise: NGSReadError if the index is less than 0 or more than l-1 where l
              is the length of the read; NGSReadError if the encoded quality
              score at the given location is outside the expected range;
              NGSReadError if the read has no quality string; NGSReadError if
              sepficied encoding scheme is unknown.
      """
      # error out if no quality string, or index is out of range
      if self.seq_qual is None:
        raise NGSReadError("Error finding realtive quality for base call at " +
                           "location " + str(i) + " in read " + self.name +
                           "; read has no quality string")
      if i < 0 or i > self.seq_qual:
        raise NGSReadError("Error finding relative quality for base call at " +
                           "location " + str(i) + " in read " + self.name +
                           "; outside of range for read with quality score " +
                           "string of length " + str(len(self.seq_qual)))
  
      val = self.seq_qual[i]
      if score_type == "ILLUMINA_PHRED_PLUS_33":
        return ord(val) - self.LOWSET_SCORE_ILL_18_PHRD_33
      elif score_type == "ILLUMINA_PHRED_PLUS_64":
        return ord(val) - self.LOWSET_SCORE
      else:
        raise NGSReadError("Unknown score type: " + score_type)