Dear all
I am trying to do some minimizations of a phosphorylated protein in a histidine (modification at the NE2) through a patch. To model phospho-histidine at the NE2, I need to delete the HE2 proton and protonate the ND1.
I've modified the his_methylated.txt patch (which I'm attaching) but it seems that whenever I try to delete the NE2 proton the minimization crashes:
caught exception
[ERROR] EXCN_utility_exit has been thrown from: src/core/chemical/Patch.cc line: 333
ERROR: Failed to apply a PatchOperation to HIS_D
The system works fine if I keep the HE2 proton, but it is clearly not correct! I suspect that rosetta cannot handle the HIS_E tautomer by default...is that right? how can I fix this. The residue in the protein is named as HIS, should I change it?
thanks in advance!
felipet
Attachment | Size |
---|---|
![]() | 2.66 KB |
Rosetta handles histidine tautomers with two ResidueTypes / params files for histidine: HIS and HIS_D. By elimination, HIS must be HIS_E.
Probably your patch is being applied to both HIS and HIS_D when you want it only applied to one of those. I don't know how to tell it to patch only one and not the other.
First I think try deleting your whole "general case", since you know what you want. Second, look at some of the HIS-related patches already in the database - see how VirtualProteinResidue.txt handles HIS and HIS_D separately, see if you can copy that selection nomenclature?
Thanks smlewis
I am still blocked!. Following your recommendation I add the selectors used in VirtualProteinResidue.txt (NOT PROPERTY TAUTOMER for the HIS). Using the following patch the relax also crashes, it is like trying to use the HIS_D tautomer and not the HIS:
ERROR: Failed to apply a PatchOperation to HIS_D
ERROR:: Exit from: src/core/chemical/Patch.cc line: 333
his_phosphorylated:
NAME phosphorylated
TYPES PHOSPHORYLATION
## general requirements for this patch
BEGIN_SELECTOR
PROPERTY PROTEIN
NAME3 HIS
AA HIS
NOT VARIANT_TYPE PHOSPHORYLATION
NOT VARIANT_TYPE PROTONATED
NOT VARIANT_TYPE DEPROTONATED
END_SELECTOR
## now we search for a case that matches the residue, take the first one
## so put generic case last
BEGIN_CASE #### HIS ##########################################
BEGIN_SELECTOR
NOT PROPERTY TAUTOMER
AA HIS
END_SELECTOR
SET_IO_STRING NEP X
SET_INTERCHANGEABILITY_GROUP NEP
## these are the operations involved
DELETE_ATOM HE2
ADD_ATOM P Phos X 1.50 ## Best guess from the small molecule ligand params file generator molfile_to_params.py
ADD_ATOM O1P OOC OC -0.78 ## The charge is taken from the free oxygen atoms of the phosphate backbone in DNA residues
ADD_ATOM O2P OOC OC -0.78
ADD_ATOM O3P OOC OC -0.78
ADD_BOND NE2 P
ADD_BOND P O1P
ADD_BOND P O2P
ADD_BOND P O3P
...