27.08.2013 Views

Intro to OEChem

Intro to OEChem

Intro to OEChem

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>Intro</strong> <strong>to</strong> <strong>OEChem</strong><br />

product revue session<br />

Jeremy Yang<br />

CUP VIII, Feb 26-28, 2007


What is <strong>OEChem</strong>?<br />

• Programming <strong>to</strong>olkit for chemoinformatics<br />

• For molecular modelling and general use<br />

• Small and macromolecules<br />

• Well defined, supported and documented API<br />

• Foundation of higher level OE <strong>to</strong>olkits<br />

• Foundation of OE applications<br />

CUP VIII, Feb 26-28, 2007


Languages and platforms<br />

• Native C++ API<br />

• Python API (wrapper)<br />

• Java API (wrapper)<br />

CUP VIII, Feb 26-28, 2007


Documentation and references<br />

• <strong>OEChem</strong> { C++ | Python | Java } Theory<br />

manual<br />

• <strong>OEChem</strong> API manual<br />

• Example code<br />

– $OE_DIR/examples/oechem/<br />

– $OE_DIR/examples/oechem/docs-examples/<br />

– $OE_DIR/utilities/oechem/<br />

– $OE_DIR/wrappers/python/examples/<br />

– $OE_DIR/wrappers/python/doc-examples/<br />

• http://demo.eyesopen.com<br />

CUP VIII, Feb 26-28, 2007


Some key features<br />

• Multiconformer molecules<br />

• File format fluency and rigor<br />

• Smarts searching and beyond<br />

• MCSS<br />

• Smirks reaction processing<br />

• PDB expertise<br />

• Macromolecules<br />

• Professional, supported API<br />

CUP VIII, Feb 26-28, 2007


Example: mol2parts.py<br />

ims = oemolistream("1A00.pdb")<br />

oms = oemolostream("parts.sdf")<br />

partmol = OEGraphMol()<br />

for mol in ims.GetOEGraphMols():<br />

i,partlist = OEDetermineComponents(mol)<br />

pred = OEPartPredA<strong>to</strong>m(partlist)<br />

for j in range(1,i+1):<br />

pred.SelectPart(j)<br />

OESubsetMol(partmol,mol,pred)<br />

OEWriteMolecule(oms,partmol)<br />

CUP VIII, Feb 26-28, 2007


<strong>Intro</strong> <strong>to</strong> <strong>OEChem</strong>, Part 2:<br />

Practical examples, use cases<br />

CUP VIII, Feb 26-28, 2007


Reading and writing molecules<br />

• Formats<br />

• Format variants, OEFlavors<br />

• Multiconformer vs. single conf<br />

• Aromaticity, H-counts, valence models<br />

• Canonicalization<br />

• Interconversion of inconsistent formats<br />

• OEBinary<br />

• Error handling<br />

• See: convert.cpp, babel2.cpp, convert.py,<br />

convert webapp, Babel3 2.0<br />

CUP VIII, Feb 26-28, 2007


Fixing/standardizing molecules<br />

• C(=O)[OH] -> C(=O)[O-] , etc.<br />

• See:<br />

– fixmols.py<br />

– valencemodels.py<br />

– aromodels.cpp<br />

– aromatest.py<br />

– react.cpp, react.py<br />

– Filter 2.0.1<br />

CUP VIII, Feb 26-28, 2007


Analyzing molecules<br />

• rings<br />

• rotatable bonds<br />

• a<strong>to</strong>m types<br />

• stereo centers<br />

• polar hydrogens<br />

• aromaticity<br />

• hybridization<br />

• symmetry<br />

• See:<br />

– rings.py, rings.cpp<br />

– molanalyze.py<br />

– screen.py<br />

– molanalyze web app<br />

CUP VIII, Feb 26-28, 2007


Substructure searching<br />

• smarts matching<br />

• OEQMol matching<br />

• a<strong>to</strong>m and bond expressions<br />

• mol state dependence (arom/kek, H’s, etc.)<br />

• unique-a<strong>to</strong>mset and symmetric matching<br />

• See:<br />

– match.cpp, match.py<br />

– depict web app<br />

CUP VIII, Feb 26-28, 2007


MCSS - max common substructs<br />

• OE algorithm - “space state search”<br />

• OEMCSFuncs<br />

• a<strong>to</strong>m and bond expressions<br />

• mol state dependence (arom/kek, H’s, etc.)<br />

• ring issues<br />

• See:<br />

– mcss.cpp, mcss.py<br />

– molalign.py<br />

– mcss web app<br />

CUP VIII, Feb 26-28, 2007


3D handling and analysis<br />

• Measurement:<br />

length, angles,<br />

<strong>to</strong>rsions<br />

• Rotation and<br />

translation<br />

• Euler and Quaternion<br />

operations<br />

• RMSD<br />

• See:<br />

– rmsd.cpp, rmsd.py<br />

– rmsd_selftest.cpp<br />

– molgeom.cpp,<br />

molgeom.py<br />

– setro<strong>to</strong>r.py<br />

– add3dhyd.cpp<br />

– movemol.cpp<br />

– molalign.py<br />

– rmsd webapp<br />

CUP VIII, Feb 26-28, 2007


Macromolecules<br />

• residue perception<br />

• bond perception<br />

• ligand extraction<br />

• new in 1.4: OEBio<br />

• See:<br />

– pdb2lig.cpp, pdb2lig.py<br />

– resanalyze.py<br />

– bindanalyze.py<br />

– proteinalyze webapp<br />

CUP VIII, Feb 26-28, 2007


Combina<strong>to</strong>rics<br />

• building mols from fragments<br />

• fragmentation<br />

• ampersand notation smiles<br />

• enumerating stereoisomers<br />

• See:<br />

– frankenmol.py<br />

– frag.py<br />

– react.cpp,react.py<br />

– flipper.cpp,flipper.py<br />

CUP VIII, Feb 26-28, 2007


Canonicalization<br />

• canonical smiles<br />

• canonical Kekule smiles<br />

• canonical isomeric smiles<br />

• canonical fragment smiles<br />

• other canonical smiles<br />

• canonical molfiles<br />

• general canonicalization<br />

• See:<br />

– cansmi.py<br />

– canmol.py<br />

– canmol web app<br />

– tau<strong>to</strong>mers<br />

program<br />

CUP VIII, Feb 26-28, 2007


Non-structural data<br />

• SD data<br />

• generic data<br />

• OEBinary<br />

• bit vec<strong>to</strong>rs<br />

• See<br />

– rename.py<br />

– sdf2csv.py<br />

– bitvectest.cpp<br />

CUP VIII, Feb 26-28, 2007

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!