Electrostatics / pdb2pqr

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

Protonation of nonstandard residues not occurring #399

Open HeheHahaHoHoHo opened 2 months ago

HeheHahaHoHoHo commented 2 months ago

Hi all, I would like to use the pdb2pqr to protonate the H of my protein. (pdb:1hbn). I would like to add H reliably using the pKa value. My protein has 5 non standard residues and i have already added parameters for them in AMBER.DAT (because i want to use an amber forcefield). i get this error 2024-07-21 10:28:06,671 WARNING:biomolecule.py:741:apply_force_field:Residue MHS A 257 has non-integer charge: -0.9217 deviates by 0.07830000000000004 from integral, exceeding error tolerance 0.001. 2024-07-21 10:28:06,671 WARNING:biomolecule.py:741:apply_force_field:Residue AGM A 271 has non-integer charge: -1.7331 deviates by 0.2668999999999999 from integral, exceeding error tolerance 0.001. 2024-07-21 10:28:06,673 WARNING:biomolecule.py:741:apply_force_field:Residue MGN A 400 has non-integer charge: -1.48 deviates by 0.48 from integral, exceeding error tolerance 0.001. 2024-07-21 10:28:06,673 WARNING:biomolecule.py:741:apply_force_field:Residue GL3 A 445 has non-integer charge: -0.72 deviates by 0.28 from integral, exceeding error tolerance 0.001. 2024-07-21 10:28:06,673 WARNING:biomolecule.py:741:apply_force_field:Residue SMC A 452 has non-integer charge: -0.8882 deviates by 0.11180000000000001 from integral, exceeding error tolerance 0.001. 2024-07-21 10:28:06,694 WARNING:biomolecule.py:741:apply_force_field:Residue MHS D 257 has non-integer charge: -0.9217 deviates by 0.07830000000000004 from integral, exceeding error tolerance 0.001. 2024-07-21 10:28:06,694 WARNING:biomolecule.py:741:apply_force_field:Residue AGM D 271 has non-integer charge: -1.7331 deviates by 0.2668999999999999 from integral, exceeding error tolerance 0.001. 2024-07-21 10:28:06,696 WARNING:biomolecule.py:741:apply_force_field:Residue MGN D 400 has non-integer charge: -1.48 deviates by 0.48 from integral, exceeding error tolerance 0.001. 2024-07-21 10:28:06,697 WARNING:biomolecule.py:741:apply_force_field:Residue GL3 D 445 has non-integer charge: -0.72 deviates by 0.28 from integral, exceeding error tolerance 0.001. 2024-07-21 10:28:06,697 WARNING:biomolecule.py:741:apply_force_field:Residue SMC D 452 has non-integer charge: -0.8882 deviates by 0.11180000000000001 from integral, exceeding error tolerance 0.001.

what i found is that the non-standard residues are not being protonated before the charges are being calculated (i have checked the charges with the states i would like the non-standard residues to be in which are intergers). (check below) and the --protonate-all does nothing different. I can get propka3 to work and it tells me the pka, i would love for pdb2pqr to work so i can get the pqr file to convert to pdb later. Any suggestions?

Additional parameters added to AMBER.DAT MGN N -0.869413 1.8240 N MGN H 0.381133 0.6000 H MGN CA 0.162677 1.9080 CT MGN CB1 -0.114275 1.9080 CT MGN CG -0.149020 1.9080 CT MGN CD 0.678961 1.9080 C MGN OE1 -0.587877 1.6612 O MGN NE2 -0.652446 1.8240 N MGN HN21 0.323388 0.6000 H MGN HN22 0.323388 0.6000 H MGN HG1 0.075233 1.4870 HC MGN HG2 0.075233 1.4870 HC MGN HB11 0.065402 1.4870 HC MGN HB12 0.065402 1.4870 HC MGN CB2 -0.088891 1.9080 CT MGN HB21 0.056951 1.4870 HC MGN HB22 0.056951 1.4870 HC MGN HB23 0.056951 1.4870 HC MGN C 0.662403 1.9080 C MGN O -0.522150 1.6612 O MHS N -0.861648 1.8240 N MHS H 0.386522 0.6000 H MHS CA 0.138118 1.9080 CT MHS CB -0.041273 1.9080 CT MHS CG -0.223025 1.9080 CC MHS ND1 -0.189509 1.8240 N MHS CE1 0.412165 1.9080 CR MHS NE2 -0.634888 1.8240 NB MHS CD2 0.315013 1.9080 CV MHS HD2 0.045970 1.4090 H4 MHS HE1 0.065775 1.3590 H5 MHS CM 0.019389 1.9080 CT MHS HM1 0.060147 1.3870 H1 MHS HM2 0.060147 1.3870 H1 MHS HM3 0.060147 1.3870 H1 MHS HB2 0.075261 1.4870 HC MHS HB3 0.075261 1.4870 HC MHS HA 0.092461 1.3870 H1 MHS C 0.662029 1.9080 C MHS O -0.518061 1.6612 O GL3 N -0.945483 1.8240 N GL3 H 0.337358 0.6000 H GL3 CA 0.067135 1.9080 CT GL3 HA1 0.083404 1.3870 H1 GL3 HA2 0.083404 1.3870 H1 GL3 C 0.510244 1.9080 C GL3 S -0.351867 2.0000 SH GL3 HS 0.215804 0.6000 HS AGM N -0.876004 1.8240 N AGM H 0.389419 0.6000 H AGM CA 0.144821 1.9080 CT AGM CB -0.076958 1.9080 CT AGM CG -0.090528 1.9080 CT AGM CD 0.035046 1.9080 CT AGM CE2 -0.127068 1.9080 CT AGM HE21 0.067033 1.4870 HC AGM HE22 0.067033 1.4870 HC AGM HE23 0.067033 1.4870 HC AGM NE1 -0.385857 1.8240 N AGM CZ 0.540425 1.9080 CD AGM NH1 -0.493055 1.8240 NT AGM HH11 0.336747 0.6000 H AGM HH12 0.336747 0.6000 H AGM NH2 -0.493055 1.8240 NT AGM HH21 0.336747 0.6000 H AGM HH22 0.336747 0.6000 H AGM HE1 0.331594 0.6000 H AGM HD 0.071844 1.3870 H1 AGM HG2 0.088851 1.4870 HC AGM HG3 0.088851 1.4870 HC AGM HB2 0.058444 1.4870 HC AGM HB3 0.058444 1.4870 HC AGM HA 0.097612 1.3870 H1 AGM C 0.597941 1.9080 C AGM O -0.508854 1.6612 O SMC N -0.842470 1.8240 N SMC H 0.395489 0.6000 H SMC CA 0.157962 1.9080 CT SMC CB -0.064885 1.9080 CT SMC SG -0.266092 2.0000 S SMC CS -0.039324 1.9080 CT SMC HCS1 0.071659 1.3870 H1 SMC HCS2 0.071659 1.3870 H1 SMC HCS3 0.071659 1.3870 H1 SMC HB2 0.082651 1.3870 H1 SMC HB3 0.082651 1.3870 H1 SMC HA 0.112435 1.3870 H1 SMC C 0.678756 1.9080 C SMC O -0.512148 1.6612 O

jbardhan commented 2 months ago

Hi,

Thank you for the detailed issue report. That provides several helpful starting points for us; I'll go look at --protonate-all

Are you able to share the complete command-line call that you made to PDB2PQR? Or, if you used the web server, can you please share all the parameter choices that you made?

Thanks very much, Jay

HeheHahaHoHoHo commented 2 months ago

Hi Jay, I am using the command-line approach using something as simple as pdb2pqr 1hbn.pdb 1hbn.pqr --ff=Amber i have tried to use --protonate-all which im not sure it changes anything tbh. I wanted to check 1 important detail, i assumed pdb2pqr adds H based on pka but does the definition of my residue affect the addition of H (i.e HIE vs HID) essentially, does the algo follow the definition of residue or consider only pka?

Thanks for any assistance