I 두 가지 유형의 파일 가지고 A는 : 좌표 1,206 라인 (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")
이 코드는 작동하지만. --- 단백질 잔여 물을 찾는 궁극적 인 목표는 분자 묶음 (바인딩 사이트)에 충분히 가깝습니다. 시각적 인 소프트웨어로 결과를 확인할 수 있고 코드가 필요한 것보다 잔류 물이 훨씬 적습니다. ----
어디서 문제인지 파악할 수 없습니다. 당신이 나를 도울 수? 감사합니다.
내가 마지막 질문을하지 않았다! A의 각 행에 대해 B의 가장 가까운 요소가 포함 된 1024 개의 요소 벡터를 계산할 수 있습니다. 이제 다음 단계에서 뭘 계산 하시겠습니까? 파일 A와 파일 B의 예제를 추가하면 멋질 것입니다. –
큰 데이터가 실제로 구현을 테스트하기 위해 작은 데이터를 가져서는 안된다는 의미는 아닙니다. 알고리즘이 작동한다는 것을 증명해야하는 유일한 방법은 외면적인 육안 검사입니다. – Voo