Write a function readPDBfile('filename') that will read the atoms for a protein stored in a PDB file, whose name is provided as an input to the function (note that this name should be a string; i.e., specified in quotes). For this part, you should save your function in an m-file called readPDBfile.m. The function declaration should be
function [anum, aname, resno, coords] = readPDBfile(infile);
From the above declaration, you'll notice that your function should have four outputs. These output variables represent the following:
anum: An n×1 column vector with the serial number for each atom as integers
aname: An n×4 string array with the 4-letter atom uppercase name for each atom
resno: An n×1 vector with a residue sequence number for each atom as integers
coords: An n×3 matrix with xyz coordinates (in angstroms) for each atom as doubles In the above, 'n' stands for the number of atoms (or ATOM commands) in the .PDB file.
What to submit: Your m-file containing code for the readPDBfile function. I will run and test this on real data, so test and make sure your function works (i.e., by calling this function on the two provided PDB files, and making sure your output looks fine). In other words, for this part, once you've written your readPDBfile() function, you would call it from the command line as follows:
>> [anum, aname, resno, coords] = readPDBfile('1GFL-pdb.txt');
and
>> [anum, aname, resno, coords] = readPDBfile('7HVP-pdb.txt');
For each case, you should visually inspect the output variables (double-click on the variables in the MATLAB Workspace window), and make sure that the values for these variables are the same as the ones stored in the respective PDB files.
Note: For the above two lines to work, the provided PDB files must be in the same folder as your readPDBfile.m MATLAB m-file. Alternatively, you could provide the full path to the PDB file when calling the function; e.g., readPDBfile('e:/code/data/a7/1GFL-pdb.txt');
Note: You can double-click to open and manually inspect the PDB files.