Date post: | 17-Mar-2018 |
Category: |
Documents |
Upload: | duongkhuong |
View: | 224 times |
Download: | 2 times |
CellDesigner Tutorial
Akira FunahashiKitano Symbiotic Systems Project, JST, ERATO-SORST8th Oct. 2006
Overview
Introduction of CellDesignerSBML (Systems Biology Markup Language)SBGN (Graphical Notation)
How to build a model with CellDesignerHow to create CellDesigner plugin
AcknowledgmentSBML * Caltech John Doyle Michael Hucka Ben Bornstein Bruce Shapiro Ben Kovitz * Univ. Hertfordshire Andrew Finney Sarah Keating Maria Schilstra Joanne Matthews * SBI Hiroaki Kitano
SBGN Hiroaki Kitano (SBI) Yukiko Matsuoka (SBI) Michael Hucka (Caltech) Nicolas Le Novere (EBI)
CellDesigner * SBI Akiya Jouraku Yukiko Matsuoka Hiroaki Kitano * MKI Norihiro Kikuchi Yusuke Tamaru * Mizuho-IR Naoki Tanimura * Univ. Vienna Rainer Machne Christoph Flamm * KGI Frank Bergmann Herbert Sauro * SRI Huaiyu Mi Anushya Muruganujan
Models Noriko Hiroi (SBI) Akiya Jouraku (SBI) Yukiko Matsuoka (SBI)
Software InfrastructureModel representation
Database
Software toolsStandard representationmethod of biologicalmodels
CellDesigner
Jarnac Plot Gibson
CellDesigner+ +
CellDesigner=
+
SBMLSBML (Systems Biology Markup Language)A machine-readable format (XML) for representing computational models in systems biology
Compartment Species Reaction
What kind of model can you express in SBML?
Focus: systems of biochemical reactions
Model can also include:CompartmentsRules/ConstraintsEvents
Many phenomena can be expressed in this form
aA+bB f([A],[B],[C],X) cCnC +oD f([C],[D],[E],Y) tE +hF
What does SBML look like?
<?xml version="1.0" encoding="UTF-8"?><sbml xmlns = "http://www.sbml.org/sbml/level1" level = "2" version = "1">
<model name = "ATitle"> <listOfCompartments> </listOfCompartments> <listOfSpecies> </listOfSpecies> <listOfReactions> </listOfReactions> </model></sbml>
Reactions According to SBML
Modifiers: M
Reactants: R
Products: P
‘Kinetic law’:v = f( R, P, M, parameters )
What does SBML look like?
Over 100 software packages support SBMLhttp://sbml.org
Applications Supporting SBML
SBGNGraphical Notation for representing biological interactionsprotein-protein interaction, gene regulatory networks
Kitano, H. et al. "Using process diagrams for the graphical representation of biological networks", Nature Biotechnology 23(8), 961 - 966 (2005)
Notation
Examples: NFkBProcess Diagram
Examples: NFkBBlock Diagram
Examples: NFkBMolecular Interaction Map (Kohn Map)
Examples: NFkBEdinburgh Notation
SBGN communityBioModels Database
BioPAX
BioUML (Russia)
CellDesigner (Japan)
CellML (New Zealand)
COPASI (Germany)
Cytoscape (USA)
Design Suite (USA)
EPE, EPN (UK)
INOH (Japan)
JDesigner (USA)
Narrator (UK)
Panther (USA)
ProMot (Germany)
QBT (USA)
SBML Layout extension
Virtual Cell (USA)And more...
Graphical notation SBMLSpecies type, Reaction type is stored in <annotation> for each species, reactionsLayout information is stored separately (just as same as SBML layout extension)
<sbml> <model> <annotation> layout information </annotation> <listOfSpecies> <species> <annotation>species type</annotation> </species> </model></sbml>
<celldesigner:speciesAlias compartmentAlias="ca3" id="a3" species="s3"> <celldesigner:activity>active</celldesigner:activity> <celldesigner:bounds h="40.0" w="80.0" x="559.0" y="184.0"> </celldesigner:bounds> <celldesigner:singleLine width="1.0"></celldesigner:singleLine> <celldesigner:paint color="ffb3d2ff" scheme="Gradation"> </celldesigner:paint></celldesigner:speciesAlias>
Graphical notation SBML
SBML w/ or w/o notationPure SBML (w/o notation)
w/ notation
CellDesigner+ +
CellDesigner=
+
CellDesigner
http://celldesigner.org
Full SBML supportGraphical notation (SBGN)Built-in simulator (SBML ODE Solver)Integrate with Analysis tool, other simulators through SBWDatabase connectionExport to PDF, PNG, etc.Freely availableSupported Environment
Windows (2000 or later)Mac OS XLinux
CellDesigner 4.0 alphaAuto-layout functionPlugin development frameworkGUI improvement
Auto-layout
uVol
MKKK P MKKK
MKKP
MKKP
P
MKK
MAPKP
MAPKP
P
MAPK
uVol
MKKK
P MKKK
MKK
P
MKK
P
P
MKK
MAPK
P
MAPK
P
P
MAPK
uVol
MKKK
P MKKK
MKK
P
MKK
P
P
MKK
MAPK
P
MAPK
P
P
MAPK
uVol
MKKK P MKKK
MKK
P
MKK
P
P
MKK
MAPK
P
MAPK
P
P
MAPK
uVol
MKKKP MKKK
MKKP
MKK
P
P
MKK
MAPKP
MAPK
P
P
MAPK
Plugin developmentDevelop plugin on EclipseCall plugin from [Plugin] menu on CellDesigner
Download
Please download CellDesigner 4.0 alpha from
http://celldesigner.org/
Installation
DemonstrationCreate new model:
[File] → [New] → input title → [OK]
TipsEnable [Grid Snap] will help you draw your model much easier
Create Reaction
Add Anchor PointAdd 2 anchor points to reactionDrag reaction and anchor point to change its shape
Add Catalysis reaction
Add Protein “C”Add Catalysis reaction from “C” to the reaction
Set Active stateSelect Protein “B”[Component] → [Set Active]
Change ColorRight click on Protein “C”Select [Change Color & Shape...]
CompartmentClick [Compartment] icon
Drag mouse cursor to specify its areaInput name of compartment
Add Residue to ProteinCreate new model (test2)Create Protein “A”Select Protein “A” in [Proteins] TabClick [Edit] button
Add Residue to ProteinClick [add] button on [Protein] dialogInput name for the residue (tst1)Click [Close] buttonClick [Update] Button
Add Residue to ProteinCopy & Past Protein “A” and then draw “State Transition” arrowRight Click on “A” (right side) and select [Change Identity...]Click residue “tst1” in DialogSelect [phosphorylated] in modification
Change position of ResidueSelect Protein “A” in [Proteins] TabClick [Edit] buttonClick residue “tst1” in DialogClick [edit] buttonDrag [angle] slidebar
ComplexCreate new model (test3)Create Proteins “A” and “B”Copy & Paste both “A” and “B”
Complex
Click [Complex] icon and create complex “C”
Drag Protein “A” and “B” into complex CDraw “Association” arrow
Gene & RNACreate new model (test4)Create gene, RNA and ProteinDraw “Transcription” and “Translation”
See “geneRNA.xml” for more examples
Database connectionSearch Database by Name:
SGDDBGETiHOPEntrez GeneGenome Network Platform
Database connectionSearch Database by Notes:
PubMed: PMID: 123456Entrez Gene: GeneID: 4015
Database connectionImport model from BioModels.net
Auto layout[File] → [Open] → samples/MAPK.xml[Layout] → [Orthogonal Layout]
Auto layout
uVol
MKKK
P MKKK
MKK
P
MKK
P
P
MKK
MAPK
P
MAPK
P
P
MAPK
uVol
MKKK
P MKKK
MKK
P
MKK
P
P
MKK
MAPK
P
MAPK
P
P
MAPK
uVol
MKKK P MKKK
MKK
P
MKK
P
P
MKK
MAPK
P
MAPK
P
P
MAPKuVol
MKKKP MKKK
MKKP
MKK
P
P
MKK
MAPKP
MAPK
P
P
MAPK
Simulation (ex1)Create following biochemical reactionClick [Simulation] → [ControlPanel] and call SBML ODE Solver
d[B]/d[t] = k * [A]
k = 0.3A = 0.1B = 0
Simulation (ex1)Create new model (ex1)Create reactionRight click on the reaction and select [Edit KineticLaw...]
Simulation (ex1)Click [New] button on [Parameters] tab
Input values as follows:id: kname: kvalue: 0.3
d[B]/d[t] = k * [A]
k = 0.3A = 0.1B = 0
Simulation (ex1)Select parameter “k”Click top most text fieldClick [copy] buttonClick [*] buttonSelect Protein “A”Click top most text fieldClick [copy] button
d[B]/d[t] = k * [A]
k = 0.3A = 0.1B = 0
Simulation (ex1)Double click [initialQuantity] column for Protein “A”
Set value as 0.1
d[B]/d[t] = k * [A]
k = 0.3A = 0.1B = 0
Simulation (ex1)
Click [Simulation] → [ControlPanel]Set [End Time] to 20Click [Execute] button
Simulation (ex2)Create following biochemical reactionsExecute simulation from [ControlPanel]
A = 0.5
B = 0.2
k1 * A * Bk1 = 0.3
C = 0.01 D = 0.02
E = 0
F = 0
k2 * C k3 * Dk3 = 0.6k2 = 0.01
0 < t < 100
Simulation (ex2)Change parameter k1 to 30.0
A = 0.5
B = 0.2
k1 * A * Bk1 = 0.3
C = 0.01 D = 0.02
E = 0
F = 0
k2 * C k3 * Dk3 = 0.6k2 = 0.01
0 < t < 100
k1 = 30.0
k1 = 0.3 k1 = 30.0
Simulation (ex2)Click [Parameters] tabDouble click [Value] column for k1Change parameter k1 to 30.0
Simulation (ex2)Click [Interactive Simulation] tabClick [Parameter value] radio buttonClick [Define Range] buttonClick [Max] column for k1 and set value as 3.0
Drag sliderbar for k1
Create following model on CellDesigner
Exercise
re1re2
re3 re4
re6
re10 re9
re8re7
re5
Kinetic LawReaction Rate
re1 V1 * MKKK / ((1 + MAPK_PP / Ki) * (k1 + MKKK))
re2 V2 * MKKK_P / (KK2 + MKKK_P)
re3 k3 * MKKK_P * MKK / (KK3 + MKK)
re4 k4 * MKKK_P * MKK_P / (KK4 + MKK_P)
re5 V5 * MKK_PP / (KK5 + MKK_PP)
re6 V6 * MKK_P / (KK6 + MKK_P)
re7 k7 * MKK_PP * MAPK / (KK7 + MAPK)
re8 k8 * MKK_PP * MAPK_P / (KK8 + MAPK_P)
re9 V9 * MAPK_PP / (KK9 + MAPK_PP)
re10 V10 * MAPK_P / (KK10 + MAPK_P)
Initial amount & parametersSpecies value
MKKK 90
MKKK_P 10
MKK 280
MKK_P 10
MKK_PP 10
MAPK 280
MAPK_P 10
MAPK_PP 10
Parameter valueV1 2.5Ki 9.0k1 10.0V2 0.25KK2 8.0k3 0.025KK3 15.0k4 0.025KK4 15.0V5 0.75KK5 15.0
Parameter valueV6 0.75KK6 15.0k7 0.025KK7 15.0k8 0.025KK8 15.0V9 0.5KK9 15.0V10 0.5KK10 15.0
Simulation resultsEnd Time: 4000
Plugin development
Plugin developmentDevelop plugin on EclipseCall plugin from [Plugin] menu on CellDesigner
Development environment
CellDesigner 4.0 alphaJDK 1.5.0 or 1.4.2 (for MacOSX 10.3)Eclipse (tested on 3.2.1)
How to Install PluginsCopy plugin file (.jar file) to CellDesigner’s plugin folder
Windows: C:/Program Files/CellDesigner4.0alpha/pluginMacOSX: /Applications/CellDesigner4.0alpha/plugin
Sample pluginCopy sample_plugin.jar in samples/plugin/jar folder to plugin folderRestart CellDesigner
Sample plugin[File] → [Open] → samples/MAPK.xml[Plugin] → [Sample Plugin1] → [Open Sample Plugin1 dialog]Select MKKK and click [GET]
Sample plugin
Create new modelInput Species Information and click [ADD]
How to build your pluginDownload Eclipse 3.2.1 from
http://www.eclipse.org/Launch Eclipse and specify your workspace (ex. Desktop/workspace)Click [Workbench] icon
Create new project[File] → [New] → [Project]Select “Java Project” and click [Next]Input “Project name” (MyPlugin) and select [Create separate source and output folders]
Import sample sourceClick [+] button next to [MyPlugin] Right click “src” folder and click [Import]Select [File system] and click [Next]
Import source fileClick [Browse] button next to “From directory”Select “C:\Program Files\CellDesigner4.0alpha\samples\plugin\src” and click [OK]Click check box next to “src” folder
Select Java Build PathRight click [MyPlugin] → [Properties]Click [Java Build Path] and click [Libraries] tabClick [Add External JARs] button
Select Java Build PathSelect following .jar files
C:\Program Files\CellDesigner4.0alpha\exec\celldesigner.jarC:\Program Files\CellDesigner4.0alpha\lib\sbmlj.jar
CompileImported java source files are automatically compiled and java class files are generated in the "bin" directory of your project directory
NG OK
Generate jar filesRight click [MyPlugin] → [Export]Select [JAR file] and click [Next]
Generate jar filesCheck your project (MyPlugin)Select [Export generated class files and resources]Specify JAR file
Put jar file to plugin folder
How to implement pluginWrite your plugin class
extend CellDesignerPlugin classWrite an action class
extend PluginAction classCreate menu and menu item
use PluginMenu, PluginMenuItemRegister PluginMenu to CellDesigner
use addCellDesignerPluginMenu()Implement some methods to receive events from CellDesigner
1. Write your plugin classYour plugin class must extend the CellDesignerPlugin class. CellDesigner will call the constructor of your plugin class to instantiate it.
public class SamplePlugin extends CellDesignerPlugin { // Constructor public SamplePlugin() {
}
}
2. Write action classWrite an action class which extends the PluginAction class for an action event that would be passed when the plugin menu is selected on CellDesigner.
public class SampleAction extends PluginAction {
public SampleAction(SamplePlugin plugin) {// Write your code for constructor
}
public void myActionPerformed(ActionEvent e) {// Write your code for action event
}}
3. Create menu and itemUse PluginMenu class and PluginMenuItem class to create menus on CellDesigner. Register the action class to the PluginMenuItem for CellDesigner to invoke the action.
public class SamplePlugin extends CellDesignerPlugin {// Constructorpublic SamplePlugin() {
PluginMenu menu = new PluginMenu(“Sample”);SampleAction action = new SampleAction(this);PluginMenuItem item = new PluginMenuItem(“Sample1”, action);menu.add(item);addCellDesignerPluginMenu(menu);
} }
4. Register PluginMenuUse following methods to register PluginMenu to CellDesigner
addCellDesignerPluginMenu()Register menu to Plugin menu
addSpeciesPopupMenu()addReactionPopupMenu()addCompartmentPopupMenu()
Register menu to right-clicked pop-up menu
5. Implement methodsImplement following methods to receive events from CellDesigner (required).
public class SamplePlugin extends CellDesignerPlugin {public SamplePlugin() {} // Constructorpublic void addPluginMenu() {} // add PluginMenu
public void SBaseAdded(PluginSBase sbase) {}public void SBaseChanged(PluginSBase sbase) {}public void SBaseDeleted(PluginSBase sbase) {}public void modelOpened(PluginSBase sbase) {}public void modelSelectChanged(PluginSBase sbase) {}public void modelClosed(PluginSBase sbase) {}
}
Accessible informationPlugin can get following information
Selected model (SBML)PluginModel getSelectedModel()
All opened model (SBML)PluginListOf getAllModels()
Selected node on modelPluginListOf getSelectedAllNode()
All nodes on modelPluginListOf getAllSpeciesNodes()
Notification from PluginYou can implement functions to add, update and delete PluginSBase in CellDesignerPlugin. The Plugin can notify CellDesigner these changes via CellDesignerPlugin interface.
notifySBaseAdded(PluginSBase sbase)notifySBaseChanged(PluginSBase sbase)notifySBaseDeleted(PluginSBase sbase)
RestrictionSome actions trigger sequential actions. You have to implement the sequential actions in your plugin.
S2 S3
Example: delete species S2
S1
S3S1
S3S1
Example codeGet Species properties from CellDesigner
private void getSelectedSpecies() {PluginListOf lof = plugin.getSelectedSpeciesNode();if (lof != null) {
// get PluginSpeciesAliasPluginSpeciesAlias alias = (PluginSpeciesAlias)lof.get(0);
// get positiondouble x = alias.getX();double y = alias.getY();
// get SpeciesPluginSpecies sp = alias.getSpecies();String name = sp.getName();String id = sp.getId();}
}
S1
(100, 150)
Example pluginGet SpeciesAlias info
Print out SpeciesAlias info (for debug)Change SpeciesAlias property
Change color, size, position of Proteins depend on its name (work with MAPK.xml)
Visualize InitialAmountChange color of Species when its InitialAmount < 20.0
http://celldesigner.org/funasample.zip