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


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

    源代码:

    1. import numpy as np
    2. mpnn_alphabet = 'ACDEFGHIKLMNPQRSTVWYX'
    3. input_alphabet = 'ARNDCQEGHILKMFPSTWYV'
    4. permutation_matrix = np.zeros([20,21])
    5. for i in range(20):
    6. letter1 = input_alphabet[i]
    7. for j in range(21):
    8. letter2 = mpnn_alphabet[j]
    9. if letter1 == letter2:
    10. permutation_matrix[i,j]=1.
    11. pssm_log_odds = np_lines[:,:20] @ permutation_matrix
    12. pssm_probs = np_lines[:,20:40] @ permutation_matrix
    13. # np_lines[:,:20] 20种氨基酸(input_alphabet顺序)pssm_log_odds
    14. # 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 可以表示为:

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

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

  • 相关阅读:
    Selenium自动化中处理鼠标悬停并操作的方法
    强的离谱!阿里人用五个模块讲明白了SpringCloud,已开源!
    【递归】:原理、应用与案例解析 ,助你深入理解递归核心思想
    【Arduino+ESP32专题】案例:串口接收字符串并按指定分隔符分割
    JAVA:集合框架常见的面试题和答案
    一文带你了解Spring中的事务管理
    全是狠活!SpringBoot文档也太那个了,图文并茂详尽讲解
    MySQL高阶语句
    Excel如何设置密码保护【图文详情】
    Hive分区表数据压缩
  • 原文地址:https://blog.csdn.net/qq_27390023/article/details/143306927