用Python中的理化性质分数计算20对氨基酸之间的欧氏距离,输出为矩阵

2024-10-04 01:25:31 发布

您现在位置:Python中文网/ 问答频道 /正文

有人能帮我吗?在

我有20种氨基酸(AAs)和7种理化性质(RADA880102;FAUJ880103;ZIMJ680104;GRAR740102;CRAJ730103;BURA740101;CHAM820102)

输入是制表符分隔的文本文件,如下所示:

 Amino-acids    A   R   N   D   C   Q   E   G   H   I   L   K   M   F   P   S   T   W   Y   V
RADA880102  0.52    -1.32   -0.01   0   0   -0.07   -0.79   0   0.95    2.04    1.76    0.08    1.32    2.09    0   0.04    0.27    2.51    1.63    1.18
FAUJ880103  1   6.13    2.95    2.78    2.43    3.95    3.78    0   4.66    4   4   4.77    4.43    5.89    2.72    1.6 2.6 8.08    6.47    3
ZIMJ680104  6   10.76   5.41    2.77    5.05    5.65    3.22    5.97    7.59    6.02    5.98    9.74    5.74    5.48    6.3 5.68    5.66    5.89    5.66    5.96
GRAR740102  8.1 10.5    11.6    13  5.5 10.5    12.3    9   10.4    5.2 4.9 11.3    5.7 5.2 8   9.2 8.6 5.4 6.2 5.9
CRAJ730103  0.6 0.79    1.42    1.24    1.29    0.92    0.64    1.38    0.95    0.67    0.7 1.1 0.67    1.05    1.47    1.26    1.05    1.23    1.35    0.48
BURA740101  0.486   0.262   0.193   0.288   0.2 0.418   0.538   0.12    0.4 0.37    0.42    0.402   0.417   0.318   0.208   0.2 0.272   0.462   0.161   0.379
CHAM820102  -0.368  -1.03   0   2.06    4.53    0.731   1.77    -0.525  0   0.791   1.07    0   0.656   1.06    -2.24   -0.524  0   1.6 4.91    0.401

我试图用Python编写一个脚本,使用以下公式计算每对AAs的欧几里得距离

^{2}$

式中(xa,ya,za,ma,na,pa,ra)表示原AA的七种理化性质之一,(xb,yb,zb,mb,nb,pb,rb)分别表示取代AA的七种物理化学性质中的一种。在

例如,两个AAs A和R之间的欧几里得距离如下所示
dist=sqrt[(0.52-(-1.32))^2+(1-6.13)^2+(6-10.76)^2+(8.1-10.5)^2+(0.6-0.79)^2+(0.486-0.262)^2+(-0.368-(-1.03))^2]]

原始公式可以在第2页的这个链接中找到 “http://www.ncbi.nlm.nih.gov/pmc/articles/PMC3589708/pdf/fgene-04-00021.pdf

我希望我的脚本返回一个欧几里得距离矩阵作为输出值380

A   R   N   D   C   Q   E   G   H   I   L   K   M   F   P   S   T   W   Y   V

A
R
N
D
C

E
G


L
K
M
F
P
S
T
W

谢谢你的帮助


Tags: 脚本距离pdf制表符公式aa性质aas
1条回答
网友
1楼 · 发布于 2024-10-04 01:25:31

根据你的评论,你被卡住的部分是创建一个从函数返回的矩阵

def zeros_matrix(width,height):
    return [[0 for _ in range(width)] for _ in range(height)]

会返回一个全零的矩阵,因为我怀疑这是你唯一卡住的地方

打开文件并将其读入矩阵

^{pr2}$

计算两行之间的距离

import math
def row_dist(row1,row2):
   dist = #some calculation I dont really understand
   return dist

print sorted(matrix,key=row_dist)

相关问题 更多 >