import glob list1=glob.glob("*.ent") print(list1) for name in list1: def consecutive_groups(iterable): """Yield range of consecutive numbers.""" for group in mit.consecutive_groups(iterable): group = list(group) if len(group) == 1: yield group[0] else: yield group[0], group[-1] path = name print("--------",name,"--------") serial_numbers_A = [] serial_numbers_B = [] with open(path) as f: lines = f.readlines() lines_strip = [line.strip() for line in lines] #A側のCAの抽出----------------------------- for A_and in lines: A_and=A_and.split() if A_and[0] == 'ATOM' and A_and[2] == 'CA' and A_and[4] == 'A': serial_numbers_A.append(int(A_and[5])) print("A側のCA") print(serial_numbers_A) #B側のCAの抽出----------------------------- for B_and in lines: B_and=B_and.split() if B_and[0] == 'ATOM' and B_and[2] == 'CA' and B_and[4] == 'B': serial_numbers_B.append(int(B_and[5])) print("B側のCA") print(serial_numbers_B) print("A側のCA") print(serial_numbers_A) print("B側のCA") print(serial_numbers_B) コード
上記のコード同じフォルダ内に存在する.entのファイルを順番にすべて抽出し
(ATOM,CA,A)を含む行の左から6要素目,(ATOM,CA,B)を含む行の左から6要素目をそれぞれ分けて抽出するプログラムである。
最後に
print(serial_numbers_A)
print(serial_numbers_B)
した時に、
entファイルの最後のファイルの
A側のCA
[19,20,21,22,23]
B側のCA
[19,20,21,22,23,24]
しか残りません。
自分としては、
A側のCA
[[4,5,6,7,8,9],[19,20,21,22,23]]
B側のCA
[[5,6,7,8,9],[19,20,21,22,23,24]]
と、前のリストを残したままの多次元配列にしたいのですがなりません。
なぜでしょうか、どうしたらよいのでしょか?
str型ではなくint型にしたいので['19','20']のような形ではなく、[19,20]のような形でお願いします。
pdb3asy.ent
ATOM 2 CA PRO A 4 29.341 -18.244 23.236 1.00112.52 C
ATOM 9 CA LYS A 5 28.103 -17.550 19.692 1.00 91.13 C
ATOM 18 CA PRO A 6 29.134 -14.592 19.578 1.00 63.64 C
ATOM 25 CA PHE A 7 26.489 -11.812 19.222 1.00 44.55 C
ATOM 36 CA VAL A 8 26.315 -10.401 15.682 1.00 31.29 C
ATOM 43 CA ILE A 9 24.530 -7.148 14.816 1.00 36.31 C
ATOM 1605 CA LYS B 5 8.357 5.403 38.590 1.00 58.36 C
ATOM 1614 CA PRO B 6 6.423 2.744 36.650 1.00 49.68 C
ATOM 1621 CA PHE B 7 7.816 1.954 33.187 1.00 42.38 C
ATOM 1632 CA VAL B 8 5.542 3.286 30.412 1.00 33.24 C
ATOM 1639 CA ILE B 9 5.633 1.843 26.875 1.00 38.75 C
pdb1uei.ent
ATOM 2 CA GLU A 19 3.064 55.105 10.319 1.00 49.16 C
ATOM 7 CA PRO A 20 5.276 54.565 13.375 1.00 45.41 C
ATOM 14 CA PHE A 21 8.486 52.580 12.821 1.00 41.16 C
ATOM 25 CA LEU A 22 8.142 49.315 14.760 1.00 39.99 C
ATOM 33 CA ILE A 23 11.230 47.602 16.165 1.00 35.70 C
ATOM 1598 CA GLU B 19 14.712 -0.274 9.422 1.00 42.06 C
ATOM 1603 CA PRO B 20 17.860 1.861 8.820 1.00 38.29 C
ATOM 1610 CA PHE B 21 19.955 3.309 11.660 1.00 32.78 C
ATOM 1621 CA LEU B 22 20.236 7.097 11.248 1.00 28.50 C
ATOM 1629 CA ILE B 23 23.276 8.881 12.612 1.00 22.92 C
ATOM 1637 CA GLY B 24 23.485 12.674 12.520 1.00 22.47 C
回答1件
あなたの回答
tips
プレビュー