Charging

(de)protonating groups likely to be charged at neutral pH

Molecular Databases like the wwPDB Chemical Component Dictionary normally have neutral forms of compounds that can be expected to be charged at neutral pH. For instance, carboxylic acids are protonated rather than forming a carboxylate ion.

By default, Grade2 examine the input molecule and charge a number of common groups by adding or removing a proton. If a group is charged then a WARNING message will be written to the terminal output (please see WARNING about charging example output). If the charging is not wanted then use the --no_charging command-line option and no alteration will be made to the input molecule.

Currently, Grade2 will charge the groups listed in the sections below.

If you want to model a ligand with a protonation state that is distinct from the standard charging scheme then use manual editing with Mercury as demonstrated by the FAQ How can I produce restraints for a ligand with a different protonation state or tautomer?.

Carboxylic acid(s) to carboxylate ion(s)

A SMARTS pattern [$([OX2H1][CX3]=O)] is used to detect neutral carboxylic acid and the proton is removed to leave a carboxylate ion.

For example, running grade2 for the PDB component PPI https://www.rcsb.org/ligand/PPI propanoic acid:

$ grade2 --PDB_ligand PPI

Produces the warning messages:

WARNING: Charging groups likely to be charged at neutral pH.
WARNING: ---- If you do not want this, rerun with the option: -N, --no_charging
        charging carboxylic acid(s) to carboxylate ion(s)
        remove proton HO2 and add negative charge to atom O2

The final molecule will be the carboxylate:

PPI.diagram.svg converted to png

rather than the original neutral PPI component:

PPI_neutral.diagram.svg converted to png

Phosphoric acid(s) to phosphate ion(s)

A SMARTS pattern [$([OX2H1][PX4]=O)] is used to detect phosphoric acids with a hydrogen atom and the proton is removed to leave a phosphate ion. If a phosphoric acid has multiple hydrogen atoms attached all are removed.

For example, running grade2 for the PDB component R1P https://www.rcsb.org/ligand/R1P ribose-1-phosphate:

$ grade2 --PDB_ligand R1P

Produces the warning messages:

WARNING: Charging groups likely to be charged at neutral pH.
WARNING: ---- If you do not want this, rerun with the option: -N, --no_charging
        charging phosphoric acid(s) to phosphate ion(s)
        remove proton HOP2 and add negative charge to atom O2P
        remove proton HOP3 and add negative charge to atom O3P

The final molecule will be the ribose-1-phosphate dianion with both the protons removed:

R1P.diagram.svg converted to png

rather than the original neutral R1P component:

R1P_neutral.diagram.svg converted to png

Alkylamine to alkylammonium

A SMARTS pattern [$([NX3;H2][CX4])] is used to detect nitrogen atoms with 2 hydrogen atoms attached that are also bonded to an SP3 carbon atom. A proton hydrogen atom is added in these cases.

For example, running grade2 for the PDB component 01R https://www.rcsb.org/ligand/01R:

$ grade2 --PDB_ligand 01R

Produces the warning messages:

WARNING: Charging groups likely to be charged at neutral pH.
WARNING: ---- If you do not want this, rerun with the option: -N, --no_charging
        charging alkylamine to alkylammonium
        add new proton H3 onto atom N19 (existing hydrogen atom_ids: H19, H2)

Notice that the name of the proton hydrogen added is given. The result is a cation:

01R.diagram.svg converted to png

rather than the original neutral 01R component:

01R_neutral.diagram.svg converted to png

notice that only the terminal -CH2-NH2 nitrogen atom is protonated with the other nitrogen atoms left alone.

Dialkylamine to dialkylammonium

A SMARTS pattern [$([NX3;H1]([CX4])[CX4])] is used to detect nitrogen atoms with a hydrogen atom attached that are also bonded to two SP3 carbon atoms. A proton hydrogen atom is added in these cases.

For example, running grade2 for the PDB component PIP https://www.rcsb.org/ligand/PIP piperidine:

$ grade2 --PDB_ligand PIP

Produces the warning messages:

WARNING: Charging groups likely to be charged at neutral pH.
WARNING: ---- If you do not want this, rerun with the option: -N, --no_charging
        charging dialkylamine to dialkylammonium
        add new proton HN1B onto atom N1 (existing hydrogen atom_ids: HN1)

Notice that the atom name of the proton hydrogen added is based on the atom name of the existing hydrogen. The resulting molecule is a cation:

PIP.diagram.svg converted to png

rather than the original neutral PIP component:

PIP_neutral.diagram.svg converted to png

In more complex molecules all piperidine rings will be charged like this.

Trialkylamine to trialkylammonium

A SMARTS pattern [$([NX3]([CX4])([CX4])[CX4])] is used to detect nitrogen atoms with no hydrogen atom attached that are also bonded to three SP3 carbon atoms. A proton hydrogen atom is added in these cases.

For example, running grade2 for the PDB component VIA https://www.rcsb.org/ligand/VIA Sildenafil:

$ grade2 --PDB_ligand VIA

Produces the warning messages:

WARNING: Charging groups likely to be charged at neutral pH.
WARNING: ---- If you do not want this, rerun with the option: -N, --no_charging
        charging trialkylamine to trialkylammonium
        add new proton HN17 onto atom N17 (existing hydrogen atom_ids: None)

Notice that the atom name of the proton hydrogen added is based on the atom name of the nitrogen. The resulting molecule is a cation:

VIA.diagram.svg converted to png

rather than the original neutral VIA component:

VIA_neutral.diagram.svg converted to png

Notice that the other piperazine nitrogen atom is not protonated as it is attached to a sulfur atom. The small molecule structure for Sildenafil citrate monohydrate (Yathirajan et al., 2005) CSD entry: FEDTEO shows that Grade2 protonates the correct nitrogen atom.

Charging multiple groups

If the input molecule matches more than one of the charging patterns above then each will be applied. For instance, phosphotyrosine https://www.rcsb.org/ligand/PTR will be output with the amino acid in a zwitterionic with phosphate having two negative charges:

PTR.diagram.svg converted to png

The warning messages show that in this case show that 3 charging patterns are applied:

WARNING: Charging groups likely to be charged at neutral pH.
WARNING: ---- If you do not want this, rerun with the option: -N, --no_charging
        charging phosphoric acid(s) to phosphate ion(s)
        charging carboxylic acid(s) to carboxylate ion(s)
        charging alkylamine to alkylammonium
        remove proton HXT and add negative charge to atom OXT
        remove proton HO2P and add negative charge to atom O2P
        remove proton HO3P and add negative charge to atom O3P
        add new proton HN3 onto atom N (existing hydrogen atom_ids: H, HN2)