Presentation is loading. Please wait.

Presentation is loading. Please wait.

Chemical Terms, a Language for Cheminformatics ChemAxon User Group MeetingBudapest 2007 György Pirok.

Similar presentations

Presentation on theme: "Chemical Terms, a Language for Cheminformatics ChemAxon User Group MeetingBudapest 2007 György Pirok."— Presentation transcript:

1 Chemical Terms, a Language for Cheminformatics ChemAxon User Group MeetingBudapest 2007 György Pirok

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

3 Problems to Solve 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? How can we detect activated/deactivated sites, regioselectivity or potential side reactions? How can chemists improve a virtual reaction if it provides unfeasible products? Virtual reactions

4 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? What goal function should we set? How to define a custom goal function including desired physicochemical properties? Random evolutionary de Novo drug design

5 The Chemical Terms Pyramid Applications Chemical Terms Evaluator Plugin System Property Calculations


7 Plugins are Accessible GUIs command line tools Java API SQL Cartridge

8 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 solubility solubilityAtIsoelectricPoint solubilityOfMicroSpecies solubilityOfNeutral solventAccessibleSurfaceArea sortAsc sortDesc stereoisomer stereoisomerCount stereoisomers stericEffectIndex stericHindrance sum szegedIndex tautomer tautomerCount tautomers tetrahedralStereoisomer tetrahedralStereoisomerCount tetrahedralStereoisomers topologicalPolarSurfaceArea totalChargeDensity traditionalName uniqueSmiles valence vanDerWaalsSurfaceArea wienerIndex wienerPolarity

9 Chemical Terms Function Examples Substructure Matching The query can be specified in file, or can be "inlined": match("[#6:1][$([NX3:2](=[O:3])=[O:3]),$([NX3+:1](=[O:3])[O-:3])]") match("nitroquery.mol")// true if the query found in the // current molecule matchCount(aliphaticamine)// returns the number of aliphatic amino // groups in the current molecule Counting functional groups: match(ratom(6), "[OH:1]C=[O:2]", 1, 2)// is the given reactant atom a // carboxyl oxygen? Matching a mapped atom of the functional group of a reactant in reaction context: match(nitro)// true if the current molecule contains // nitro group Built-in dictionaries supporting named functional groups and reactions: match(BeckmannRearrangement)// true if the current reaction is a // rearrangement of an oxime to amide

10 Function Examples Chemical Calculations Calculating physicochemical properties of the current molecule: solventAccessibleSurfaceArea("7.4")// on pH 7.4 isoelectricPoint()acidicpKa(ratom(4))// the acidic pK a of the given reactant atom Calculating physicochemical properties in reaction context: electrophilicLocalizationEnergy(ratom(3)) logP(product(1))// the logP of the given product rotatableBondCount() Calculating topological and geometrical descriptors: SzegedIndex() heteroAromaticRingCount() hasValidConformer(product(1)) stericHindrance(ratom(7)) chiralCenterCount(ratom(7))

11 Function Examples Calculations Returning Molecules Predicting the major microspecies on the given pH majorMicrospecies("7.0") tautomer(1, "7.4")// dominant tautomer on the given pH Determining resonant structures and tautomers of the current molecule tautomers()// all tautomers canonicalResonant()// canonical resonant structure resonants()// all resonant structures Returning the stereoisomers of the given product in the current reaction stereoIsomers(product(1)) Returning all enumerated molecules of a given Markush structure enumeration()

12 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)

13 Combining functions in Chemical Terms Identifying deactivated rings in virtual Friedel-Crafts acylation: charge(ratom(1), "aromaticsystem") > -0.2 Defining termination conditions for metabolite predictions: solubility("7.4") > 1.5 Determining the localization energy effect on regioselectivity in S E Ar 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)

14 acceptorCount(product(1), "7.4") name of the function Molecule contextReaction context acceptorCount("7.4") name of the function Chemical Terms Syntax and Context 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

15 Chemical Terms Context Examples Context is a given molecule or reaction: acceptorCount("mymol.mrv", "7.4") acceptorCount(aniline, "7.4") productCount("myreaction.rxn") Context is a default molecule (matching hits in a structure search query): acceptorCount(mol(), "7.4") acceptorCount("7.4")// mol() can be ommitted Context is a default reaction (matching hits in a reaction search query or a reaction rule) productCount(mol()) productCount()// mol() can be ommitted acceptorCount(products(0), "7.4")// mol() can be ommitted

16 The Chemical Terms Editor

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

18 Applications of Chemical Terms Calculated Fields and Filters in Instant JChem

19 Applications of Chemical Terms Filters in Pipeline Pilot

20 Applications of Chemical Terms Virtual Reaction without Chemical Terms

21 Applications of Chemical Terms Reaction Editor - Encoding Reaction Rules

22 Applications of Chemical Terms Virtual Reaction with Chemical Terms György Pirok, Nóra Máté, Jenő Varga, József Szegezdi, Miklós Vargyas, Szilárd Dóránt, and Ferenc Csizmadia: Making "Real" Molecules in Virtual Space. J. Chem. Inf. Model.; 2006; 46(2) pp 563 - 568

23 Applications of Chemical Terms Human Xenobiotic Biotransformations

24 Planned Features Simplified Syntax for Human Readers replacing &&, ||, ! with and, or, not numbering base will be 1 universally strongly typed parameters, aggregate parameters simplifying parenthesis architecture mass <= 450 and logD(pH = 7.4) >= -4 and logD(pH = 7.4) <= 4 and ringCount <= 4 and rotatableBondCount <= 10 and donorCount <= 5 and acceptorCount <= 8

25 charge() and match(amine) or match(hydrazine) Planned Features Simplified Editing syntax checker in editor parameter dialogs in editor more named functional groups in the dictionary named reaction dictionary

26 Planned Features New Functionalities reaction queries in matching referring to database fields conditional expressions (arithmetic if) IUPAC name functions solubility and more... if match(aldehide>>alcohol) and not match(reactant, carboxylicacid, carboxylate) and column("yield") >= 0.9 and solubility(product) <= 1 then iupacname(product) end the example returns the iupac name of alcohols produced by reactions specified by the filter

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

28 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 criteria –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 Cartridge) –FREE for Academics

29 Acknowledgements Nóra Máté, Zsolt Mohácsi Plugin system, Chemical Terms Evaluator, Reactor, Pharmacophore mapping József Szegezdi, Ferenc Csizmadia Property predictions, calculations István Cseh, Attila Szabó Chemical Terms Editor Szilárd Dóránt, Szabolcs Csepregi Substructure searching functions, JChem Base integration, Pipeline Pilot integration Péter Kovács JChem Cartridge integration Tim Dudgeon, Petr Hamernik Instant JChem Integration Miklós Vargyas Pharmacophore mapping, Chemical Terms Evaluator

Download ppt "Chemical Terms, a Language for Cheminformatics ChemAxon User Group MeetingBudapest 2007 György Pirok."

Similar presentations

Ads by Google