Modelling experiments Using Teranode XDA and Chemaxon Andrew Lemon and Robert Shell
Mar 27, 2015
Modelling experiments
Using Teranode XDA and Chemaxon
Andrew Lemon and Robert Shell
Agenda• Issues with capturing experiments
• Integrating Chemaxon
• Futures
• Acknowledgements
Experiments• Protocol Design*
• Data capture*– Automated data capture
• Data Analysis and reduction*
• Conclusion
• Review and Publication
• Search and report data
Diversity from synthesis to Preclinical testing
Protocols
Data capture ESC001 ESC002 ESC003 ESC004
ESC001 ESC001-ESC001 ESC002-ESC001 ESC003-ESC001 ESC004-ESC001
ESC002 ESC001-ESC002 ESC002-ESC002 ESC003-ESC002 ESC004-ESC002
ESC003 ESC001-ESC003 ESC002-ESC003 ESC003-ESC003 ESC004-ESC003
ESC004 ESC001-ESC004 ESC002-ESC004 ESC003-ESC004 ESC004-ESC004
• Spreadsheets• Formula to link cells in 2D• =A3 & “-” & B2 ESC001-ESC001• Modelling difficult and error prone• Expansion difficult
Protocol Modelling
• Need to model the experiment
• Parameterise the dimensionality
CMPS (4)ESC004ESC003ESC002ESC001
MassDensityMPB.P Params(4)
RESULTS(4x4)
MassDensityMPB.P
ESC001
ESC002
ESC003
ESC004
Protocol Modelling
• Need to model the experiment
• Parameterise the dimensionality
CMPS (4)ESC004ESC003ESC002ESC001
MassDensityMPB.P Params(5)
RESULTS(4x5)
MassDensityMPB.P
ESC001
ESC002
ESC003
ESC004
IC50
IC50
Protocol Modelling
• Cope with runtime modification
• ‘Stuff’ happens
• Still track data
CMPS (4)ESC002ESC003ESC004ESC001
MassDensityMPB.P Params(5)
RESULTS(4x5)
MassDensityMPB.P
ESC001
ESC004
ESC003
ESC002
IC50
IC50
Modelling Chemistry• How can we model real experiments?
– Instruments– Data
• What about chemical information?
Experiment Modelling• Visual platform
Integration Requirements• Support specialist data types
– Structure, Reaction
• Access to raw data– SDF, RDF, CTFile, Smiles
• Provide processing capabilities– Chemical Business rules– Enumeration
• Not compromise the platform architecture– Java plugin architecture
• Reasonable cost implication• Be compatible with other software• Responsive vendor (support, enhancements, innovation)• Good pedigree
JChem/Marvin
JChem
StandardizeReactor
Teranode API
• Value Type– Custom Viewer
• Large Panels• Dialogs• Small single line/cell views
– Executables• Import• Export• Custom Processes
Chemical Viewercd Plug-In
AbstractStringValueType
ChemicalValueType
LargeChemicalViewer
SmallChemicalViewer
MViewPane
+ setM(Molecule) : void
ChemicalData
+ fromString(String) : void+ toString() : String
ViewerPanel
+ rebuildLocal(JPanel) : void
Teranode API ChemAxon API
Molecule
+ getFormula() : String+ getMass()() : double+ toFormat(String) : String
MolImporter
+ importMol(String) : Molecule
Large Widget
Small Widget
model
model
model
Panel
molecule
Reading smiles
Integration Steps
1. Add Viewers to ValueType
2. Implement RebuildLocal in Viewerprotected void rebuildLocal(JPanel jPanel) { buildGUI(); … }protected void buildGUI() { mainPanel = new MViewPane(); mainPanel.setEditable(2); mainPanel.setM(0, ChemicalUtility.emptyMolecule); }
Integration Steps3.Load Data (SMILES) from modelpublic void load() { super.unregisterWithContext(); // don’t trigger refresh try { data = new ChemData(getProperty().getOutputString()); mainPanel.setM(0,data.getMolecule()); } catch (Exception e) { mainPanel.setM(0,ChemicalUtility.emptyMolecule);
log.warn("Failed to read in molecule", e); } super.registerWithContext(); }
Executable
• File Importers
• Structure Transformations–Standardize
–Reactor
• Searching–Filters
–SSS
public Executable getExecutable(){ if (executable==null) { executable = new
StandardizerExecutable(); } return executable;}
Executablecd Exec
ChemAxon API
Teranode API
AbstractStringValueType
RunAllExecutable
StandarizeValueType
StandarizeExecutable
StandizeData
- destination: Property- source: Property- transform: String
StandizeViewer
+ rebuildLocal(JPanel) : void
Standardizer
MolImporter
+ importMol(String) : Molecule
MViewPane
+ setM(Molecule) : void
ViewerPanel
+ rebuildLocal(JPanel) : void
run
Implementationprotected void executeLocal(GraphObject graphObject) throws
Exception { Property property = m_executeEvent.getExecutableProperty(); String value = property.getOutputString(); Node node = (Node) graphObject;
StandardizerData data = new StandardizerData(node,value); Standardizer standardizer = new Standardizer(data.getRules());
// Read Chemistry from source clean and save to destination ChemicalData chem = new ChemicalData(data.getSource()); Molecule cleaned = standardizer.standardize(chem.getMolecule()); chem.setMolecule(cleaned); data.getDestination().setValueString(chem.toString(), node); }
Chemaxon• Well designed Object Model• Quickly get to chemistry terms not objects
– Leverage domain knowledge– Faster programming
• Robust• Documented• Supported
– Forums– Interested!
• Active Development
Parallel SynthesisReactants
Products
• Layout reagents on synthesis plates
• Apply the reaction
• Enumerate the products
All within a single workflow
Combinatorial Chemistry
Reactants
Products
Reaction
Enumerated Products
Chemical Intelligence
Before After
Applying Chemical Business rules for representation
Chemical IntelligenceStructural Filtering
Split a list of Amines into Primary Secondary, Tertiary and Quaternary Amines
Filter by Structure
Marvin
Integrated Chemistry• Data access• Chemical Indexing
and searching• Integrated Chemical
Intelligence• Web-based Query
and Reporting
JChem
Reactor
Other Edge plugins• Fitting and charting
Futures• Integrate more Chemaxon components
– PhysChem Predictors– Cluster analysis– Reporting– Structure searching within Semantic webstore
• Integration components to databases– ID/Structure lookup
• Integration of screening data– SAR reports etc
Acknowledgements• Chemaxon Software Collaboration
• Teranode Software Collaboration– European Agent
• The Edge Software Consultancy– Robert Shell
More information?
http://www.edgesoftwareconsultancy.com/