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 可以实现不同排列的高效映射操作。

相关推荐
独好紫罗兰2 小时前
洛谷题单3-P1217 [USACO1.5] 回文质数 Prime Palindromes-python-流程图重构
开发语言·python·算法
1alisa2 小时前
Pycharm v2024.3.4 Windows Python开发工具
ide·python·pycharm
独好紫罗兰2 小时前
洛谷题单2-P1424 小鱼的航程(改进版)-python-流程图重构
开发语言·python·算法
程序员小赵同学2 小时前
AI Agent设计模式二:Parallelization
开发语言·python·设计模式
杰克逊的日记3 小时前
CentOs系统部署DNS服务
linux·python·centos·dns
Bruce_Liuxiaowei3 小时前
基于Flask的DeepSeek~学术研究领域智能辅助系统设计与实现
后端·python·flask·deepseek
Swift社区3 小时前
轻松搞定!Mac 用户的 ESP-IDF 安装全攻略
python·嵌入式
学c真好玩3 小时前
4.3python操作ppt
开发语言·python·powerpoint
巷北夜未央4 小时前
数据结构之二叉树Python版
开发语言·数据结构·python
wapicn994 小时前
手机归属地查询Api接口,数据准确可靠
java·python·智能手机·php