Sie sind auf Seite 1von 26

American Chemical Society

National Meeting, Chicago 2007

Chemical Terms, a Language for Cheminformatics


Gyrgy Pirok

Content

Problems to solve Property calculations, the plugin system The Chemical Terms language Applications

Summary

Problems to Solve
Virtual reactions

How can we detect activated/deactivated sites, regioselectivity or potential side reactions?


How can chemists improve a virtual reaction if it provides unfeasible products?

Filtering Thousands of predictive calculations, topological indices, and many "likeness" rules are published. Which ones of them should be supported by our database tools? How could chemists combine these predictions during structure searching? How could chemists use their existing property calculations inside ChemAxon tools?

Problems to Solve
Pharmacophore mapping What pharmacophore types should we define? Should we define pharmacophore types using functional group lists or property calculations? How to extend the definitions?

Random evolutionary de Novo drug design What goal function should we set? How to define a custom goal function including desired physicochemical properties?

The Chemical Terms Pyramid

Applications Chemical Terms Evaluator

Plugin System

Property Calculations

Property Calculations

Plugins are Accessible


GUIs SQL Cartridge Java API

command line tools

The Plugin System is Extensible


acceptor acceptorCount acceptorSiteCount acidicpKa acidicpKaLargeModel aliphaticAtom aliphaticAtomCount aliphaticBondCount aliphaticRingCount angle aromaticAtom aromaticAtomCount aromaticBondCount aromaticElectrophilicityOrder aromaticNucleophilicityOrder aromaticRingCount array asymmetricAtom asymmetricAtomCount atno atomCount atomicPolarizability averagePolarizability balabanIndex basicpKa basicpKaLargeModel BCUT bond bondCount bondType canonicalResonant canonicalTautomer carboaromaticRingCount carboRingCount chainAtom chainAtomCount chainBond chainBondCount charge chiralCenter chiralCenterCount composition conformer conformerCount conformers connected connectedGraph connections count cxsmarts cxsmiles cyclomaticNumber dihedral dissimilarity distance distanceDegree donor donorCount donorSiteCount dotDisconnectedFormula doubleBondStereoisomer doubleBondStereoisomerCount doubleBondStereoisomers dreidingEnergy eccentricity electrophilicLocalizationEnergy enumeration enumerationCount enumerations exactMass field filter formalCharge formula fusedAliphaticRingCount fusedAromaticRingCount fusedRingCount hararyIndex hasValidConformer hydrogenCount heavy heteroaromaticRingCount heteroRingCount hyperWienerIndex isoelectricPoint isotopeComposition isotopeFormula largestAtomRingSize largestRingSize logD logP logPIncrement logS logSMicro logSNeutral logSTrue lowestEnergyConformer majorMicrospecies majorMs map mass match matchCount max maxAtom maxValue microspecies microspeciesCount microspeciesDistribution min minAtom minValue molBinFormat molecularPolarizability molFormat molImage name nucleophilicLocalizationEnergy pair piChargeDensity piEnergy piOrbitalElctronegativity pKa plattIndex polarizability property randicIndex refractivity refractivityIncrements resonant resonantCount resonants ringAtom ringAtomCount ringBond ringBondCount ringCount ringCountOfAtom rotatableBond rotatableBondCount shortestPath sigmaOrbitalElectronegativity smallestAtomRingSize smallestRingSize smarts smiles solventAccessibleSurfaceArea sortAsc sortDesc stereoisomer stereoisomerCount stereoisomers stericEffectIndex stericHindrance sum szegedIndex tautomer tautomerCount tautomers tetrahedralStereoisomer tetrahedralStereoisomerCount tetrahedralStereoisomers topologicalPolarSurfaceArea totalChargeDensity traditionalName uniqueSmiles valence vanDerWaalsSurfaceArea wienerIndex wienerPolarity

Chemical Terms Function Examples Substructure Matching


The query can be specified in file, or can be "inlined":
match("nitroquery.mol") // true if the query found in the // current molecule

match("[#6:1][$([NX3:2](=[O:3])=[O:3]),$([NX3+:1](=[O:3])[O-:3])]")

Built-in dictionaries supporting named functional groups and reactions:


match(nitro) // // match(BeckmannRearrangement) // // true if the current molecule contains nitro group true if the current reaction is a rearrangement of an oxime to amide

Counting functional groups:


matchCount(aliphaticamine) // returns the number of aliphatic amino // groups in the current molecule

Matching a mapped atom of the functional group of a reactant in reaction context:


match(ratom(6), "[OH:1]C=[O:2]", 1, 2) // is the given reactant atom a // carboxyl oxygen?

Function Examples Chemical Calculations


Calculating physicochemical properties of the current molecule:
isoelectricPoint() solventAccessibleSurfaceArea("7.4") // on pH 7.4

Calculating physicochemical properties in reaction context:


acidicpKa(ratom(4)) logP(product(1)) // the acidic pKa of the given reactant atom // the logP of the given product

electrophilicLocalizationEnergy(ratom(3))

Calculating topological and geometrical descriptors:


rotatableBondCount() SzegedIndex() heteroAromaticRingCount() hasValidConformer(product(1)) stericHindrance(ratom(7)) chiralCenterCount(ratom(7))

Function Examples Calculations Returning Molecules


Predicting the major microspecies on the given pH
majorMicrospecies("7.0")

Determining resonant structures and tautomers of the current molecule


resonants() canonicalResonant() tautomers() tautomer(1, "7.4") // all resonant structures // canonical resonant structure // all tautomers // dominant tautomer on the given pH

Returning the stereoisomers of the given product in the current reaction


stereoIsomers(product(1))

Returning all enumerated molecules of a given Markush structure


enumeration()

Combining functions in Chemical Terms


Creating complex descriptors for filtering:
(mass() >= 200) && (mass() <= 600) && (ringCount() <= 7) && (atomCount("6") >= 5) && ((atomCount() - atomCount("6") atomCount("1")) >= 2) && (rotatableBondCount() <= 15) && (donorCount() <= 5) && (acceptorCount() <= 10) && (logP() >= -2) && (logP() <= 5) && (polarSurfaceArea() <= 150);

Defining goal functions for random evolutionary drug design applications:


inhibitor = inhibitor.mol; dissimilarity(inhibitor, pharmacophore_tanimoto) dissimilarity(inhibitor, chemical_tanimoto);

Pharmacophore type definition (cationic):


(formalcharge() > 0) || (charge("7.4") > 0.4)

Combining functions in Chemical Terms


Identifying deactivated rings in virtual Friedel-Crafts acylation:
charge(ratom(1), "aromaticsystem") > -0.2

Determining the localization energy effect on regioselectivity in SEAr reactions:


electrophilicLocalizationEnergy (ratom(1))

Excluding reactants having sensitive groups in Friedel-Crafts acylation:


match(reactant(1), "[Cl,Br,I]C(=[O,S])C=C") || match(reactant(0), "[H][O,S]C=[O,S]") || match(reactant(0), "[P][H]") || (max(pka(reactant(0), filter(reactant(0), "match('[O,S;H1]')"), "acidic")) > 14.5) || (max(pka(reactant(0), filter(reactant(0), "match('[#7:1][H]', 1)"), "basic")) > 0)

Chemical Terms Syntax and Context


Molecule context
acceptorCount("7.4")

Reaction context
acceptorCount(product(1), "7.4")

name of the function

parameters

name of the function

parameters

Parameters: molecule, atom, other custom parameters (e.g. pH) Molecule context, used for single molecule input mol(): refers to the current input molecule (can be omitted) Reaction context, used for reaction input initiated by the Reactor: reactant(int i): refers to the i-th reactant (0-based indexing) product(int i): refers to the i-th product (0-based indexing) ratom(int m): refers to the reactant atom corresponding to reactant atom map m according to the
reaction equation patom(int m): refers to the product atom corresponding to product atom map m according to the reaction equation

Additional contexts: atom context, search context

The Chemical Terms Editor

Applications

The problem Property calculations, the plugin system The Chemical Terms Language

Applications
Summary

Applications of Chemical Terms Calculated Fields and Filters in Instant JChem

Applications of Chemical Terms Filters in Pipeline Pilot

Applications of Chemical Terms Virtual Reaction without Chemical Terms

Applications of Chemical Terms Reaction Editor - Encoding Reaction Rules

Applications of Chemical Terms Virtual Reaction with Chemical Terms

Gyrgy Pirok, Nra Mt, Jen Varga, Jzsef Szegezdi, Mikls Vargyas, Szilrd Drnt, and Ferenc Csizmadia: Making "Real" Molecules in Virtual Space. J. Chem. Inf. Model.; 2006; 46(2) pp 563 - 568

Applications of Chemical Terms Human Xenobiotic Biotransformations

Upcoming Features
simplified syntax
replacing &&, ||, ! with and, or, not numbering base will be 1 universally strongly typed parameters

simplified editing
syntax checker in editor parameter dialogs in editor more named functional groups in the dictionary named reaction dictionary functional group transformation queries in matching (carboxyl>>aldehide) referring to database fields conditional expressions (if) IUPAC name functions and more...

new functionalities

Summary

The problem Property calculations, the plugin system The Chemical Terms Language Applications

Summary

Summary
What is Chemical Terms?
A simple but extensible language to combine chemical functions for various cheminformatics purposes A way to add more chemical "intelligence" to software programs A general interface for chemists to customize cheminformatics applications

What is it good for?


chemical data filtering creating complex SAR expressions making virtual reactions, biotransformations selective defining goal functions, termination criterias defining pharmacophore types and more...

How can I use it?


Off the shelf (Reactor, Metabolizer, Instant JChem, command line) Integrate into own applications (Java/.NET API, Oracle Cartidge) FREE for Academics

Acknowledgements
Nra Mt, Zsolt Mohcsi Plugin system, Chemical Terms Evaluator, Reactor, Pharmacophore mapping Jzsef Szegezdi, Ferenc Csizmadia Property predictions, calculations Istvn Cseh, Attila Szab Chemical Terms Editor Szilrd Drnt, Szabolcs Csepregi Substructure searching functions, JChem Base integration, Pipeline Pilot integration Pter Kovcs JChem Cartridge integration Tim Dudgeon, Petr Hamernik Instant JChem Integration Mikls Vargyas Pharmacophore mapping, Chemical Terms Evaluator

Das könnte Ihnen auch gefallen