def load(self, handler): # type: (BinaryIO) -> None for s in handler.readlines(): s = s.split() if len(s) == 0: continue if s[0] == "mat": self.sMatch[basic.letterToIndex( s[1])] = -math.log10(float(s[2])) elif s[0] == "mis": self.sMM[basic.letterToIndex(s[1][0])][basic.letterToIndex( s[1][-1])] = -math.log10(float(s[2])) elif s[0] == "del": self.sDel[basic.letterToIndex(s[1])] = -math.log10(float(s[2])) self.sHomo[basic.letterToIndex( s[1])] = -math.log10(float(s[2])) / 3 elif s[0] == "ins": self.sIns[basic.letterToIndex(s[1])] = -math.log10(float(s[2]))
def scoreIns(self, char): return self.sIns[basic.letterToIndex(char)]
def scoreMatch(self, char): return self.sMatch[basic.letterToIndex(char)]
def scoreHomo(self, char): return self.sHomo[basic.letterToIndex(char)]
def scoreMM(self, char1, char2): return self.sMM[basic.letterToIndex(char1)][basic.letterToIndex(char2)]
def scoreDel(self, char): return self.sDel[basic.letterToIndex(char)]