SlideShare uma empresa Scribd logo
1 de 27
Combining disparate cheminformatics resources into a single toolkit Noel M. O’Boyle and Geoffrey R. Hutchison Mar 2010 239th ACS National Meeting, San Francisco
Toolkits, toolkits and more toolkits Commercial cheminformatics toolkits:
Toolkits, toolkits and more toolkits Open Source cheminformatics toolkits: CDK OpenBabel OASA PerlMol
The importance of being interoperable Good for users Can take advantage of complementary features CDK:Gasteiger π charges, maximal common substructure, shape similarity with ultrafast shape descriptors, mass-spectrometry analysis RDKit:RECAP fragmentation, calculation of R/S, atom pair fingerprints, shape similarity with volume overlap OpenBabel:several forcefields, crystallography, large number of file formats, conformer searching, InChIKey
The importance of being interoperable Good for users Can take advantage of complementary features Can choose between different implementations Faster SMARTS searching, better 2D depiction, more accurate 3D structure generation Avoid vendor lock-in Good for developers Less reinvention of wheel, more time to spend on development of complementary features Avoid balkanisation of field Bigger pool of users
J. Chem. Inf. Model., 2006, 46, 991 http://www.blueobelisk.org
J. Chem. Inf. Model., 2006, 46, 991 http://www.blueobelisk.org
Bringing it all together with Cinfony Different languages Java (CDK), C++ (OpenBabel, RDKit) Use Python, a higher-level language that can bridge to both Different APIs Each toolkit uses different commands to carry out the same tasks Implement a common API Different chemical models Different internal representation of a molecule Use existing method for storage and transfer of chemical information: chemical file formats MDL mol file for 2D and 3D, SMILES for 0D
Cinfony API
One API to rule them all Example - create a Molecule from a SMILES string: mol = Chem.MolFromSmiles(SMILESstring) mol = openbabel.OBMol() obconversion = openbabel.OBConversion() obconversion.SetInFormat("smi") obconversion.ReadString(mol, SMILESstring) OpenBabel CDK builder = cdk.DefaultChemObjectBuilder.getInstance() sp = cdk.smiles.SmilesParser(builder) mol = sp.parseSmiles(SMILESstring) RDKit mol = toolkit.readstring("smi", SMILESstring) wheretoolkit is either obabel, cdk or rdk
Design of Cinfony API API is small (“fits your brain”) Covers core functionality of toolkits Corollary: need to access underlying toolkit for additional functionality Makes it easy to carry out common tasks API is stable Make it easy to find relevant methods Example: add hydrogens to a molecule atommanip = cdk.tools.manipulator.AtomContainerManipulatoratommanip.convertImplicitToExplicitHydrogens(molecule) CDK molecule.addh()
cinfony.toolkit
cinfony.toolkit.Molecule
Examples of use Chemistry Toolkit Rosetta http://ctr.wikia.com Andrew Dalke
Combining toolkits >>> from cinfony import rdk, cdk, obabel>>> obabelmol = obabel.readstring("smi", "CCC")>>> rdkmol = rdk.Molecule(obabelmol)>>> rdkmol.draw(show=False, filename="propane.png")>>> print cdk.Molecule(rdkmol).calcdesc(){'chi0C': 2.7071067811865475, 'BCUT.4': 4.4795252101839402, 'rotatableBondsCount': 2, 'mde.9': 0.0, 'mde.8': 0.0, ... } Import Cinfony Read in a molecule from a SMILES string with OpenBabel Convert it to an RDKit Molecule Create a 2D depiction of the molecule with RDKit Convert it to a CDK Molecule and calculate descriptor values
Comparing toolkits >>> from cinfony import rdk, cdk, obabel>>> for toolkit in [rdk, cdk, obabel]: ...     mol = toolkit.readstring("smi", "CCC") ...     print mol.molwt ...     mol.draw(filename="%s.png" % toolkit.__name__) Import Cinfony For each toolkit... ... Read in a molecule from a SMILES string ... Print its molecular weight ... Create a 2D depiction Useful for sanity checks, identifying limitations, bugs Calculating the molecular weight (http://tinyurl.com/chemacs3) implicit hydrogen, isotopes Comparison of descriptor values (http://tinyurl.com/chemacs2) Should be highly correlated Comparison of depictions (http://tinyurl.com/chemacs1)
Cinfony and the Web
Webel - Chemistry for Web 2.0 Webel is a new Cinfony module that runs entirely using web services CDK webservices by Rajarshi Guha, hosted at Uppsala University NCI/CADD Chemical Identifier Resolver by Markus Sitzmann (uses Cactvs for much of backend) - see CINF147 at 2:20pm in Room 212 Easy to install – no dependencies Can be used in environments where installing a cheminformatics toolkit is not possible Web services may provide additional services not available elsewhere Example: how similar is aspirin to Dr. Scholl’s Wart Remover Kit? >>> from cinfony import webel >>> aspirin = webel.readstring("name", "aspirin")>>> wartremover = webel.readstring("name", ...                     "Dr. Scholl’s Wart Remover Kit")>>> print aspirin.calcfp() | wartremover.calcfp() 0.59375
Webel - Chemistry for Web 2.0 Webel is a new Cinfony module that runs entirely using web services CDK webservices by Rajarshi Guha, hosted at Uppsala University NCI/CADD Chemical Identifier Resolver by Markus Sitzmann (uses Cactvs for much of backend) - see CINF147 at 2:20pm in Room 212 Easy to install – no dependencies Can be used in environments where installing a cheminformatics toolkit is not possible Web services may provide additional services not available elsewhere Example: how similar is aspirin to Dr. Scholl’s Wart Remover Kit? >>> from cinfony import webel >>> aspirin = webel.readstring("name", "aspirin")>>> wartremover = webel.readstring("name", ...                     "Dr. Scholl’s Wart Remover Kit")>>> print aspirin.calcfp() | wartremover.calcfp() 0.59375
Cheminformatics in the browser See http://baoilleach.webfactional.com/site_media/webel/ or just Google “webelsilverlight”
makes it easy to... Start using a new toolkit Carry out common tasks Combine functionality from different toolkits Compare results from different toolkits Do cheminformatics through the web, and on the web
Combining disparate cheminformatics resources into a single toolkit Chem. Cent. J., 2008, 2, 24. http://cinfony.googlecode.com http://baoilleach.blogspot.com Acknowledgements CDK: Egon Willighagen, Rajarshi Guha OpenBabel: Chris Morley, Tim Vandermeersch RDKit: Greg Landrum OASA: Beda Kosata JPype: Steve Ménard Chemical Identifier Resolver: Markus Sitzmann Interactive Tutorial: Michael Foord Image: Tintin44 (Flickr)
Cheminformatics in the browser As Webel is pure Python, it can run places where traditional cheminformatics software cannot... ...such as in a web browser Microsoft have developed a browser plugin called Silverlight for developing applications for the web It includes a Python interpreter (IronPython) So you can use Webel in Silverlight applications Michael Foord has developed an interactive Python tutorial using Silverlight See http://ironpython.net/tutorial/ I have combined this with Webel to develop an interactive Cheminformatics tutorial
Performance

Mais conteúdo relacionado

Semelhante a Cinfony - Combining disparate cheminformatics resources into a single toolkit

A DevOps guide to Kubernetes
A DevOps guide to KubernetesA DevOps guide to Kubernetes
A DevOps guide to KubernetesPaul Czarkowski
 
JavaLand - Integration Testing How-to
JavaLand - Integration Testing How-toJavaLand - Integration Testing How-to
JavaLand - Integration Testing How-toNicolas Fränkel
 
Workshop - The Little Pattern That Could.pdf
Workshop - The Little Pattern That Could.pdfWorkshop - The Little Pattern That Could.pdf
Workshop - The Little Pattern That Could.pdfTobiasGoeschel
 
Kubernetes for the PHP developer
Kubernetes for the PHP developerKubernetes for the PHP developer
Kubernetes for the PHP developerPaul Czarkowski
 
We continue checking Microsoft projects: analysis of PowerShell
We continue checking Microsoft projects: analysis of PowerShellWe continue checking Microsoft projects: analysis of PowerShell
We continue checking Microsoft projects: analysis of PowerShellPVS-Studio
 
Googleappengineintro 110410190620-phpapp01
Googleappengineintro 110410190620-phpapp01Googleappengineintro 110410190620-phpapp01
Googleappengineintro 110410190620-phpapp01Tony Frame
 
Care and feeding notes
Care and feeding notesCare and feeding notes
Care and feeding notesPerrin Harkins
 
10 reasons to choose CakePHP as Framework
10 reasons to choose CakePHP as Framework10 reasons to choose CakePHP as Framework
10 reasons to choose CakePHP as FrameworkTrusted Web Service
 
Provisioning Toolchain Introduction for Velocity Online Conference (March 2010)
Provisioning Toolchain Introduction for Velocity Online Conference (March 2010)Provisioning Toolchain Introduction for Velocity Online Conference (March 2010)
Provisioning Toolchain Introduction for Velocity Online Conference (March 2010)dev2ops
 
201502 - Integration Testing
201502 - Integration Testing201502 - Integration Testing
201502 - Integration Testinglyonjug
 
Why so continuous
Why so continuousWhy so continuous
Why so continuousMax Lobur
 
Generic Repository Pattern in MVC3 Application with Entity Framework
Generic Repository Pattern in MVC3 Application with Entity FrameworkGeneric Repository Pattern in MVC3 Application with Entity Framework
Generic Repository Pattern in MVC3 Application with Entity FrameworkAkhil Mittal
 
Ben ford intro
Ben ford introBen ford intro
Ben ford introPuppet
 
Telemetry doesn't have to be scary; Ben Ford
Telemetry doesn't have to be scary; Ben FordTelemetry doesn't have to be scary; Ben Ford
Telemetry doesn't have to be scary; Ben FordPuppet
 
Spring Boot & Spring Cloud on PAS- Nate Schutta (2/2)
Spring Boot & Spring Cloud on PAS- Nate Schutta (2/2)Spring Boot & Spring Cloud on PAS- Nate Schutta (2/2)
Spring Boot & Spring Cloud on PAS- Nate Schutta (2/2)VMware Tanzu
 
ChircuVictor StefircaMadalin rad_aspmvc3_wcf_vs2010
ChircuVictor StefircaMadalin rad_aspmvc3_wcf_vs2010ChircuVictor StefircaMadalin rad_aspmvc3_wcf_vs2010
ChircuVictor StefircaMadalin rad_aspmvc3_wcf_vs2010vchircu
 
Divide and Conquer – Microservices with Node.js
Divide and Conquer – Microservices with Node.jsDivide and Conquer – Microservices with Node.js
Divide and Conquer – Microservices with Node.jsSebastian Springer
 

Semelhante a Cinfony - Combining disparate cheminformatics resources into a single toolkit (20)

A DevOps guide to Kubernetes
A DevOps guide to KubernetesA DevOps guide to Kubernetes
A DevOps guide to Kubernetes
 
JavaLand - Integration Testing How-to
JavaLand - Integration Testing How-toJavaLand - Integration Testing How-to
JavaLand - Integration Testing How-to
 
Workshop - The Little Pattern That Could.pdf
Workshop - The Little Pattern That Could.pdfWorkshop - The Little Pattern That Could.pdf
Workshop - The Little Pattern That Could.pdf
 
It's always your fault
It's always your faultIt's always your fault
It's always your fault
 
Kubernetes for the PHP developer
Kubernetes for the PHP developerKubernetes for the PHP developer
Kubernetes for the PHP developer
 
We continue checking Microsoft projects: analysis of PowerShell
We continue checking Microsoft projects: analysis of PowerShellWe continue checking Microsoft projects: analysis of PowerShell
We continue checking Microsoft projects: analysis of PowerShell
 
ASP.NET MVC3 RAD
ASP.NET MVC3 RADASP.NET MVC3 RAD
ASP.NET MVC3 RAD
 
Googleappengineintro 110410190620-phpapp01
Googleappengineintro 110410190620-phpapp01Googleappengineintro 110410190620-phpapp01
Googleappengineintro 110410190620-phpapp01
 
Care and feeding notes
Care and feeding notesCare and feeding notes
Care and feeding notes
 
10 reasons to choose CakePHP as Framework
10 reasons to choose CakePHP as Framework10 reasons to choose CakePHP as Framework
10 reasons to choose CakePHP as Framework
 
Provisioning Toolchain Introduction for Velocity Online Conference (March 2010)
Provisioning Toolchain Introduction for Velocity Online Conference (March 2010)Provisioning Toolchain Introduction for Velocity Online Conference (March 2010)
Provisioning Toolchain Introduction for Velocity Online Conference (March 2010)
 
Grails Advanced
Grails Advanced Grails Advanced
Grails Advanced
 
201502 - Integration Testing
201502 - Integration Testing201502 - Integration Testing
201502 - Integration Testing
 
Why so continuous
Why so continuousWhy so continuous
Why so continuous
 
Generic Repository Pattern in MVC3 Application with Entity Framework
Generic Repository Pattern in MVC3 Application with Entity FrameworkGeneric Repository Pattern in MVC3 Application with Entity Framework
Generic Repository Pattern in MVC3 Application with Entity Framework
 
Ben ford intro
Ben ford introBen ford intro
Ben ford intro
 
Telemetry doesn't have to be scary; Ben Ford
Telemetry doesn't have to be scary; Ben FordTelemetry doesn't have to be scary; Ben Ford
Telemetry doesn't have to be scary; Ben Ford
 
Spring Boot & Spring Cloud on PAS- Nate Schutta (2/2)
Spring Boot & Spring Cloud on PAS- Nate Schutta (2/2)Spring Boot & Spring Cloud on PAS- Nate Schutta (2/2)
Spring Boot & Spring Cloud on PAS- Nate Schutta (2/2)
 
ChircuVictor StefircaMadalin rad_aspmvc3_wcf_vs2010
ChircuVictor StefircaMadalin rad_aspmvc3_wcf_vs2010ChircuVictor StefircaMadalin rad_aspmvc3_wcf_vs2010
ChircuVictor StefircaMadalin rad_aspmvc3_wcf_vs2010
 
Divide and Conquer – Microservices with Node.js
Divide and Conquer – Microservices with Node.jsDivide and Conquer – Microservices with Node.js
Divide and Conquer – Microservices with Node.js
 

Mais de baoilleach

We need to talk about Kekulization, Aromaticity and SMILES
We need to talk about Kekulization, Aromaticity and SMILESWe need to talk about Kekulization, Aromaticity and SMILES
We need to talk about Kekulization, Aromaticity and SMILESbaoilleach
 
Open Babel project overview
Open Babel project overviewOpen Babel project overview
Open Babel project overviewbaoilleach
 
So I have an SD File... What do I do next?
So I have an SD File... What do I do next?So I have an SD File... What do I do next?
So I have an SD File... What do I do next?baoilleach
 
Chemistrify the Web
Chemistrify the WebChemistrify the Web
Chemistrify the Webbaoilleach
 
Universal Smiles: Finally a canonical SMILES string
Universal Smiles: Finally a canonical SMILES stringUniversal Smiles: Finally a canonical SMILES string
Universal Smiles: Finally a canonical SMILES stringbaoilleach
 
What's New and Cooking in Open Babel 2.3.2
What's New and Cooking in Open Babel 2.3.2What's New and Cooking in Open Babel 2.3.2
What's New and Cooking in Open Babel 2.3.2baoilleach
 
Intro to Open Babel
Intro to Open BabelIntro to Open Babel
Intro to Open Babelbaoilleach
 
Protein-ligand docking
Protein-ligand dockingProtein-ligand docking
Protein-ligand dockingbaoilleach
 
Making the most of a QM calculation
Making the most of a QM calculationMaking the most of a QM calculation
Making the most of a QM calculationbaoilleach
 
Data Analysis in QSAR
Data Analysis in QSARData Analysis in QSAR
Data Analysis in QSARbaoilleach
 
Large-scale computational design and selection of polymers for solar cells
Large-scale computational design and selection of polymers for solar cellsLarge-scale computational design and selection of polymers for solar cells
Large-scale computational design and selection of polymers for solar cellsbaoilleach
 
My Open Access papers
My Open Access papersMy Open Access papers
My Open Access papersbaoilleach
 
Improving the quality of chemical databases with community-developed tools (a...
Improving the quality of chemical databases with community-developed tools (a...Improving the quality of chemical databases with community-developed tools (a...
Improving the quality of chemical databases with community-developed tools (a...baoilleach
 
De novo design of molecular wires with optimal properties for solar energy co...
De novo design of molecular wires with optimal properties for solar energy co...De novo design of molecular wires with optimal properties for solar energy co...
De novo design of molecular wires with optimal properties for solar energy co...baoilleach
 
Density functional theory calculations on Ruthenium polypyridyl complexes inc...
Density functional theory calculations on Ruthenium polypyridyl complexes inc...Density functional theory calculations on Ruthenium polypyridyl complexes inc...
Density functional theory calculations on Ruthenium polypyridyl complexes inc...baoilleach
 
Application of Density Functional Theory to Scanning Tunneling Microscopy
Application of Density Functional Theory to Scanning Tunneling MicroscopyApplication of Density Functional Theory to Scanning Tunneling Microscopy
Application of Density Functional Theory to Scanning Tunneling Microscopybaoilleach
 
Towards Practical Molecular Devices
Towards Practical Molecular DevicesTowards Practical Molecular Devices
Towards Practical Molecular Devicesbaoilleach
 
Why multiple scoring functions can improve docking performance - Testing hypo...
Why multiple scoring functions can improve docking performance - Testing hypo...Why multiple scoring functions can improve docking performance - Testing hypo...
Why multiple scoring functions can improve docking performance - Testing hypo...baoilleach
 
Why multiple scoring functions can improve docking performance - Testing hypo...
Why multiple scoring functions can improve docking performance - Testing hypo...Why multiple scoring functions can improve docking performance - Testing hypo...
Why multiple scoring functions can improve docking performance - Testing hypo...baoilleach
 
Improving enrichment rates
Improving enrichment ratesImproving enrichment rates
Improving enrichment ratesbaoilleach
 

Mais de baoilleach (20)

We need to talk about Kekulization, Aromaticity and SMILES
We need to talk about Kekulization, Aromaticity and SMILESWe need to talk about Kekulization, Aromaticity and SMILES
We need to talk about Kekulization, Aromaticity and SMILES
 
Open Babel project overview
Open Babel project overviewOpen Babel project overview
Open Babel project overview
 
So I have an SD File... What do I do next?
So I have an SD File... What do I do next?So I have an SD File... What do I do next?
So I have an SD File... What do I do next?
 
Chemistrify the Web
Chemistrify the WebChemistrify the Web
Chemistrify the Web
 
Universal Smiles: Finally a canonical SMILES string
Universal Smiles: Finally a canonical SMILES stringUniversal Smiles: Finally a canonical SMILES string
Universal Smiles: Finally a canonical SMILES string
 
What's New and Cooking in Open Babel 2.3.2
What's New and Cooking in Open Babel 2.3.2What's New and Cooking in Open Babel 2.3.2
What's New and Cooking in Open Babel 2.3.2
 
Intro to Open Babel
Intro to Open BabelIntro to Open Babel
Intro to Open Babel
 
Protein-ligand docking
Protein-ligand dockingProtein-ligand docking
Protein-ligand docking
 
Making the most of a QM calculation
Making the most of a QM calculationMaking the most of a QM calculation
Making the most of a QM calculation
 
Data Analysis in QSAR
Data Analysis in QSARData Analysis in QSAR
Data Analysis in QSAR
 
Large-scale computational design and selection of polymers for solar cells
Large-scale computational design and selection of polymers for solar cellsLarge-scale computational design and selection of polymers for solar cells
Large-scale computational design and selection of polymers for solar cells
 
My Open Access papers
My Open Access papersMy Open Access papers
My Open Access papers
 
Improving the quality of chemical databases with community-developed tools (a...
Improving the quality of chemical databases with community-developed tools (a...Improving the quality of chemical databases with community-developed tools (a...
Improving the quality of chemical databases with community-developed tools (a...
 
De novo design of molecular wires with optimal properties for solar energy co...
De novo design of molecular wires with optimal properties for solar energy co...De novo design of molecular wires with optimal properties for solar energy co...
De novo design of molecular wires with optimal properties for solar energy co...
 
Density functional theory calculations on Ruthenium polypyridyl complexes inc...
Density functional theory calculations on Ruthenium polypyridyl complexes inc...Density functional theory calculations on Ruthenium polypyridyl complexes inc...
Density functional theory calculations on Ruthenium polypyridyl complexes inc...
 
Application of Density Functional Theory to Scanning Tunneling Microscopy
Application of Density Functional Theory to Scanning Tunneling MicroscopyApplication of Density Functional Theory to Scanning Tunneling Microscopy
Application of Density Functional Theory to Scanning Tunneling Microscopy
 
Towards Practical Molecular Devices
Towards Practical Molecular DevicesTowards Practical Molecular Devices
Towards Practical Molecular Devices
 
Why multiple scoring functions can improve docking performance - Testing hypo...
Why multiple scoring functions can improve docking performance - Testing hypo...Why multiple scoring functions can improve docking performance - Testing hypo...
Why multiple scoring functions can improve docking performance - Testing hypo...
 
Why multiple scoring functions can improve docking performance - Testing hypo...
Why multiple scoring functions can improve docking performance - Testing hypo...Why multiple scoring functions can improve docking performance - Testing hypo...
Why multiple scoring functions can improve docking performance - Testing hypo...
 
Improving enrichment rates
Improving enrichment ratesImproving enrichment rates
Improving enrichment rates
 

Último

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsRoshan Dwivedi
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 

Último (20)

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 

Cinfony - Combining disparate cheminformatics resources into a single toolkit

  • 1. Combining disparate cheminformatics resources into a single toolkit Noel M. O’Boyle and Geoffrey R. Hutchison Mar 2010 239th ACS National Meeting, San Francisco
  • 2. Toolkits, toolkits and more toolkits Commercial cheminformatics toolkits:
  • 3. Toolkits, toolkits and more toolkits Open Source cheminformatics toolkits: CDK OpenBabel OASA PerlMol
  • 4. The importance of being interoperable Good for users Can take advantage of complementary features CDK:Gasteiger π charges, maximal common substructure, shape similarity with ultrafast shape descriptors, mass-spectrometry analysis RDKit:RECAP fragmentation, calculation of R/S, atom pair fingerprints, shape similarity with volume overlap OpenBabel:several forcefields, crystallography, large number of file formats, conformer searching, InChIKey
  • 5. The importance of being interoperable Good for users Can take advantage of complementary features Can choose between different implementations Faster SMARTS searching, better 2D depiction, more accurate 3D structure generation Avoid vendor lock-in Good for developers Less reinvention of wheel, more time to spend on development of complementary features Avoid balkanisation of field Bigger pool of users
  • 6. J. Chem. Inf. Model., 2006, 46, 991 http://www.blueobelisk.org
  • 7. J. Chem. Inf. Model., 2006, 46, 991 http://www.blueobelisk.org
  • 8. Bringing it all together with Cinfony Different languages Java (CDK), C++ (OpenBabel, RDKit) Use Python, a higher-level language that can bridge to both Different APIs Each toolkit uses different commands to carry out the same tasks Implement a common API Different chemical models Different internal representation of a molecule Use existing method for storage and transfer of chemical information: chemical file formats MDL mol file for 2D and 3D, SMILES for 0D
  • 9.
  • 10.
  • 12. One API to rule them all Example - create a Molecule from a SMILES string: mol = Chem.MolFromSmiles(SMILESstring) mol = openbabel.OBMol() obconversion = openbabel.OBConversion() obconversion.SetInFormat("smi") obconversion.ReadString(mol, SMILESstring) OpenBabel CDK builder = cdk.DefaultChemObjectBuilder.getInstance() sp = cdk.smiles.SmilesParser(builder) mol = sp.parseSmiles(SMILESstring) RDKit mol = toolkit.readstring("smi", SMILESstring) wheretoolkit is either obabel, cdk or rdk
  • 13. Design of Cinfony API API is small (“fits your brain”) Covers core functionality of toolkits Corollary: need to access underlying toolkit for additional functionality Makes it easy to carry out common tasks API is stable Make it easy to find relevant methods Example: add hydrogens to a molecule atommanip = cdk.tools.manipulator.AtomContainerManipulatoratommanip.convertImplicitToExplicitHydrogens(molecule) CDK molecule.addh()
  • 16. Examples of use Chemistry Toolkit Rosetta http://ctr.wikia.com Andrew Dalke
  • 17. Combining toolkits >>> from cinfony import rdk, cdk, obabel>>> obabelmol = obabel.readstring("smi", "CCC")>>> rdkmol = rdk.Molecule(obabelmol)>>> rdkmol.draw(show=False, filename="propane.png")>>> print cdk.Molecule(rdkmol).calcdesc(){'chi0C': 2.7071067811865475, 'BCUT.4': 4.4795252101839402, 'rotatableBondsCount': 2, 'mde.9': 0.0, 'mde.8': 0.0, ... } Import Cinfony Read in a molecule from a SMILES string with OpenBabel Convert it to an RDKit Molecule Create a 2D depiction of the molecule with RDKit Convert it to a CDK Molecule and calculate descriptor values
  • 18. Comparing toolkits >>> from cinfony import rdk, cdk, obabel>>> for toolkit in [rdk, cdk, obabel]: ... mol = toolkit.readstring("smi", "CCC") ... print mol.molwt ... mol.draw(filename="%s.png" % toolkit.__name__) Import Cinfony For each toolkit... ... Read in a molecule from a SMILES string ... Print its molecular weight ... Create a 2D depiction Useful for sanity checks, identifying limitations, bugs Calculating the molecular weight (http://tinyurl.com/chemacs3) implicit hydrogen, isotopes Comparison of descriptor values (http://tinyurl.com/chemacs2) Should be highly correlated Comparison of depictions (http://tinyurl.com/chemacs1)
  • 20. Webel - Chemistry for Web 2.0 Webel is a new Cinfony module that runs entirely using web services CDK webservices by Rajarshi Guha, hosted at Uppsala University NCI/CADD Chemical Identifier Resolver by Markus Sitzmann (uses Cactvs for much of backend) - see CINF147 at 2:20pm in Room 212 Easy to install – no dependencies Can be used in environments where installing a cheminformatics toolkit is not possible Web services may provide additional services not available elsewhere Example: how similar is aspirin to Dr. Scholl’s Wart Remover Kit? >>> from cinfony import webel >>> aspirin = webel.readstring("name", "aspirin")>>> wartremover = webel.readstring("name", ... "Dr. Scholl’s Wart Remover Kit")>>> print aspirin.calcfp() | wartremover.calcfp() 0.59375
  • 21. Webel - Chemistry for Web 2.0 Webel is a new Cinfony module that runs entirely using web services CDK webservices by Rajarshi Guha, hosted at Uppsala University NCI/CADD Chemical Identifier Resolver by Markus Sitzmann (uses Cactvs for much of backend) - see CINF147 at 2:20pm in Room 212 Easy to install – no dependencies Can be used in environments where installing a cheminformatics toolkit is not possible Web services may provide additional services not available elsewhere Example: how similar is aspirin to Dr. Scholl’s Wart Remover Kit? >>> from cinfony import webel >>> aspirin = webel.readstring("name", "aspirin")>>> wartremover = webel.readstring("name", ... "Dr. Scholl’s Wart Remover Kit")>>> print aspirin.calcfp() | wartremover.calcfp() 0.59375
  • 22. Cheminformatics in the browser See http://baoilleach.webfactional.com/site_media/webel/ or just Google “webelsilverlight”
  • 23. makes it easy to... Start using a new toolkit Carry out common tasks Combine functionality from different toolkits Compare results from different toolkits Do cheminformatics through the web, and on the web
  • 24. Combining disparate cheminformatics resources into a single toolkit Chem. Cent. J., 2008, 2, 24. http://cinfony.googlecode.com http://baoilleach.blogspot.com Acknowledgements CDK: Egon Willighagen, Rajarshi Guha OpenBabel: Chris Morley, Tim Vandermeersch RDKit: Greg Landrum OASA: Beda Kosata JPype: Steve Ménard Chemical Identifier Resolver: Markus Sitzmann Interactive Tutorial: Michael Foord Image: Tintin44 (Flickr)
  • 25.
  • 26. Cheminformatics in the browser As Webel is pure Python, it can run places where traditional cheminformatics software cannot... ...such as in a web browser Microsoft have developed a browser plugin called Silverlight for developing applications for the web It includes a Python interpreter (IronPython) So you can use Webel in Silverlight applications Michael Foord has developed an interactive Python tutorial using Silverlight See http://ironpython.net/tutorial/ I have combined this with Webel to develop an interactive Cheminformatics tutorial

Notas do Editor

  1. OB has around 112 classes, 227 global functions. CDK has 882 classes.