Sorry about not being able to make scrollable windows smaller for my 4 input pdbs
ok my 4 short pdbs:
prova_1.pdb
:
<!-- begin snippet: js hide: true -->
ATOM 1 N ALA A 1 1.142 129.955 31.316 1.00 56.83 N
ATOM 2 CA ALA A 1 2.084 128.961 31.798 1.00 53.73 C
ATOM 3 C ALA A 1 1.743 127.771 30.885 1.00 51.56 C
ATOM 4 O ALA A 1 0.650 127.715 30.320 1.00 57.57 O
ATOM 5 CB ALA A 1 1.831 128.558 33.261 1.00 52.29 C
ATOM 6 N SER A 2 2.806 127.064 30.572 1.00 41.24 N
ATOM 7 CA SER A 2 2.887 125.804 29.847 1.00 30.35 C
ATOM 8 C SER A 2 4.352 125.681 30.149 1.00 25.48 C
ATOM 9 O SER A 2 5.074 126.672 29.968 1.00 26.70 O
ATOM 10 CB SER A 2 2.663 125.911 28.338 1.00 29.47 C
ATOM 11 OG SER A 2 3.604 125.369 27.417 1.00 27.34 O
ATOM 12 N ASN A 3 4.844 124.603 30.720 1.00 17.84 N
ATOM 13 CA ASN A 3 6.248 124.631 31.023 1.00 11.19 C
ATOM 14 C ASN A 3 6.959 124.045 29.845 1.00 12.66 C
ATOM 15 O ASN A 3 8.170 123.897 29.905 1.00 13.73 O
ATOM 16 CB ASN A 3 6.501 123.860 32.290 1.00 10.22 C
ATOM 17 CG ASN A 3 5.985 122.446 32.339 1.00 12.32 C
ATOM 18 OD1 ASN A 3 5.592 121.848 31.329 1.00 14.90 O
ATOM 19 ND2 ASN A 3 5.947 121.897 33.544 1.00 13.65 N
ATOM 20 N PHE A 4 6.300 123.727 28.742 1.00 10.37 N
ATOM 21 CA PHE A 4 7.002 123.152 27.631 1.00 7.74 C
ATOM 22 C PHE A 4 7.609 124.278 26.791 1.00 10.17 C
ATOM 23 O PHE A 4 7.070 124.663 25.739 1.00 13.33 O
ATOM 24 CB PHE A 4 6.016 122.339 26.846 1.00 3.48 C
ATOM 25 CG PHE A 4 6.675 121.292 25.996 1.00 2.00 C
ATOM 26 CD1 PHE A 4 8.050 121.171 25.900 1.00 3.04 C
ATOM 27 CD2 PHE A 4 5.871 120.419 25.326 1.00 2.88 C
ATOM 28 CE1 PHE A 4 8.600 120.173 25.132 1.00 7.56 C
ATOM 29 CE2 PHE A 4 6.433 119.413 24.560 1.00 5.85 C
ATOM 30 CZ PHE A 4 7.794 119.276 24.451 1.00 6.77 C
ATOM 31 N THR A 5 8.689 124.868 27.263 1.00 13.06 N
ATOM 32 CA THR A 5 9.399 125.914 26.575 1.00 14.10 C
ATOM 33 C THR A 5 10.827 125.601 26.227 1.00 14.87 C
ATOM 34 O THR A 5 11.407 124.627 26.688 1.00 19.07 O
ATOM 35 CB THR A 5 9.385 127.148 27.412 1.00 15.81 C
ATOM 36 OG1 THR A 5 9.866 126.836 28.721 1.00 22.56 O
ATOM 37 CG2 THR A 5 7.973 127.704 27.421 1.00 21.49 C
ATOM 38 N GLN A 6 11.427 126.455 25.419 1.00 16.45 N
ATOM 39 CA GLN A 6 12.807 126.328 24.979 1.00 13.21 C
ATOM 40 C GLN A 6 13.708 126.721 26.125 1.00 9.91 C
ATOM 41 O GLN A 6 13.263 127.501 26.962 1.00 12.35 O
ATOM 42 CB GLN A 6 12.909 127.234 23.821 1.00 16.85 C
ATOM 43 CG GLN A 6 14.074 128.176 23.710 1.00 32.72 C
ATOM 44 CD GLN A 6 13.915 128.964 22.425 1.00 40.53 C
ATOM 45 OE1 GLN A 6 13.071 129.853 22.332 1.00 50.30 O
ATOM 46 NE2 GLN A 6 14.649 128.668 21.360 1.00 47.53 N
prova_2.pdb
:
ATOM 20 N PHE A 4 6.300 123.727 28.742 1.00 10.37 N
ATOM 21 CA PHE A 4 7.002 123.152 27.631 1.00 7.74 C
ATOM 22 C PHE A 4 7.609 124.278 26.791 1.00 10.17 C
ATOM 23 O PHE A 4 7.070 124.663 25.739 1.00 13.33 O
ATOM 24 CB PHE A 4 6.016 122.339 26.846 1.00 3.48 C
ATOM 25 CG PHE A 4 6.675 121.292 25.996 1.00 2.00 C
ATOM 26 CD1 PHE A 4 8.050 121.171 25.900 1.00 3.04 C
ATOM 27 CD2 PHE A 4 5.871 120.419 25.326 1.00 2.88 C
ATOM 28 CE1 PHE A 4 8.600 120.173 25.132 1.00 7.56 C
ATOM 29 CE2 PHE A 4 6.433 119.413 24.560 1.00 5.85 C
ATOM 30 CZ PHE A 4 7.794 119.276 24.451 1.00 6.77 C
ATOM 31 N THR A 5 8.689 124.868 27.263 1.00 13.06 N
ATOM 32 CA THR A 5 9.399 125.914 26.575 1.00 14.10 C
ATOM 33 C THR A 5 10.827 125.601 26.227 1.00 14.87 C
ATOM 34 O THR A 5 11.407 124.627 26.688 1.00 19.07 O
ATOM 35 CB THR A 5 9.385 127.148 27.412 1.00 15.81 C
ATOM 36 OG1 THR A 5 9.866 126.836 28.721 1.00 22.56 O
ATOM 37 CG2 THR A 5 7.973 127.704 27.421 1.00 21.49 C
ATOM 38 N GLN A 6 11.427 126.455 25.419 1.00 16.45 N
ATOM 39 CA GLN A 6 12.807 126.328 24.979 1.00 13.21 C
ATOM 40 C GLN A 6 13.708 126.721 26.125 1.00 9.91 C
ATOM 41 O GLN A 6 13.263 127.501 26.962 1.00 12.35 O
ATOM 42 CB GLN A 6 12.909 127.234 23.821 1.00 16.85 C
ATOM 43 CG GLN A 6 14.074 128.176 23.710 1.00 32.72 C
ATOM 44 CD GLN A 6 13.915 128.964 22.425 1.00 40.53 C
ATOM 45 OE1 GLN A 6 13.071 129.853 22.332 1.00 50.30 O
ATOM 46 NE2 GLN A 6 14.649 128.668 21.360 1.00 47.53 N
ATOM 47 N PHE A 7 14.919 126.202 26.225 1.00 5.73 N
ATOM 48 CA PHE A 7 15.810 126.623 27.269 1.00 3.86 C
ATOM 49 C PHE A 7 17.240 126.457 26.803 1.00 6.24 C
ATOM 50 O PHE A 7 17.478 125.796 25.772 1.00 5.25 O
ATOM 51 CB PHE A 7 15.604 125.811 28.542 1.00 5.26 C
ATOM 52 CG PHE A 7 15.786 124.310 28.465 1.00 4.68 C
ATOM 53 CD1 PHE A 7 14.771 123.513 27.996 1.00 3.85 C
ATOM 54 CD2 PHE A 7 16.956 123.734 28.906 1.00 5.00 C
ATOM 55 CE1 PHE A 7 14.937 122.144 27.986 1.00 4.19 C
ATOM 56 CE2 PHE A 7 17.100 122.356 28.883 1.00 4.10 C
ATOM 57 CZ PHE A 7 16.096 121.548 28.426 1.00 2.00 C
ATOM 58 N VAL A 8 18.223 127.039 27.507 1.00 3.69 N
ATOM 59 CA VAL A 8 19.557 126.886 26.986 1.00 5.87 C
ATOM 60 C VAL A 8 20.166 125.775 27.807 1.00 5.50 C
ATOM 61 O VAL A 8 20.120 125.788 29.027 1.00 7.32 O
ATOM 62 CB VAL A 8 20.422 128.260 27.014 1.00 2.82 C
ATOM 63 CG1 VAL A 8 19.663 129.298 27.677 1.00 2.00 C
ATOM 64 CG2 VAL A 8 21.770 128.137 27.715 1.00 3.72 C
prova_3.pdb
:
ATOM 73 N VAL A 10 23.392 124.455 27.156 1.00 5.70 N
ATOM 74 CA VAL A 10 24.815 124.609 27.396 1.00 5.41 C
ATOM 75 C VAL A 10 25.028 126.086 27.368 1.00 9.58 C
ATOM 76 O VAL A 10 24.818 126.713 26.326 1.00 9.54 O
ATOM 77 CB VAL A 10 25.628 123.971 26.302 1.00 2.00 C
ATOM 78 CG1 VAL A 10 27.079 124.222 26.538 1.00 2.00 C
ATOM 79 CG2 VAL A 10 25.376 122.481 26.258 1.00 2.00 C
ATOM 80 N ASP A 11 25.389 126.678 28.476 1.00 15.18 N
ATOM 81 CA ASP A 11 25.625 128.089 28.463 1.00 24.10 C
ATOM 82 C ASP A 11 27.083 128.378 28.236 1.00 30.71 C
ATOM 83 O ASP A 11 27.898 128.328 29.144 1.00 32.07 O
ATOM 84 CB ASP A 11 25.172 128.683 29.773 1.00 30.45 C
ATOM 85 CG ASP A 11 25.315 130.192 29.952 1.00 37.30 C
ATOM 86 OD1 ASP A 11 25.407 130.948 28.981 1.00 45.67 O
ATOM 87 OD2 ASP A 11 25.313 130.633 31.097 1.00 44.21 O
ATOM 88 N ASN A 12 27.436 128.753 27.011 1.00 39.07 N
ATOM 89 CA ASN A 12 28.802 129.152 26.729 1.00 45.49 C
ATOM 90 C ASN A 12 28.900 130.664 26.783 1.00 48.93 C
ATOM 91 O ASN A 12 29.429 131.343 25.917 1.00 49.83 O
ATOM 92 CB ASN A 12 29.205 128.648 25.361 1.00 46.75 C
ATOM 93 CG ASN A 12 29.704 127.218 25.445 1.00 52.76 C
ATOM 94 OD1 ASN A 12 30.437 126.808 26.353 1.00 54.40 O
ATOM 95 ND2 ASN A 12 29.301 126.405 24.473 1.00 53.69 N
ATOM 96 N GLY A 13 28.311 131.227 27.831 1.00 52.11 N
ATOM 97 CA GLY A 13 28.324 132.661 28.085 1.00 59.39 C
ATOM 98 C GLY A 13 27.829 133.558 26.960 1.00 63.90 C
ATOM 99 O GLY A 13 28.566 134.446 26.526 1.00 66.52 O
ATOM 100 N GLY A 14 26.592 133.376 26.480 1.00 66.67 N
ATOM 101 CA GLY A 14 26.057 134.186 25.374 1.00 68.42 C
ATOM 102 C GLY A 14 26.542 133.759 23.967 1.00 70.75 C
ATOM 103 O GLY A 14 25.755 133.710 23.007 1.00 70.95 O
ATOM 104 N THR A 15 27.806 133.373 23.782 1.00 71.35 N
ATOM 105 CA THR A 15 28.357 133.033 22.479 1.00 73.39 C
ATOM 106 C THR A 15 28.563 131.530 22.201 1.00 70.75 C
ATOM 107 O THR A 15 29.560 130.900 22.623 1.00 71.27 O
ATOM 108 CB THR A 15 29.681 133.863 22.345 1.00 77.53 C
ATOM 109 OG1 THR A 15 30.518 133.626 23.492 1.00 80.95 O
ATOM 110 CG2 THR A 15 29.362 135.367 22.204 1.00 79.90 C
ATOM 111 N GLY A 16 27.650 130.909 21.451 1.00 64.68 N
ATOM 112 CA GLY A 16 27.780 129.467 21.198 1.00 55.83 C
ATOM 113 C GLY A 16 27.063 128.651 22.265 1.00 47.59 C
ATOM 114 O GLY A 16 27.463 127.543 22.627 1.00 46.78 O
prova_4.pdb
:
ATOM 1 N PHE A 4 8.005 121.707 30.748 1.00 10.37 N
ATOM 2 CA PHE A 4 8.609 121.187 29.556 1.00 7.74 C
ATOM 3 C PHE A 4 9.157 122.352 28.728 1.00 10.17 C
ATOM 4 O PHE A 4 8.537 122.794 27.744 1.00 13.33 O
ATOM 5 CB PHE A 4 7.556 120.420 28.814 1.00 3.48 C
ATOM 6 CG PHE A 4 8.135 119.416 27.860 1.00 2.00 C
ATOM 7 CD1 PHE A 4 9.496 119.294 27.647 1.00 3.04 C
ATOM 8 CD2 PHE A 4 7.272 118.583 27.214 1.00 2.88 C
ATOM 9 CE1 PHE A 4 9.974 118.334 26.787 1.00 7.56 C
ATOM 10 CE2 PHE A 4 7.761 117.615 26.355 1.00 5.85 C
ATOM 11 CZ PHE A 4 9.107 117.477 26.128 1.00 6.77 C
ATOM 12 N THR A 5 10.276 122.912 29.140 1.00 13.06 N
ATOM 13 CA THR A 5 10.937 123.990 28.452 1.00 14.10 C
ATOM 14 C THR A 5 12.329 123.688 27.973 1.00 14.87 C
ATOM 15 O THR A 5 12.936 122.690 28.335 1.00 19.07 O
ATOM 16 CB THR A 5 11.001 125.178 29.348 1.00 15.81 C
ATOM 17 CG2 THR A 5 9.600 125.740 29.502 1.00 21.49 C
ATOM 18 OG1 THR A 5 11.584 124.797 30.597 1.00 22.56 O
ATOM 19 N GLN A 6 12.870 124.580 27.164 1.00 16.45 N
ATOM 20 CA GLN A 6 14.208 124.470 26.607 1.00 13.21 C
ATOM 21 C GLN A 6 15.202 124.799 27.694 1.00 9.91 C
ATOM 22 O GLN A 6 14.833 125.537 28.604 1.00 12.35 O
ATOM 23 CB GLN A 6 14.224 125.434 25.493 1.00 16.85 C
ATOM 24 CG GLN A 6 15.384 126.376 25.335 1.00 32.72 C
ATOM 25 CD GLN A 6 15.129 127.229 24.110 1.00 40.53 C
ATOM 26 NE2 GLN A 6 15.771 126.986 22.975 1.00 47.53 N
ATOM 27 OE1 GLN A 6 14.288 128.126 24.131 1.00 50.30 O
ATOM 28 N PHE A 7 16.413 124.270 27.669 1.00 5.73 N
ATOM 29 CA PHE A 7 17.389 124.633 28.657 1.00 3.86 C
ATOM 30 C PHE A 7 18.775 124.484 28.068 1.00 6.24 C
ATOM 31 O PHE A 7 18.923 123.876 26.988 1.00 5.25 O
ATOM 32 CB PHE A 7 17.280 123.757 29.900 1.00 5.26 C
ATOM 33 CG PHE A 7 17.442 122.261 29.731 1.00 4.68 C
ATOM 34 CD1 PHE A 7 16.386 121.493 29.306 1.00 3.85 C
ATOM 35 CD2 PHE A 7 18.639 121.658 30.045 1.00 5.00 C
ATOM 36 CE1 PHE A 7 16.538 120.126 29.213 1.00 4.19 C
ATOM 37 CE2 PHE A 7 18.768 120.282 29.940 1.00 4.10 C
ATOM 38 CZ PHE A 7 17.723 119.503 29.525 1.00 2.00 C
ATOM 39 N VAL A 8 19.818 125.025 28.719 1.00 3.69 N
ATOM 40 CA VAL A 8 21.103 124.892 28.084 1.00 5.87 C
ATOM 41 C VAL A 8 21.767 123.739 28.795 1.00 5.50 C
ATOM 42 O VAL A 8 21.820 123.688 30.013 1.00 7.32 O
ATOM 43 CB VAL A 8 21.980 126.259 28.112 1.00 2.82 C
ATOM 44 CG1 VAL A 8 21.285 127.265 28.886 1.00 2.00 C
ATOM 45 CG2 VAL A 8 23.379 126.094 28.694 1.00 3.72 C
TER
END
my code :
import matplotlib.pyplot as plt
from itertools import cycle
prop_cycle = plt.rcParams['axes.prop_cycle']
colors = cycle(prop_cycle.by_key()['color'])
from Bio.PDB import PDBParser
list_of_structures = []
parser = PDBParser(PERMISSIVE=1, QUIET=1)
list_of_structures.extend([parser.get_structure("prova_1", "prova_1.pdb") ,
parser.get_structure("prova_2", "prova_2.pdb"),
parser.get_structure("prova_3", "prova_3.pdb"),
parser.get_structure("prova_3", "prova_4.pdb")])
print(list_of_structures)
list_of_struct = []
colorz = 'red'
i = 1
while i < len(list_of_structures):
for models in list_of_structures:
list_of_coordinates = []
for model in models:
#print(model)
chains = model.get_chains()
for chain in chains:
#print(chain)
residues = chain.get_residues()
for residue in residues:
#print(residue)
atoms = residue.get_atoms()
for atom in atoms:
atom_name = atom.get_name()
#print(atom_name)
if atom_name == "CA":
CA_coord = atom.get_coord()
#print(CA_coord)
list_of_coordinates.append([i for i in CA_coord])
i += 1
list_of_struct.append(list_of_coordinates)
for i in list_of_struct:
print(i)
f = open("test.txt","w")
f.write(str(list_of_struct))
f.close()
print(type(list_of_struct))
atomlist_full = list_of_struct
fig = plt.figure()
ax = plt.axes(projection="3d")
for i in range(len(list_of_struct)):
atomlist = atomlist_full[i]
for p in atomlist: #print CA as dots
ax.scatter3D(p[0], p[1], p[2], color = colorz)
print(p)
for i in range(0,len(atomlist)-1): #connect with a line CA n with n+1
x,y,z = [atomlist[i+1][0],atomlist[i][0]],[atomlist[i+1][1],atomlist[i][1]],[atomlist[i+1][2],atomlist[i][2]]
ax.plot(x,y,z, color = colorz)
colorz = next(colors)
plt.show()
output :
[[[2.084, 128.961, 31.798], [2.887, 125.804, 29.847], [6.248, 124.631, 31.023], [7.002, 123.152, 27.631], [9.399, 125.914, 26.575], [12.807, 126.328, 24.979]], [[7.002, 123.152, 27.631], [9.399, 125.914, 26.575], [12.807, 126.328, 24.979], [15.81, 126.623, 27.269], [19.557, 126.886, 26.986]], [[24.815, 124.609, 27.396], [25.625, 128.089, 28.463], [28.802, 129.152, 26.729], [28.324, 132.661, 28.085], [26.057, 134.186, 25.374], [28.357, 133.033, 22.479], [27.78, 129.467, 21.198]], [[8.609, 121.187, 29.556], [10.937, 123.99, 28.452], [14.208, 124.47, 26.607], [17.389, 124.633, 28.657], [21.103, 124.892, 28.084]]]
image of plot :

every different color line is a c-alpha of from one of the pdbs
Can change block after end of main loop with
for i in range(len(list_of_struct)):
print(list_of_structures[i])
f = open(list_of_structures[i].id+'_'+str(i)+'_'+'.txt',"w")
f.write(str(list_of_struct[i]))
f.close()
print(type(list_of_struct))
to save each pdb coordinates in a single text file named with structure id such as prova_1_0_.txt
for first pdb