01D. Exercises
Mingyang Lu
01/07/2024
How to access PDB data in MATLAB?
You will need to install Bioinformatics Toolbox.
% Example: Retrieve atomic coordinates for PDB ID "7l3u"
df = proc_pdb(pdb_id)
df = 1300×8 table
| atom_name | residue_name | chain_id | residue_number | x | y | z | b |
---|
1 | 'N' | 'VAL' | 'A' | 1 | -8.4690 | -8.3600 | 10.7100 | 50.8700 |
---|
2 | 'CA' | 'VAL' | 'A' | 1 | -7.8400 | -7.4370 | 11.6520 | 50.5100 |
---|
3 | 'C' | 'VAL' | 'A' | 1 | -6.3720 | -7.8090 | 11.8470 | 49.6200 |
---|
4 | 'O' | 'VAL' | 'A' | 1 | -6.0510 | -8.9800 | 12.0240 | 50.0600 |
---|
5 | 'CB' | 'VAL' | 'A' | 1 | -8.5910 | -7.3880 | 12.9940 | 51.9200 |
---|
6 | 'N' | 'LEU' | 'A' | 2 | -5.4870 | -6.8120 | 11.8110 | 30.4800 |
---|
7 | 'CA' | 'LEU' | 'A' | 2 | -4.0530 | -7.0340 | 11.9720 | 29.1900 |
---|
8 | 'C' | 'LEU' | 'A' | 2 | -3.6630 | -6.8550 | 13.4320 | 29.1100 |
---|
9 | 'O' | 'LEU' | 'A' | 2 | -4.2920 | -6.0820 | 14.1610 | 29.6800 |
---|
10 | 'CB' | 'LEU' | 'A' | 2 | -3.2420 | -6.0510 | 11.1170 | 28 |
---|
11 | 'CG' | 'LEU' | 'A' | 2 | -2.9950 | -6.3800 | 9.6400 | 27.4100 |
---|
12 | 'CD1' | 'LEU' | 'A' | 2 | -4.2730 | -6.1740 | 8.8660 | 28.1400 |
---|
13 | 'CD2' | 'LEU' | 'A' | 2 | -1.9760 | -5.4200 | 9.0870 | 26.1300 |
---|
14 | 'N' | 'SER' | 'A' | 3 | -2.6330 | -7.5960 | 13.8450 | 28.6500 |
---|
15 | 'CA' | 'SER' | 'A' | 3 | -2.0280 | -7.4530 | 15.1690 | 28.7700 |
---|
16 | 'C' | 'SER' | 'A' | 3 | -1.2170 | -6.1560 | 15.2260 | 27.9900 |
---|
17 | 'O' | 'SER' | 'A' | 3 | -0.8410 | -5.5840 | 14.2010 | 27.0100 |
---|
18 | 'CB' | 'SER' | 'A' | 3 | -1.1200 | -8.6530 | 15.4750 | 28.7100 |
---|
19 | 'OG' | 'SER' | 'A' | 3 | 0.1060 | -8.5420 | 14.7950 | 27.7300 |
---|
20 | 'N' | 'GLU' | 'A' | 4 | -0.9790 | -5.6630 | 16.4440 | 35.4400 |
---|
21 | 'CA' | 'GLU' | 'A' | 4 | -0.1680 | -4.4590 | 16.5680 | 34.9900 |
---|
22 | 'C' | 'GLU' | 'A' | 4 | 1.2390 | -4.6840 | 15.9870 | 33.8800 |
---|
23 | 'O' | 'GLU' | 'A' | 4 | 1.8320 | -3.7870 | 15.3760 | 33.0500 |
---|
24 | 'CB' | 'GLU' | 'A' | 4 | -0.1250 | -4.0050 | 18.0270 | 36.1200 |
---|
25 | 'CG' | 'GLU' | 'A' | 4 | 0.9480 | -2.9760 | 18.2910 | 36.0200 |
---|
26 | 'CD' | 'GLU' | 'A' | 4 | 0.6950 | -1.6430 | 17.6190 | 35.8300 |
---|
27 | 'OE1' | 'GLU' | 'A' | 4 | -0.4370 | -1.3570 | 17.1310 | 36.2200 |
---|
28 | 'OE2' | 'GLU' | 'A' | 4 | 1.6630 | -0.8590 | 17.5340 | 36.0600 |
---|
29 | 'N' | 'GLY' | 'A' | 5 | 1.7980 | -5.8740 | 16.2160 | 27.7700 |
---|
30 | 'CA' | 'GLY' | 'A' | 5 | 3.0810 | -6.2100 | 15.6340 | 27.2500 |
---|
31 | 'C' | 'GLY' | 'A' | 5 | 3.0510 | -6.2130 | 14.1230 | 25.5400 |
---|
32 | 'O' | 'GLY' | 'A' | 5 | 3.9960 | -5.7650 | 13.4880 | 24.6800 |
---|
33 | 'N' | 'GLU' | 'A' | 6 | 1.9530 | -6.6830 | 13.5310 | 25.9400 |
---|
34 | 'CA' | 'GLU' | 'A' | 6 | 1.8410 | -6.5950 | 12.0720 | 25.3100 |
---|
35 | 'C' | 'GLU' | 'A' | 6 | 1.8050 | -5.1440 | 11.5910 | 24.6000 |
---|
36 | 'O' | 'GLU' | 'A' | 6 | 2.5140 | -4.7840 | 10.6510 | 23.7700 |
---|
37 | 'CB' | 'GLU' | 'A' | 6 | 0.6390 | -7.4050 | 11.5630 | 26.0100 |
---|
38 | 'CG' | 'GLU' | 'A' | 6 | 0.8740 | -8.9050 | 11.5620 | 26.4700 |
---|
39 | 'CD' | 'GLU' | 'A' | 6 | -0.4270 | -9.6880 | 11.4900 | 27.5600 |
---|
40 | 'OE1' | 'GLU' | 'A' | 6 | -1.5110 | -9.1640 | 11.8240 | 28.2900 |
---|
41 | 'OE2' | 'GLU' | 'A' | 6 | -0.3650 | -10.8690 | 11.1020 | 28.2700 |
---|
42 | 'N' | 'TRP' | 'A' | 7 | 1.0060 | -4.2900 | 12.2330 | 21.1100 |
---|
43 | 'CA' | 'TRP' | 'A' | 7 | 1.0050 | -2.8740 | 11.8650 | 20.2600 |
---|
44 | 'C' | 'TRP' | 'A' | 7 | 2.3920 | -2.2600 | 11.9970 | 20.1100 |
---|
45 | 'O' | 'TRP' | 'A' | 7 | 2.7960 | -1.4410 | 11.1730 | 19.1900 |
---|
46 | 'CB' | 'TRP' | 'A' | 7 | -0.0400 | -2.0870 | 12.6650 | 21.1000 |
---|
47 | 'CG' | 'TRP' | 'A' | 7 | -1.4910 | -2.3220 | 12.2180 | 21.5200 |
---|
48 | 'CD1' | 'TRP' | 'A' | 7 | -2.4740 | -2.8230 | 12.9680 | 22.6600 |
---|
49 | 'CD2' | 'TRP' | 'A' | 7 | -2.0480 | -2.0950 | 10.9130 | 21.1800 |
---|
50 | 'NE1' | 'TRP' | 'A' | 7 | -3.6440 | -2.9010 | 12.2610 | 23.1900 |
---|
51 | 'CE2' | 'TRP' | 'A' | 7 | -3.3950 | -2.4990 | 10.9710 | 22.3500 |
---|
52 | 'CE3' | 'TRP' | 'A' | 7 | -1.5440 | -1.6030 | 9.7150 | 20.1100 |
---|
53 | 'CZ2' | 'TRP' | 'A' | 7 | -4.2770 | -2.3980 | 9.8760 | 22.6000 |
---|
54 | 'CZ3' | 'TRP' | 'A' | 7 | -2.4060 | -1.5180 | 8.6300 | 20.2100 |
---|
55 | 'CH2' | 'TRP' | 'A' | 7 | -3.7640 | -1.9080 | 8.7250 | 21.5200 |
---|
56 | 'N' | 'GLN' | 'A' | 8 | 3.1200 | -2.6130 | 13.0600 | 23.5500 |
---|
57 | 'CA' | 'GLN' | 'A' | 8 | 4.4560 | -2.0410 | 13.2090 | 23.3400 |
---|
58 | 'C' | 'GLN' | 'A' | 8 | 5.3500 | -2.4160 | 12.0310 | 22.6900 |
---|
59 | 'O' | 'GLN' | 'A' | 8 | 6.1580 | -1.6040 | 11.5910 | 22.3600 |
---|
60 | 'CB' | 'GLN' | 'A' | 8 | 5.0600 | -2.5060 | 14.5190 | 24.1200 |
---|
61 | 'CG' | 'GLN' | 'A' | 8 | 4.4350 | -1.7880 | 15.7530 | 24.9800 |
---|
62 | 'CD' | 'GLN' | 'A' | 8 | 5.0310 | -2.2620 | 17.0110 | 26.1900 |
---|
63 | 'OE1' | 'GLN' | 'A' | 8 | 6.1550 | -2.7740 | 17.0350 | 26.6100 |
---|
64 | 'NE2' | 'GLN' | 'A' | 8 | 4.2970 | -2.1270 | 18.1240 | 27.5700 |
---|
65 | 'N' | 'LEU' | 'A' | 9 | 5.2410 | -3.6460 | 11.5280 | 23.0500 |
---|
66 | 'CA' | 'LEU' | 'A' | 9 | 6.0430 | -4.0520 | 10.3790 | 22.6900 |
---|
67 | 'C' | 'LEU' | 'A' | 9 | 5.6180 | -3.3120 | 9.1190 | 22.1300 |
---|
68 | 'O' | 'LEU' | 'A' | 9 | 6.4630 | -2.9170 | 8.3180 | 21.7300 |
---|
69 | 'CB' | 'LEU' | 'A' | 9 | 5.9030 | -5.5500 | 10.1570 | 23.0400 |
---|
70 | 'CG' | 'LEU' | 'A' | 9 | 6.6550 | -6.4220 | 11.1730 | 23.6900 |
---|
71 | 'CD1' | 'LEU' | 'A' | 9 | 6.3210 | -7.8820 | 11.0340 | 24.5300 |
---|
72 | 'CD2' | 'LEU' | 'A' | 9 | 8.1410 | -6.1730 | 11.0780 | 23.9900 |
---|
73 | 'N' | 'VAL' | 'A' | 10 | 4.3150 | -3.1230 | 8.9330 | 20.8700 |
---|
74 | 'CA' | 'VAL' | 'A' | 10 | 3.8330 | -2.3350 | 7.8040 | 20.4600 |
---|
75 | 'C' | 'VAL' | 'A' | 10 | 4.4420 | -0.9420 | 7.8380 | 19.8300 |
---|
76 | 'O' | 'VAL' | 'A' | 10 | 4.9070 | -0.4150 | 6.8080 | 19.4200 |
---|
77 | 'CB' | 'VAL' | 'A' | 10 | 2.2930 | -2.2740 | 7.8190 | 20.7600 |
---|
78 | 'CG1' | 'VAL' | 'A' | 10 | 1.7330 | -1.2060 | 6.7960 | 20.3300 |
---|
79 | 'CG2' | 'VAL' | 'A' | 10 | 1.7120 | -3.6380 | 7.5440 | 21.4300 |
---|
80 | 'N' | 'LEU' | 'A' | 11 | 4.3900 | -0.2900 | 9.0110 | 22.0400 |
---|
81 | 'CA' | 'LEU' | 'A' | 11 | 4.8140 | 1.1030 | 9.1100 | 21.8800 |
---|
82 | 'C' | 'LEU' | 'A' | 11 | 6.3280 | 1.2330 | 9.0600 | 21.6300 |
---|
83 | 'O' | 'LEU' | 'A' | 11 | 6.8460 | 2.2810 | 8.6400 | 21.3700 |
---|
84 | 'CB' | 'LEU' | 'A' | 11 | 4.2040 | 1.7860 | 10.3530 | 22.6500 |
---|
85 | 'CG' | 'LEU' | 'A' | 11 | 2.6670 | 1.8090 | 10.2330 | 23.1700 |
---|
86 | 'CD1' | 'LEU' | 'A' | 11 | 2.1850 | 2.5830 | 11.4830 | 24.2300 |
---|
87 | 'CD2' | 'LEU' | 'A' | 11 | 2.1240 | 2.3740 | 8.8520 | 22.8300 |
---|
88 | 'N' | 'HIS' | 'A' | 12 | 7.0480 | 0.1950 | 9.5200 | 22.0500 |
---|
89 | 'CA' | 'HIS' | 'A' | 12 | 8.4980 | 0.2010 | 9.4250 | 22.1400 |
---|
90 | 'C' | 'HIS' | 'A' | 12 | 8.9520 | 0.1910 | 7.9720 | 21.7000 |
---|
91 | 'O' | 'HIS' | 'A' | 12 | 9.8080 | 0.9790 | 7.5710 | 21.7400 |
---|
92 | 'CB' | 'HIS' | 'A' | 12 | 9.0240 | -1.0100 | 10.1730 | 22.8200 |
---|
93 | 'CG' | 'HIS' | 'A' | 12 | 10.4880 | -1.2150 | 10.0020 | 23.0700 |
---|
94 | 'ND1' | 'HIS' | 'A' | 12 | 11.4420 | -0.4820 | 10.6740 | 23.4400 |
---|
95 | 'CD2' | 'HIS' | 'A' | 12 | 11.1700 | -2.0490 | 9.1840 | 23.1500 |
---|
96 | 'CE1' | 'HIS' | 'A' | 12 | 12.6490 | -0.9200 | 10.3550 | 23.7800 |
---|
97 | 'NE2' | 'HIS' | 'A' | 12 | 12.5100 | -1.8230 | 9.3920 | 23.6300 |
---|
98 | 'N' | 'VAL' | 'A' | 13 | 8.3200 | -0.6220 | 7.1290 | 22.5400 |
---|
99 | 'CA' | 'VAL' | 'A' | 13 | 8.7410 | -0.5780 | 5.7350 | 22.5000 |
---|
100 | 'C' | 'VAL' | 'A' | 13 | 8.2210 | 0.6690 | 5.0480 | 21.9600 |
---|
⋮ |
---|
Define MATLAB functions
function df = proc_pdb(pdb_id)
pdb_url = sprintf('https://files.rcsb.org/download/%s.pdb', pdb_id);
pdb_file_path = websave([pdb_id '.pdb'], pdb_url);
% Read PDB file using pdbread
pdbStruct = pdbread(pdb_file_path);
pdbModel = pdbStruct.Model.Atom;
'atom_name', {pdbModel.AtomName}, ...
'residue_name', {pdbModel.resName}, ...
'chain_id', {pdbModel.chainID}, ...
'residue_number', {pdbModel.resSeq}, ...
'b', {pdbModel.tempFactor} ...
df = struct2table(atom_data);
% Clean up: delete downloaded PDB file