For one of my project I need to hydroxide (OH-) and oxide (O2-). EnzDes is failing to take it.
Error: caught exceptionFile: src/numeric/xyzVector.hh:665Cannot normalize xyzVector of length() zero
NAME ONN IO_STRING ONN w TYPE LIGAND AA UNK ATOM O Owat OH1 -2.000 ATOM V1 VIRT X 0.00 ATOM V2 VIRT X 0.00 BOND O V1 BOND O V2 NBR_ATOM O NBR_RADIUS 3.2 ICOOR_INTERNAL O 0.000000 0.000000 0.000000 O V1 V2 ICOOR_INTERNAL V1 0.000000 180.000000 0.957200 O V1 V2 ICOOR_INTERNAL V2 0.000000 75.480000 0.957200 O V1 V2
NAME XOH IO_STRING XOH w TYPE LIGAND AA UNK ATOM O Owat OH1 -1.050 ATOM H1 Hwat H 0.050 ATOM V1 VIRT X 0.00 BOND O H1 BOND O V1 NBR_ATOM O NBR_RADIUS 3.2 ICOOR_INTERNAL O 0.000000 0.000000 0.000000 O H1 V1 ICOOR_INTERNAL H1 0.000000 180.000000 0.957200 O H1 V1 ICOOR_INTERNAL V1 0.000000 75.480000 0.957200 O H1 V1
There's a qualified "yes" to the question of whether Rosetta can support hydroxide and oxide. It should be able to read it in if done properly, but the energy function may not be optimized to give you the best results with it. (It should make a decent effort of modeling it, but the exact balance of sterics, electronics and hydrogen bonding may or may not be exact. -- At the very least it should be better than leaving it out, though.)
There's some internal limitations in the Rosetta representation which means that residues should have at least three atoms. For those residues with only one or two atoms, they thus need to be padded out with virtual atoms in distinct locations. -- You've done that successfully, though, virtualizing the hydrogens you've removed.
I'm not 100% sure where the "Cannot normalize xyzVector of length() zero" is coming from (if you have more of the backtrace/error message, that can help). Typically this comes from the hydrogen bonding code, where you have issues with atoms overlapping, or if there's an issue with figuring out the bonding partners.
Is it just the oxide which is giving you problems, or is it both params files? If it's just the oxide, I'm wondering if it's the use of the Owat atom type, which is listed as a hydrogen bond donor. Hbond donors may expect to have a polar hydrogen attached, and if that's not the case, it may be choking. I'd try changing the atom type there to an OOC (carboxylate oxygen) and see if that fixes things. -- I'm not sure if that's your issue, though, as I don't get the same error when I test your params files locally with just scoring in Rosetta3.9.
If the hydroxide params file is giving you issues in isolation, I'm not quite sure what might be up. I'd recommend posting more of the error log here, to see if there's some clues there, or otherwise giving more information about how you're running the protocol.
Thanks for the reply. As you mentioned oxide works fine if we change it to OOC type. But hydroxide didn't worked.
Though by changing few parameters in flags, namely, removing "cst_opt" and "cst_design" it works fine.
my flags previously:
Is it correct to remove those two?