首页 > 解决方案 > 在 Python 中将氨基酸转换为整数

问题描述

我正在尝试使用 Python 将氨基酸转换为整数。我想使用 MATLAB 在https://www.mathworks.com/help/bioinfo/ref/aa2int.html提供的表格。

我怎样才能进行这种转换,将每个氨基酸变成一个整数,0-25?

标签: pythonmatlabintegerbioinformaticsbiopython

解决方案


使用字典:

aa2int = {
    'A' : 1,
    'R' : 2,
    'N' : 3,
    'D' : 4,
    'C' : 5,
    'Q' : 6,
    'E' : 7,
    'G' : 8,
    'H' : 9,
    'I' : 10,
    'L' : 11,
    'K' : 12,
    'M' : 13,
    'F' : 14,
    'P' : 15,
    'S' : 16,
    'T' : 17,
    'W' : 18,
    'Y' : 19,
    'V' : 20,
    'B' : 21,
    'Z' : 22,
    'X' : 23,
    '*' : 24,
    '-' : 25,
    '?' : 0
}

x = aa2int['A']
print(x) # returns 1

或者对于序列,使用以下函数:

_aa2int = {
    'A' : 1,
    'R' : 2,
    'N' : 3,
    'D' : 4,
    'C' : 5,
    'Q' : 6,
    'E' : 7,
    'G' : 8,
    'H' : 9,
    'I' : 10,
    'L' : 11,
    'K' : 12,
    'M' : 13,
    'F' : 14,
    'P' : 15,
    'S' : 16,
    'T' : 17,
    'W' : 18,
    'Y' : 19,
    'V' : 20,
    'B' : 21,
    'Z' : 22,
    'X' : 23,
    '*' : 24,
    '-' : 25,
    '?' : 0
}

def aa2int(seq : str) -> list:
    return [_aa2int[i] for i in seq]

x = 'ABTZX'
aa2int(x) # returns [1, 21, 17, 22, 23]

推荐阅读