【发布时间】:2016-09-07 20:31:33
【问题描述】:
我有两种类型的文件: A:包含1206行坐标(xyz)——一条蛋白质链 B:包含 114 行坐标 (xyz) - 一堆分子
我想做以下事情: 对于 A 的每一行计算与 B 的每一行的距离。所以我为 A 的每一行得到 114 个距离值。但我不需要所有这些,只需要 A 的每一行的最短距离。所以所需的输出: 一个文件有 1206 行,每一行包含一个值:最短距离。 保持文件 A 的原始顺序很重要。
我的代码:
import os
import sys
import numpy as np
outdir = r'E:\MTA\aminosavak_tavolsag\tavolsagok'
for dirname, dirnames, filenames in os.walk(r'E:\MTA\aminosavak_tavolsag\receptorok'):
for path, dirs, files in os.walk(r'E:\MTA\aminosavak_tavolsag\kotohely'):
for filename in filenames:
for fileok in files:
if filename == fileok:
with open(os.path.join(outdir, filename) , "a+") as f:
data_ligand = np.loadtxt(os.path.join(path, fileok))
data_rec = np.loadtxt(os.path.join(dirname, filename))
for i in data_rec:
for j in data_ligand:
dist = np.linalg.norm(i - j)
dist_float = dist.tolist()
dist_str = str(dist_float)
dist_list = dist_str.split()
for szamok in dist_list:
for x in range(len(dist_list)):
minimum = min([float(x) for x in dist_list])
f.write(str(minimum) + "\r\n")
此代码有效,但仅部分有效。 --- 我的最终目标是找到离这串分子(结合位点)足够近的蛋白质残基。我可以使用可视化软件检查我的结果,并且我的代码发现的残留物比它应该的要少得多。 ----
我就是不知道问题出在哪里。你可以帮帮我吗? 谢谢!
【问题讨论】:
-
我没有得到最后一个问题!您可以计算 1024 个元素的向量,其中包含 A 中每一行的 B 中最近的元素。现在,在下一步中,您要计算什么?我想,如果你添加一个文件 A 和文件 B 的示例会很好。
-
大数据并不意味着您不应该使用小数据来实际测试您的实现。如果你唯一需要证明你的算法有效的事情就是一些肤浅的视觉检查,那么没有人会认真对待。
标签: python coordinates distance bioinformatics