.. highlight:: none .. _charging: ******** 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 :ref:`WARNING about charging example output`). If the charging is not wanted then use the :ref:`--no_charging ` command-line option and no alteration will be made to the input molecule. .. _`wwPDB Chemical Component Dictionary`: https://www.wwpdb.org/data/ccd 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 :ref:`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: .. image:: images/PPI.diagram.svg.png :width: 150 :alt: PPI.diagram.svg converted to png rather than the original neutral ``PPI`` component: .. image:: images/PPI_neutral.diagram.svg.png :width: 150 :alt: PPI_neutral.diagram.svg converted to png .. _`SMARTS`: https://en.wikipedia.org/wiki/SMILES_arbitrary_target_specification 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: .. image:: images/R1P.diagram.svg.png :width: 300 :alt: R1P.diagram.svg converted to png rather than the original neutral ``R1P`` component: .. image:: images/R1P_neutral.diagram.svg.png :width: 300 :alt: 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: .. image:: images/01R.diagram.svg.png :width: 300 :alt: 01R.diagram.svg converted to png rather than the original neutral ``01R`` component: .. image:: images/01R_neutral.diagram.svg.png :width: 300 :alt: 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: .. image:: images/PIP.diagram.svg.png :width: 150 :alt: PIP.diagram.svg converted to png rather than the original neutral ``PIP`` component: .. image:: images/PIP_neutral.diagram.svg.png :width: 150 :alt: PIP_neutral.diagram.svg converted to png In more complex molecules all piperidine rings will be charged like this. .. _charge_VIA: 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: .. image:: images/VIA.diagram.svg.png :width: 400 :alt: VIA.diagram.svg converted to png rather than the original neutral ``VIA`` component: .. image:: images/VIA_neutral.diagram.svg.png :width: 400 :alt: 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: .. image:: images/PTR.diagram.svg.png :width: 300 :alt: 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)