This is the fastest way I know to read in a PDB. Strings are conveniently stored as cell variables, and numbers are stored as matrices. Unfortunately there is no faster way that I am aware of to convert text to numbers, so there is an upper limit in matlab for reading a PDB.
To speed up the program, comment out any lines for data not being used. Commenting one line that converts numeric data speeds the program up by roughly 7-8%.
example usage : this plots the atoms of 3IJU.pdb
atoms = fastPDBRead('3IJU.pdb')
plot3(atoms.X, atoms.Y, atoms.Z, '.');
Evan (2023). a fast method of reading data from PDB files (https://www.mathworks.com/matlabcentral/fileexchange/35009-a-fast-method-of-reading-data-from-pdb-files), MATLAB Central File Exchange. Retrieved .
MATLAB Release Compatibility
Platform CompatibilityWindows macOS Linux
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!Start Hunting!
very small and silly tweak to make it read a wider variety of files
I revised the previous version so that it reads any atomtype for any file, and it reads the comment section at the end of each line (in charmm this is the chain name, in Avogadro this is the element symbol, and so on)