Skip to content

005 Chemical Preparation

Jordy Homing Lam edited this page Jan 30, 2021 · 7 revisions

Chemical Table

I will literally begin every docking project with this protocol as a preliminary.

  1. Calculate all properties
  2. Standardize molecules
  3. Enumerate Tautomer, Stereoisomer, Charges, Conformers

Mouse Clicks

  • List of possible properties can be viewed by mouse click Chemistry > Calculate Properties. Many properties should be pre-calculated and inspected if necessary. They can also be filtered after docking.
  • Hydrogen and Charge Groups: Some chemical moiety could carry questionable charge group (e.g. is there a hydrogen on phosphate?). Building of these hydrogen should be inspected with careful SAR analysis. Hydrogens can be built systematically by altering pH
  • ICM also has nice built-in to visualise the chemical space. Most of these algorithm are quick and robust.
  • https://molsoft.com/gui/chemical-spreadsheets.html

Standardize molecule

modify t.mol delete salt modify t.mol delete salt simple delete hydrogen t.mol modify t.mol auto standardizeTautomers t.mol

Calculate properties

add column t function="Nof_Chirals(mol,'any')" index=2 name="nof_Chirals" append
add column t function="Nof_Fragments(mol,'')" index=2 name="nof_Fragments" append
add column t function="Nof_Molecules(mol)" index=2 name="nof_Molecules" append
add column t function="Nof_Atoms(mol,'
')" index=2 name="nof_Atoms" append
add column t Find(t.mol,problem) index=2 name="badGroups" append
add column t Descriptor(t.mol,number,topology) index=2 name="topological_Descriptors" append
add column t Descriptor(t.mol,number,bond) index=2 name="bond_Counts" append
add column t Descriptor(t.mol,number,atom) index=2 name="atom_Counts" append
add column t function="Smiles(mol,'unique')" index=2 name="smiles" append
add column t function="DrugLikeness(mol)" index=2 name="drugLikeness" append
add column t function="MoldHf(mol)" index=2 name="moldHf" append format="%.2f"
add column t function="MolVolume(mol)" index=2 name="molVolume" append format="%.2f"
add column t function="MolArea(mol)" index=2 name="molArea" append format="%.2f"
add column t function="MolPSA(mol)" index=2 name="molPSA" append format="%.2f"
add column t function="MolLogS(mol)" index=2 name="molLogS" append format="%.2f"
add column t function="MolLogP(mol)" index=2 name="molLogP" append format="%.2f"
add column t function="IupacName(mol)" index=2 name="iupacName" append
add column t function="MolFormula(mol)" index=2 name="molFormula" append
add column t function="MolWeight(mol)" index=2 name="molWeight" append format="%.3f" add column t function="predCovfunc(mol)" index=2 name="covalentProdrug_Groups" append vector
add column t function="ToxScore(mol,yes,yes)" index=2 name="tox_Score" append vector
add column t function="predictModelsCol(mol,"mcpPGPSUBST")" index=2 name="molPGPSUBST" append vector
add column t function="predictModelsCol(mol,"mcpPGPINHIB")" index=2 name="molPGPINHIB" append vector
add column t function="predictModelsCol(mol,"mcpPAMPA")" index=2 name="molPAMPA" append vector
add column t function="predictModelsCol(mol,"mcpPAINS")" index=2 name="molPAINS" append vector
add column t function="predictModelsCol(mol,"mcpLD50")" index=2 name="molLD50" append vector
add column t function="predictModelsCol(mol,"mcpHERG")" index=2 name="molHERG" append vector
add column t function="predictModelsCol(mol,"mcpHALFLIFE")" index=2 name="molHALFLIFE" append vector
add column t function="predictModelsCol(mol,"mcpCACO2")" index=2 name="molCACO2" append vector
add column t function="funcChemCloudMapMol(mol,'mol','name')" index=2 name="name" append vector
add column t function="Icm::InChi(mol,'',key)" index=2 name="inChiKey" append vector
add column t function="Icm::InChi(mol,'')" index=2 name="inChI" append vector
add column t function="Min(Icm::Predict(mol,'MolpKaAcid',only),'>14')" index=2 name="pKa_ma" append
add column t function="Max(Icm::Predict(mol,'MolpKaBase',only),'<0')" index=2 name="pKa_mb" append
add column t function="MolCharge(mol,7.0,'total')" index=2 name="molCharge_total" append
add column t function="Nof_HBD(mol)" index=2 name="nof_HBD" append
add column t function="Nof_HBA(mol,yes)" index=2 name="nof_HBA" append
add column t function="Nof_RotB(mol)" index=2 name="nof_RotB" append
add column t function="Max_Fused_Rings(mol,no)" index=2 name="max_Fused_Rings" append
add column t function="Min_Ring_Size(mol)" index=2 name="min_Ring_Size" append
add column t function="Max_Ring_Size(mol)" index=2 name="max_Ring_Size" append

Annotate by any common functional group

add column t Find( t.mol s_icmhome + "FUNCGROUPS.sdf" problem ) name="funcgroup"

Annotate by any reactive compound

add column t Find( t.mol s_icmhome + "CHEMFILTER.sdf" problem ) name="chem_alerts"

Calculate pkA each atom

chemCalcPKA Name( variable t.mol ) yes

Enumerate Formal charge by pH7+-5

enumerate charge t 7. window = 5.00 name = Name( Name( variable t ) + "_charges" unique ) t = t_charges

Enumerate Tautomer

enumerate tautomer t.mol name = Name( Name( variable t ) + "_tauto" unique ) filter keep add column t_tauto Predict( t_tauto.mol, "MoldHf" ) name="ddHf" sort t_tauto.idx t_tauto.ddHf I_out = Min( index t_tauto.ddHf group t_tauto.idx ) t = t_tauto

Enumerate Stereoisomer

enumerate chiral t.mol name = Name( Name( t table ) + "_stereo" unique ) center = 0 t = t_stereo

Enumerate 5 Conformers

confGenBG t Index( t selection all ) 5 15. 1. yes no no yes no yes no "diel=" + 78.5 + " maxener=" + 10.

Markush

http://www.molsoft.com/gui/combinatorial-chemistry.html

Enumerate Reactions