list index out of range Python

大学で各タンパク質の距離を測るコードを書いているのですが, 以下のコードの31行目でエラーメッセージ(list index out of range)となってしまいます。

dist_c = []
d_c = ((GLU119_c[0] - GLU124_c[0])**2 + (GLU119_c[1] - GLU124_c[1])**2 + (GLU119_c[2] - GLU124_c[2])2)(1/2)
for i in range(len(dist)):
dist_c.append(d_c)

↑これがエラーが出る部分です。
この場合どのようにコードを修正すれば, エラーメッセージが出ないようになるでしょうか。
どなたかご回答よろしくお願いします。

範囲等を修正してみたりしたのですが, なかなか解決することができませんでした。

f = open("/content/drive/MyDrive/bioinfo/3atg.pdb")
GLU119 = []
GLU124 = []
for line in f:
if line[0:4] == "ATOM":
if line[23:26] == "119" and line[13:15] == "CB":
[x, y, z] = [float(line[30:38]), float(line[38:46]), float(line[46:54])]
GLU119.append([x, y, z])
if line[23:26] == "124" and line[13:15] == "CB":
[x, y, z] = [float(line[30:38]), float(line[38:46]), float(line[46:54])]
GLU124.append([x, y, z])
f.close()

dist = []

for i in range(len(GLU119)):
d = ((GLU119[i][0] - GLU124[i][0])**2 + (GLU119[i][1] - GLU124[i][1])**2 + (GLU119[i][2] - GLU124[i][2])2)(1/2)
dist.append(d)

f = open("/content/drive/MyDrive/bioinfo/pdb3atg.pdb")

for line in f:
if line[0:4] == "ATOM":
if line[23:26] == "119" and line[13:15] == "CB":
GLU119_c = [float(line[30:38]), float(line[38:46]), float(line[46:54])]
if line[23:26] == "124" and line[13:15] == "CB":
GLU124_c = [float(line[30:38]), float(line[38:46]), float(line[46:54])]
f.close()

dist_c = []
d_c = ((GLU119_c[0] - GLU124_c[0])**2 + (GLU119_c[1] - GLU124_c[1])**2 + (GLU119_c[2] - GLU124_c[2])2)(1/2)
for i in range(len(dist)):
dist_c.append(d_c)

count = 0
if len(dist) == len(dist_c):
for i in range(len(dist)):
if dist[i] > dist_c[i]:
count += 1
print(count, "/", len(dist))

x = []
for i in range(len(dist)):
x.append(i)

plt.plot(x, dist, label="Molecule dinamycs calculation")
plt.plot(x, dist_c, "r-", label="X-ray crystallography")
plt.legend(loc='upper left')
plt.xlabel("time")
plt.ylabel("distance")
plt.title("Intermolecular distance (GLU119-GLU124)")
plt.show()

コメントを投稿

0 コメント