I am relaxing a dimer structure which contains one modified residue per subunit. Relaxing a monomer with one modified residue is OK, as is relaxing a dimer where the modified residue has been removed from the input PDB file. However, as soon as there are two copies of the modified residue in the input PDB or during relax run (a dimer or a monomer with C2 symmetry enabled) then the calculation run into this dead end:
ERROR: dis==0 in pairtermderiv!
ERROR:: Exit from: src/core/scoring/methods/PairEnergy.cc line: 468
Reading the offending code line it appears that an interatomic vector is sensed as having a length of zero hence the error. To the best of my knowledge, the input dimer structure I am using, even with H added (using reduce -BUILD), has no interatomic distance that short nor any other serious clash. I also checked there were no duplicated residues.
Since the problem goes away as soon as I remove the modified residue, I am guessing that one is the problem... even though it gets relaxed when there is a single copy of it during the run.
I am stuck at this point, so any help will be much appreciated!
PS BTW the above error kicks in right after the following output lines:
protocols.relax.FastRelax: CMD: repeat 8328.73 0 0 0.44
core.pack.interaction_graph.interaction_graph_factory: Instantiating DensePDInteractionGraph
core.pack.pack_rotamers: built 30895 rotamers at 743 positions.
core.pack.pack_rotamers: IG: 103244808 bytes
This suggests this problem might be connected to packing rotamers (I have not defined rotamers for my modified residue) but again, the correct termination of the relax job using one copy of the modified residue would speak against that...