Download - Modelling experiments
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/