# Do Rosetta support hydroxide(OH-) and oxide(O2-) params?

3 posts / 0 new
Do Rosetta support hydroxide(OH-) and oxide(O2-) params?
#1

Hello All,

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

Oxide Params

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

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

Hydroxide params

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

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

Post Situation:
Thu, 2018-08-16 21:15
dasdevashishdas

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.

Mon, 2018-08-20 09:20
rmoretti

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:

-s Protein.pdb
-extra_res_fa XOH.params ONN.params
-resfile some.resfile
-enzdes
-cst_design
-cst_opt
-cst_min
-cstfile constraint.cst
-bb_min
-lig_packer_weight 1.8
-design_min_cycles 10
-packing:soft_rep_design
-packing:ex1
-packing:ex2
-out:file:o enz_score.out
-nblist_autoupdate
-unboundrot Protein.pdb
-nstruct 2
-nproc=20
-mute core.io.database core.scoring.NeighborList