Electrostatics / pdb2pqr

PDB2PQR - determining titration states, adding missing atoms, and assigning charges/radii to biomolecules.
http://www.poissonboltzmann.org/
Other
122 stars 34 forks source link

pdb files with >999 residues are not processed correctly #250

Closed RayHackett closed 2 years ago

RayHackett commented 2 years ago

For proteins with more than 1000 pdb2pqr gives a warning for each titratable residue beyond residue number 1000: pdb2pqr.stderr.txt contains the following lines: WARNING:PDB2PQR could not identify the following residues and residue numbers as returned by PROPKA or PDB2PKA WARNING: ASP1006 A [...]

I suspect this is due to the fact that in .pdb file format once the residue number reaches 1000 there is no space between chain identifier (column 22 and residue number (columns18-20).

Webserver Example Job ID: lmdy0xmvat_20211119

sobolevnrm commented 2 years ago

This issue can be reproduced on the command line with:

 pdb2pqr30 --with-ph 7.0 --keep-chain --titration-state-method propka 1000-residues.pdb foo.pqr

where 1000-residues.pdb is provided in 1000-residues.zip.

sobolevnrm commented 2 years ago

I think this problem originates with https://github.com/jensengroup/propka incorrectly parsing PDBs with more than 999 residues.

However, PDB2PQR is also not double-checking the results from PROPKA to avoid this error.

sobolevnrm commented 2 years ago

Actually, the problem is not with PROPKA. The problem is how PDB2PQR assembles the pKa dictionary in main.py:nontrivial.

RayHackett commented 2 years ago

After testing with my some .pbd files with more than 999 residues the problem still seems to persist. Both using the webserver and using a local version of the newest commit still bring up the same warnings. WARNING:biomolecule.py:909:apply_pka_values:PDB2PQR could not identify the following residues and residue numbers as returned by PROPKA or PDB2PKA WARNING:biomolecule.py:912:apply_pka_values: ARG1013 A [...]

Thank you for attending to this issue so quickly!

sobolevnrm commented 2 years ago

@RayHackett - the web server has not been upgraded yet. Can you test this using the command-line tool?

@intendo - can you please update the web server?

RayHackett commented 2 years ago

yes it is reproducible with the newest local version too. (I checked - and yes my version does have the applied changes to biomolecules.py and main.py

the command and file you supplied above reporduce the issue aswell pdb2pqr30 --with-ph 7.0 --keep-chain --titration-state-method propka 1000-residues.pdb foo.pqr

sobolevnrm commented 2 years ago

I won't be able to look at this until later today or during the holidays. Sorry.

RayHackett commented 2 years ago

No worries. Thank you for helping!

intendo commented 2 years ago

@sobolevnrm should we wait to upgrade the web server(s) until the underlying problem is fixed?

RayHackett commented 2 years ago

I'm sorry that was my mistake! I'm terribly sorry, you have indeed fixed the error. I just discovered that depending on which conda environment I was in I was unknowingly using an old version of pdb2pqr (3.2.0) which had been installed as part of a different program. When finally referencing to the correct and newest installation of pdb2pqr the warnings disappeared. I think it should be fine to update the server with the current commit too. Thank you for your patience and your help!

intendo commented 2 years ago

@sobolevnrm I updated the test, dev, and prod web servers to use pdb2pqr 3.3.2.

sobolevnrm commented 2 years ago

I truly thought I was losing my mind... and feel much much better now. Thank you, @RayHackett !

I'm sorry that was my mistake! I'm terribly sorry, you have indeed fixed the error. I just discovered that depending on which conda environment I was in I was unknowingly using an old version of pdb2pqr (3.2.0) which had been installed as part of a different program. When finally referencing to the correct and newest installation of pdb2pqr the warnings disappeared. I think it should be fine to update the server with the current commit too. Thank you for your patience and your help!

sobolevnrm commented 2 years ago

@sobolevnrm I updated the test, dev, and prod web servers to use pdb2pqr 3.3.2.

Thank you, @intendo !