您将4个不同“数字”的字符串解释为数字,因此以4为基数.如果您有一串实际数字,范围为0-3,则可以让int()真正快速地生成一个整数.
def seq_to_int(seq, _m=str.maketrans...(‘ACGT’, ‘0123’)):
return int(seq.translate(_m), 4)
上面的函数使用str.translate()用匹配的数字替换4个字符中的每个字符(我使用静态str.maketrans...() function创建转换表).然后将所得的数字字符串解释为以4为底的整数....请注意,这将生成一个整数对象,而不是零和一个字符的二进制字符串:
>>> seq_to_int(‘TGTGAGAAGCACCATAAAAGGCGTTGTG’)
67026852874722286
>>>...8字节整数表示形式.在上面的输出示例中,我使用format()字符串分别将该整数值格式化为十六进制和二进制字符串,然后将这些表示形式零填充到64位数字的正确位数.