PSI-BLAST位点特异性矩阵PSSM和ProteinMPNN中氨基酸顺序映射

先创建一个 permutation_matrix,以便将PSI-BLAST输出结果PSSM文件中 input_alphabet 中的氨基酸顺序映射到 mpnn_alphabet 中。然后使用这个矩阵将 来自PSI-BLAST的pssm_log_odds 中的数据重新排列,以匹配 mpnn_alphabet 的顺序。

源代码:

import numpy as np

mpnn_alphabet = 'ACDEFGHIKLMNPQRSTVWYX'
input_alphabet = 'ARNDCQEGHILKMFPSTWYV'

permutation_matrix = np.zeros([20,21])
for i in range(20):
    letter1 = input_alphabet[i]
    for j in range(21):
        letter2 = mpnn_alphabet[j]
        if letter1 == letter2:
            permutation_matrix[i,j]=1.


pssm_log_odds = np_lines[:,:20] @ permutation_matrix
pssm_probs = np_lines[:,20:40] @ permutation_matrix

# np_lines[:,:20]  20种氨基酸(input_alphabet顺序)pssm_log_odds
# np_lines[:,20:40]  20种氨基酸(input_alphabet顺序)观测频率

关于置换矩阵permutation_matrix

permutation_matrix 是一种矩阵,用于将数据从一种排列映射或转换为另一种排列。在生物信息学、机器学习等领域,当需要对数据或标签进行重新排序以匹配不同的序列或标签集时,它非常有用。

什么是 permutation_matrix

permutation_matrix 是一个稀疏矩阵,其中每一行和每一列通常只有一个元素为 1,其他元素为 0。该矩阵的作用是将一个向量或矩阵的元素按照预定的规则重新排列。例如,如果有一个数据集按字母表 A 排序,而模型要求数据按照字母表 B 排序,则 permutation_matrix 可以实现将 A 转换成 B 的映射。

应用场景
  1. 序列映射

    在生物信息学中,氨基酸字母表或基因数据的排列顺序可能在不同的数据源或算法中存在差异。使用 permutation_matrix 可以将这些数据源之间的排列统一,以便在同一分析中一致处理。例如,将 input_alphabet 的排列映射到 mpnn_alphabet

  2. 多分类问题中的标签映射

    在机器学习中,训练数据的标签顺序可能与模型预期的标签顺序不同。permutation_matrix 可以重新排列预测结果的顺序,使其与实际标签匹配。这在图像分类、多标签分类等领域很有用。

  3. 线性代数运算

    在矩阵乘法中,permutation_matrix 可以有效地交换矩阵的行或列。例如,可以对矩阵的行或列重新排序,或调整多维数据的轴排列顺序。

  4. 图神经网络中的节点排列

    在图神经网络中,不同的数据集可能对节点进行不同的编号。permutation_matrix 可以将不同编号系统之间的节点编号统一,从而实现一致的数据处理和训练。

例子

假设你有一个排列 A = [a, b, c],需要将其映射为 B = [c, a, b]。那么 permutation_matrix 可以表示为:

A = np.array([1, 2, 3])  # 原排列
permutation_matrix = np.array([
    [0, 1, 0],  # a 映射到位置 2
    [0, 0, 1],  # b 映射到位置 3
    [1, 0, 0],  # c 映射到位置 1
])
B = A @ permutation_matrix  # 结果 B = [3, 1, 2]

通过这种方式,permutation_matrix 可以实现不同排列的高效映射操作。

相关推荐
蓝天星空3 分钟前
Python调用open ai接口
人工智能·python
jasmine s12 分钟前
Pandas
开发语言·python
郭wes代码12 分钟前
Cmd命令大全(万字详细版)
python·算法·小程序
leaf_leaves_leaf30 分钟前
win11用一条命令给anaconda环境安装GPU版本pytorch,并检查是否为GPU版本
人工智能·pytorch·python
夜雨飘零135 分钟前
基于Pytorch实现的说话人日志(说话人分离)
人工智能·pytorch·python·声纹识别·说话人分离·说话人日志
404NooFound42 分钟前
Python轻量级NoSQL数据库TinyDB
开发语言·python·nosql
大山同学1 小时前
第三章线性判别函数(二)
线性代数·算法·机器学习
天天要nx1 小时前
D102【python 接口自动化学习】- pytest进阶之fixture用法
python·pytest
minstbe1 小时前
AI开发:使用支持向量机(SVM)进行文本情感分析训练 - Python
人工智能·python·支持向量机
落魄实习生1 小时前
AI应用-本地模型实现AI生成PPT(简易版)
python·ai·vue·ppt