15
Introducing E-Cell 3.2 Moriyoshi Koizumi <[email protected] > Biochemical Simulation Research Team, Advanced Science Institute, RIKEN

Introducing E-Cell 3.2

Embed Size (px)

DESCRIPTION

Slides used in my talk at E-Cell Workshop 2010

Citation preview

Page 1: Introducing E-Cell 3.2

Introducing E-Cell 3.2Moriyoshi Koizumi <[email protected]>

Biochemical Simulation Research Team,Advanced Science Institute,

RIKEN

Page 2: Introducing E-Cell 3.2

Summary

• About E-Cell 3.2

• 3.2.0 just got out of the door

• What's new in 3.2?

• Towards E-Cell 4

Page 3: Introducing E-Cell 3.2

E-Cell 3.2.0 released

Page 4: Introducing E-Cell 3.2

E-Cell 3.2.0• The very first release of 3.2 series

• Many major and minor bugs have been fixed since 3.1.107

• New features that may draw some attention

• All users are encouraged to upgrade to 3.2.0

Page 5: Introducing E-Cell 3.2

Bugfixes

• Through overhaul of DM facility

• There were major design issues that had caused instability.

• Lots of API change involved.

• Binary compatibility has been lost!

• You need to recompile DM's.

Page 6: Introducing E-Cell 3.2

Bugfixes• A Long-standing differential stepper

problem

• Velocity was not correctly calculated right after (re)initialization

• DifferentialStepper API has been changed

• StepInterval ➡ NextTime

• updateInternalState()

Page 7: Introducing E-Cell 3.2

Bugfixes

• Reimplementation of session manager

• Much more stability

• especially used on the local machine

• Support for Globus 4

• LSF support (by Giuseppe Aprea)

Page 8: Introducing E-Cell 3.2

t=0

stopbefore 3.2.0

3.2.0

restart

restart

stop

Page 9: Introducing E-Cell 3.2

Other changes• Many API functions are now

deprecated.

• VariableReference::getValue() etc.

• libemc is declared obsolete

• Polymorph class was refactored to be more efficient

• Added Model::deleteEntity() to support dynamically generated reaction rules

Page 10: Introducing E-Cell 3.2

Other changes• Python code was updated to use

modern library functions

• Improvements on Python binding

• Optimization of Logger to NumPy interface

• Providing interface to directly manipulate C++ objects

• Now users can implement Processes, Variables and Systems in Python!

Page 11: Introducing E-Cell 3.2

from ecell.ecs import Process, Variable

class MyProcess(Process): IsContinuous = True def initialize(self): pass

def fire(self): return 1

class MyVariable(Variable): def initialize(self): pass

def onValueChanging(self, val): return val

theSimulator.addPythonDM(MyProcess)theSimulator.addPythonDM(MyVariable)loadModel('mymodel.eml')run(100)

Page 12: Introducing E-Cell 3.2

Other changes

• Official support for the following platforms:

• Mac OS X

• 64bit Windows

• Removed dependency on glade in favor of GtkBuilder

Page 13: Introducing E-Cell 3.2

Towards E-Cell 4• E-Cell 4 will be highly rule-based and

also highly scriptable

• Script-based modeling is already covered in 3.2

• migration from EmPy

• Rule-based modeling will be supported in 3.3

Page 14: Introducing E-Cell 3.2

rootSystem = sim.getEntity('System::/')S = sim.createVariable('Variable')P = sim.createVariable('Variable')E = sim.createProcess('MassActionFluxProcess')rootSystem.registerEntity(S)rootSystem.registerEntity(P)rootSystem.registerEntity(E)

S.ID = 'S'

P.ID = 'P'

E.ID = 'E'E.k = .3E.VariableReferences.add('S0', S, -1)E.VariableReferences.add('P0', P, 1)

sim.run()

Page 15: Introducing E-Cell 3.2

Acknowledgements• JST CREST

• KEIO UniversityMasaru Tomita, Takeshi Sakurada, Kazunari Kaizu, Taiko Nishino, Ayako "Kinoshita" Yachie and many kind students.

• RIKENKoichi Takahashi, Satya Nanda Vel Arjunan

• Mitsubishi Space SoftwareSachio Nohara, Chihiro Okada, Yasuo Ohara, Gen Ishikawa and Takeshi Yuasa