You are here

Histidine protonation

12 posts / 0 new
Last post
Histidine protonation

Hello, everyone!

I have histidines in my protein and they seem not to have not a usual "HIS" protonation state. I think it is in "HSD" state, but this seems to be noncanonical. I found the HIS_P.params somewhere in the database, but it doesn't seem to work.

What should I do?


Post Situation: 
Mon, 2016-09-26 13:15

Histidines in Rosetta are assumed to be in the neutrally charged state. (No net electric charge.) This matches the case for the vast majority of histidines in normal protein structures.

The complication is that histinine can have two tautomers in the neutral state: having the proton on the epsilon nitrogen of the ring, or the proton on the delta nitrogen. Certain programs make a distinction between the two states, calling one HIE and the other HID (or HSE/HSD). Rosetta will actually automatically consider both states, and calls both states "HIS". (In three letter codes: in the full specification it calls the epsilon version HIS, and the delta protonated version HIS_D, but there's still interchangable.)

Biologically, both of these states are accessible, and will readily interconvert with each other, depending on the structure of the surrounding residues, and where the hydrogen bonding donors and acceptors are. This is why Rosetta will freely interconvert between the two - it matches what happens biologically. 

The HIS_P.params in the database is for the *doubly* protonated variant of histidine - that is, the version which carries a net postive (+1) charge. By default, Rosetta will not consider this charged state. It's only for the pKa/pH-mode code that the protonated variant will be considered. You can force regular (non pH-mode) Rosetta to read in residues as charged histidine, but its not commonly done, and needs special contorsions. 

Mon, 2016-09-26 13:34

I'm not sure what the question is.  Do you mean "I want the deprotonated histidine" or "I want the doubly-protonated histidine"?  Rosetta handles the normal singly protonated tautomers automatically.  Try overwriting that residue in your input structure with the three-letter code that matches the histidine protonation you wanted, for the unusual-charge states.

Mon, 2016-09-26 13:36

Well, now I understand the problem better)

The thing is that renaming HIS in any of singly protonated names: HIE, HID, HSD, HSE gives me an "unrecoginsed residue error". And about double-protonated histidine I need to think a bit, cause I couldn't run relax application with -extra_res_fa HIS_P.params, it gave me the same error.


Tue, 2016-09-27 03:51

Rosetta doesn't force the distinction between the protonation variants. While other programs might force you to choose a protonation state and stick with it, Rosetta automatically chooses which (neutral) protonation variant it will use in each situation, and it's difficult or impossible to force a particular protonation state: whatever the best (lowest energy) variant is for that position, in that particular context, will be the one used. That's why HIE/HID/HSD/HSE don't work with Rosetta: specifying a particular protonation state is somewhat nonsensical in the approach Rosetta uses.

Regarding forcing in a double-protonated (positively charged) histidine, an "easy" way to do it is to make a copy of HIS_P.params, change the IO_STRING name to something like 'HIP', and then make the corresponding change (to HIP) in the input PDB. 


Tue, 2016-09-27 13:15

Well, I changed something, but it still doesn't work..

#rosetta residue topology file
#protonated HIS by Krishna
#partial charges from CHARMM27
TYPE POLYMER #residue type
ATOM  N   Nbb  NH1  -0.47

It cant't recognise it.
I add the parameters with -extra_res_fa HIP.params

Thu, 2016-09-29 12:43

I can't add more to this other than to say I've struggled with this same issue (see thread:, so I'd definitely be interested in hear how to get this to work.  In my case I really need the doubly protonated form for my work (a protonated his is required for binding).

Fri, 2016-09-30 09:12

When you say "can't recognize it", what error message is it giving you? Is it something with the reading of the params file, or are you talking about loading of the protein?

One issue I immediately see is that you don't have a single letter code in the IO_STRING line. You'll want something like 



Also, depending on the protocol you're using, you may need to also provide a centroid-mode version of the params file passed to `-extra_res_cen` - To a first approximation, this is just the HIS centroid params file (Rosetta/database/chemical/residue_type_sets/centroid/residue_types/l-caa/HIS.params) with the NAME and IO_STRING lines changed appropriately. 

Fri, 2016-09-30 10:01

Well, I added H to that string, and I tried to use the centroid parameters with appropriate renaming. And still the same error.

protocols.relax.FastRelax: (0) ================== Using default script ==================
protocols.jd2.PDBJobInputter: (0) Instantiate PDBJobInputter
protocols.jd2.PDBJobInputter: (0) PDBJobInputter::fill_jobs
protocols.jd2.PDBJobInputter: (0) pushed 4KNF_1.pdb nstruct index 1
protocols.evaluation.ChiWellRmsdEvaluatorCreator: (0) Evaluation Creator active ...
protocols.jd2.PDBJobInputter: (0) PDBJobInputter::pose_from_job
protocols.jd2.PDBJobInputter: (0) filling pose from PDB 4KNF_1.pdb
core.chemical.ResidueTypeSet: (0) Finished initializing fa_standard residue type set.  Created 813 residue types
core.chemical.ResidueTypeSet: (0) Total time to initialize 0.123236 seconds.
Error: (0) ERROR: Exception caught by JobDistributor while trying to get pose from job '4KNF_1_0001'
Error: (0)

[ERROR] EXCN_utility_exit has been thrown from: src/core/io/pdb/ line: 1333
ERROR: No match found for unrecognized residue at position 55
Looking for residue with 3-letter code: HIP

Error: (0) Treating failure as bad input; canceling similar jobs
protocols.jd2.FileSystemJobDistributor: (0) job failed, reporting bad input; other jobs of same input will be canceled: 4KNF_1_0001


Sat, 2016-10-01 02:33

That was interesting to track down.

Apparently, in addition to changing the name, you'll need to comment out/delete the VARIANT PROTONATED and the AA HIS lines, and then copy the PROPERTIES line and the METAL_BINDING_ATOMS line from the standard HIS parameters to your HIP parameters. (Add the CHARGED entry from the PROPERTIES line in HIS_P.params to the copied line.)


Fri, 2016-10-14 14:08


I find different HIS.params from different file folder,and have different  PROPERTIES line and the METAL_BINDING_ATOMS lines


For example

At rosetta/main/database/chemical/residue_type_sets/fa_standard/residue_types/l-caa, it is



rosetta/main/database/chemical/residue_type_sets/fa_standard_pre_talaris2013/residue_types/l-caa is


(and not METAL_BINDING_ATOMS line )


Is it accroding to the score? Which version should I add?

Wed, 2017-12-20 19:18

The `fa_standard` one is the most recent one, and the one to model off of, unless you have compelling reasons not to.

The `fa_standard_pre_talaris2013` is from an older, "pre-talaris2013" version, and is not used by default.  It's only kept around for compatibility with certain commandlines and protocols which need access to the older version of the residue types.

Mon, 2018-01-15 15:37