我想为一系列 DNA 序列生成一个热编码矩阵。我尝试通过以下链接解决我的问题: 如何为 DNA 序列生成一种热编码?但有些解决方案仅针对单个 DNA 序列给出,而不是针对一系列 DNA 序列。
例如
def one_hot_encode(seq):
mapping = dict(zip("ACGT", range(4)))
seq2 = [mapping[i] for i in seq]
return np.eye(4)[seq2]
one_hot_encode("AACGT")
Run Code Online (Sandbox Code Playgroud)
在上面给出的代码中,如果我运行one_hot_encode("AACGT","GGTAC","CGTAC")它将失败,我也想生成矩阵作为输出。
目前,我正在 R 中工作,下面是我在 R 数据框中的 DNA 序列(单列文件)
ACTTTA
TTGATG
CTTACG
GTACGT
Run Code Online (Sandbox Code Playgroud)
预期产出
1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 1 1 0 0 0
0 0 0 1 0 0 0 1 0 0 1 0 1 …Run Code Online (Sandbox Code Playgroud)