CellDesigner Tutorialcelldesigner.org/~funa/CellDesignerTutorial.pdf · CellDesigner Tutorial Akira...

Preview:

Citation preview

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

Recommended