Dear Alexandre,
I am trying to run the local version of HADDOCK2.5 on a protein-peptide complex using distance restraints on hydrogen atoms. However, I have encountered an issue where HADDOCK changes the hydrogen atom names upon inputting the PDB file. As a result, the restraints I define no longer correspond correctly to the updated structure.
Is there a way to translate a given PDB structure into the format that HADDOCK expects so that I can adjust my restraints accordingly?
Initially, I considered defining the restraints based on a demo run (using the begin
file), but I noticed that the hydrogen atoms are positioned differently in the begin
file compared to my original structure. While these differences are small, they are crucial for the accuracy of my restraints.
I would greatly appreciate any guidance on how to resolve this issue.
Thank you
Your atom naming should indeed match what HADDOCK uses, which is standard nomenclature.
What kind of name changes do you see?
As for the hydrogen atom positions, it would be strange to see large differences (except for hydroxyl groups).
You would have to have very accurate distance restraints (with 0 error bounds) for this to be an issue…
Also make sure to keep all hydrogen if you define restraints to those.
Thank you for your response. I wanted to clarify that my input PDB file already contains hydrogen atoms, but HADDOCK regenerates them, leading to significant differences.
For example, in my original structure, the hydrogen atoms HH21 and HH22 were positioned in a way that resulted in a 2.7 Å distance from the atom HA in a proline residue. However, after HADDOCK’s processing, their positions changed significantly, increasing the distance to 4.3 Å, as shown in the attached figure.
This discrepancy is critical for my distance restraints, as the original values are no longer valid after HADDOCK modifies the hydrogen positions.
Would you be able to advise on how to ensure that HADDOCK retains the hydrogen positions from the input structure or how I can correctly adjust my restraints to account for these changes?
Could it be simply a nomenclature issue? A swap of HH21 and HH22?
When running locally you could edit the generate.inp
file in the protocols directory, look for the following lines:
{* which hydrogens to build *}
{+ choice: "all" "unknown" +}
{===>} hydrogen_build="all";
And change it to “unknown”
I tried to make the following changes:
In generate.inp: hydrogen_build=“unknown”
And in run.cns: delenph=false;
And the run failed with the error:
[2025-03-17 21:45:20] FIX: Modifying random seed for it 0 structure 92
[2025-03-17 21:45:20] Waiting to restart job…
[2025-03-17 21:45:20] stage 0: 909 structures remaining, 17 running, 91 completed, 1000 t otal
[2025-03-17 21:45:20] stage 0: 908 structures remaining, 18 running, 92 completed, 1000 t otal
[2025-03-17 21:45:20] stage 0: 907 structures remaining, 18 running, 93 completed, 1000 t otal
[2025-03-17 21:45:20] FIX: Modifying random seed for it 0 structure 95
[2025-03-17 21:45:20] Waiting to restart job…
[2025-03-17 21:45:20] HADDOCK has detected an error
[2025-03-17 21:45:20] Check the FAILED file in /home/qnt/drorimi2/generat_hydrogens/4eik/ch eck_haddock_restraints/run_correct_hydro2
[2025-03-17 21:45:20] Stopping…
[2025-03-17 21:45:20] Cleaning up the run directory…
Only files for structure #1 will be kept…
[2025-03-17 21:45:21] ##################################################################### #########
[2025-03-17 21:45:21] Finishing HADDOCK
[2025-03-17 21:45:21] Au revoir. Tot ziens. Bye bye.
(the FAILED file is empty)
In this run, the structure in the begin file is different than the original structure- including the heavy atoms (which were the same before). Is there another change I should make?
In addition, the changes are more significant than just a swap between HD21 and HD22. HADDOCK modifies multiple hydrogen atom names, including: H to HN, HB3 to HB1, and several other similar changes. These modifications make it very difficult to manually adjust the restraints. Therefore I am looking for an automated way to ensure my restraints remain valid after HADDOCK processes the structure? Or is there a way to force HADDOCK to retain the original hydrogen naming scheme?
Thank you!
Is the hydrogen bond you are originally referring to an internal one?
Then you most likely have a nomenclature problem.
Re-generating hydrogens is a rather trivial thing to do.
Where is your input structure coming from?
The original structure is from the PDB. Is there a way to rename the hydrogens to the “correct” HADDOCK form while keeping their exact location?
Did you check if the distance to the other hydrogen would be ok?
If it is only a nomenclature issue (HH21/HH22), it is a non-problem …
There are more problems, such as terminal atoms and much more.
Also, I have several PDB’s that each have different syntax so it will be very hard to fix them all, so I am looking for an efficient way to do this
Again a nomenclature issue…
And if the termini are not close the binding site, then why bother…
PS: HADDOCK will regenerate any missing atom