Late last year, I reported a problem with the CSD API when setting constraints between the protein file atoms (which include a cofactor) and the ligand (to be docked) atoms which is loaded as a separate molecule. After you guys were able to duplicate the problem, it was reported to be fixed.

   see "distance constraint from fixed cofactor to substrate (ligand to be docked)" in the Discovery section of the forum, Nov 26, 2018.

I got side tracked with another project and now I'm back on the original project where I found the issue. The good news is that I can now set a distance constraint between the cofactor (included with the protein molecule) and the ligand (a separate molecule). The bad news is that even though it runs, the scores are all messed up as a result of the DE(con) having a value of -1777.79 for all poses:

  debug msg:

      Distance constraint from cofactor H, Coords(x=13.385, y=10.697, z=11.012), to ligand C, Coords(x=-8.597, y=3.842, z=0.108), range 2.0 to 5.0

  rank file output data (a couple of rows):

  Mol No Score S(PLP) S(hbond) S(cho) S(metal) DE(clash) DE(tors) DE(con) intcor time

  4 -1728.75 -50.21 0.00 0.00 0.00 0.00 0.58 -1777.79 0.00 0.812
  1 -1728.86 -47.31 0.99 0.00 0.00 0.00 0.68 -1777.79 0.00 0.000

The coordinates shown in the debug message are the original ones when the protein and ligand files are loaded. I printed them to make sure the right atoms were being passed to the constraint, and they are.

Everything works fine when the constraint is not set or all atoms in the constraint are in the protein file. You were able to duplicate the original problem, see original forum entry listed earlier, so hopefully you can use a similar approach to duplicate the scoring issue. BTW, setting a constraint from a protein residue atom to the ligand also has the same issue. I'm using Python API 2019 (same computer info as previous issue). Let me know if you need any additional information.



Dear Hector,

Apologies for the late response. I was trying to dig out the use case I used to reproduce the original bug to see if it still works and indeed it does. 

Here is an extract from the .rnk file:

Mol No Score S(PLP) S(hbond) S(cho) S(metal) DE(clash) DE(tors) DE(con) intcor time

8 90.15 -85.93 1.87 0.00 0.00 0.00 1.23 -0.00 0.89 0.999
1 84.77 -88.16 2.65 0.00 0.00 9.91 1.44 -0.00 0.89 0.000
5 76.84 -76.61 1.85 0.00 0.00 4.29 0.88 -0.35 0.89 0.000
6 75.09 -72.98 1.98 0.00 0.00 0.00 2.39 -0.13 0.89 0.000

Are you able to share any of your files via

I look forward to hearing from you.






I was out of the office for a couple of weeks and just got back today. I was hoping that it failed for you with the files you had used since the original files that I have the problems with are confidential and I cannot send them to you. I will try to make it fail using some files from PDB. This is not ideal for a lot of reasons but I guess I don't have too many other options.


I sent structures and sample code to

Dear Hector,

Thanks for sending the files. I believe I found the solution to your problem and I've sent a response via the support system.

In the use case provided, the ligand residue name was "PHE" which made GOLD thinking it was part of the protein and messed up the constraint setup. If the ligand residue name was renamed to something other than "PHE" everything worked smoothly.

Best regards,



Thanks for the prompt reply. I verified that a rename fixed the issue unfortunately that was a ligand that I got from some other application's sample to avoid sending confidential data. I get the same problem when I use one of my ligands named B4C. I renamed the PHE ligand to B4C and it ran just fine but when I used the B4C ligand it went back to having the score issue (see below) which is really odd. I also used CCDC's SAH ligand and it did not have an issue.

I figured there is some additional issues with CCDC handling the B4C mol2 file and after manually looking at the mol2 file contents, the issue turns out to be this one line:


Once I changed UNK to B4C, everything works. Unfortunately, there are no errors or warnings from the API, and it only happens when I use the cofactor-ligand in the constraint which is why I assumed it was an issue with the update. Anyway, thanks for your help, it all seems to be working now. May want to add some warning in the log or add the UNK issue and solution in some reference document since it will probably save someone a significant amount of time.




Fitness list for ligand file B4C.mol2, molecule 1

Mol No Score S(PLP) S(hbond) S(cho) S(metal) DE(clash) DE(tors) DE(con) intcor time

3 -3102.19 -44.58 1.64 0.00 0.00 0.00 0.63 -3150.44 0.00 0.031
2 -3103.31 -42.46 1.88 0.00 0.00 0.00 0.49 -3150.44 0.00 0.047
1 -3103.63 -42.14 1.70 0.00 0.00 0.00 0.22 -3150.44 0.00 0.000

Average Values:

-3103.04 -43.06 1.74 0.00 0.00 0.00 0.44 -3150.44 0.00 0.026

You must be signed in to post in this forum.