object-oriented programming [2mm] for biomodellingsivanov/content/seminars/...postdoc: oop...
TRANSCRIPT
Object-oriented Programming
for Biomodelling
Sergiu Ivanov
Université Grenoble Alpes
February 10, for RMoD
My Previous Research on Formal Models
Rewriting
string rewriting
A B → B a
multiset rewriting
a
b
c
d
Machines
Register machinesR1
R2
...
Rn
Turing machines
a b 1· · · · · ·
qi
Apply to complex biological systems
Sergiu Ivanov, Université Grenoble Alpes Object-oriented Programming for Biomodelling 1/14
My Previous Research on Formal Models
Rewriting
string rewriting
A B → B a
multiset rewriting
a
b
c
d
Machines
Register machinesR1
R2
...
Rn
Turing machines
a b 1· · · · · ·
qi
Apply to complex biological systems
Sergiu Ivanov, Université Grenoble Alpes Object-oriented Programming for Biomodelling 1/14
My Previous Research on Formal Models
Rewriting
string rewriting
A B → B a
multiset rewriting
a
b
c
d
MachinesRegister machines
R1
R2
...
Rn
Turing machines
a b 1· · · · · ·
qi
Apply to complex biological systems
Sergiu Ivanov, Université Grenoble Alpes Object-oriented Programming for Biomodelling 1/14
My Previous Research on Formal Models
Rewriting
string rewriting
A B → B a
multiset rewriting
a
b
c
d
MachinesRegister machines
R1
R2
...
Rn
Turing machines
a b 1· · · · · ·
qi
Apply to complex biological systems
Sergiu Ivanov, Université Grenoble Alpes Object-oriented Programming for Biomodelling 1/14
In the Meantime, Much Programming▶ applications in research ▶ side projects
Functionalprogramming
Haskell
▶ solvers
▶ simulators
▶ teaching
Object-orientedprogramming
Python
▶ category theory module
for SymPy
C++ [no logo :-(]
▶ postdoc
Postdoc: OOP biomodellingapply
Sergiu Ivanov, Université Grenoble Alpes Object-oriented Programming for Biomodelling 2/14
https://openclipart.org/
In the Meantime, Much Programming▶ applications in research ▶ side projects
Functionalprogramming
Haskell
▶ solvers
▶ simulators
▶ teaching
Object-orientedprogramming
Python
▶ category theory module
for SymPy
C++ [no logo :-(]
▶ postdoc
Postdoc: OOP biomodellingapply
Sergiu Ivanov, Université Grenoble Alpes Object-oriented Programming for Biomodelling 2/14
https://openclipart.org/
In the Meantime, Much Programming▶ applications in research ▶ side projects
Functionalprogramming
Haskell
▶ solvers
▶ simulators
▶ teaching
Object-orientedprogramming
Python
▶ category theory module
for SymPy
C++ [no logo :-(]
▶ postdoc
Postdoc: OOP biomodellingapply
Sergiu Ivanov, Université Grenoble Alpes Object-oriented Programming for Biomodelling 2/14
https://openclipart.org/
Postdoc: OOP biomodellingapply
▶ generic
▶ extensible
▶ parallel
Modelling framework
Goal:Develop a biomechanical model
of microtubules
▶ mass-spring-based
Sergiu Ivanov, Université Grenoble Alpes Object-oriented Programming for Biomodelling 3/14
https://openclipart.org/
Outline
1. Microtubules: Biology and Modelling
2. Grid Registers
3. Grid Register Transformers
4. Real Coordinates
Sergiu Ivanov, Université Grenoble Alpes Object-oriented Programming for Biomodelling –/14
Outline
1. Microtubules: Biology and Modelling
2. Grid Registers
3. Grid Register Transformers
4. Real Coordinates
Sergiu Ivanov, Université Grenoble Alpes Object-oriented Programming for Biomodelling –/14
Microtubules▶ tubular polymers of tubuline▶ support the shape of the cell▶ support the cellular transport
The characteristic shapeand size of a microtubule.
Microtubules formdense structures.
Sergiu Ivanov, Université Grenoble Alpes Object-oriented Programming for Biomodelling 4/14
Microtubules as Mass-spring Systems
Modelling microtubules as a system of masses con-
nected with springs gives good results.
Sergiu Ivanov, Université Grenoble Alpes Object-oriented Programming for Biomodelling 5/14
Outline
1. Microtubules: Biology and Modelling
2. Grid Registers
3. Grid Register Transformers
4. Real Coordinates
Sergiu Ivanov, Université Grenoble Alpes Object-oriented Programming for Biomodelling –/14
What We Want: Masses and Springs
mass
spring
agent
Discretise on a grid
▶ to simulate the diffusion of reactants
Sergiu Ivanov, Université Grenoble Alpes Object-oriented Programming for Biomodelling 6/14
What We Want: Masses and Springs
mass
springagent
Discretise on a grid
▶ to simulate the diffusion of reactants
Sergiu Ivanov, Université Grenoble Alpes Object-oriented Programming for Biomodelling 6/14
What We Want: Masses and Springs
mass
springagent
Discretise on a grid
▶ to simulate the diffusion of reactants
Sergiu Ivanov, Université Grenoble Alpes Object-oriented Programming for Biomodelling 6/14
What We Want: Grid Registers of Agents
agent = payload + cursor
The cursors handle (abstract away) the mouvement.
Register (grid of cursors)
cursor
payload
Sergiu Ivanov, Université Grenoble Alpes Object-oriented Programming for Biomodelling 7/14
https://openclipart.org/
What We Want: Grid Registers of Agents
agent = payload + cursor
The cursors handle (abstract away) the mouvement.
Register (grid of cursors)
cursor
payload
Sergiu Ivanov, Université Grenoble Alpes Object-oriented Programming for Biomodelling 7/14
https://openclipart.org/
What We Want: Grid Registers of Agents
agent = payload + cursor
The cursors handle (abstract away) the mouvement.
Register (grid of cursors)
cursor
payload
Sergiu Ivanov, Université Grenoble Alpes Object-oriented Programming for Biomodelling 7/14
https://openclipart.org/
Grid Registers of Cursors: Implementation
Grid3DRegister
Payload, Size
Cursor
movetrue/false
move
true/false
register:Grid3DRegister cursor:Cursor user
Sergiu Ivanov, Université Grenoble Alpes Object-oriented Programming for Biomodelling 8/14
https://perso.ensta-paristech.fr/~kielbasi/tikzuml/
Outline
1. Microtubules: Biology and Modelling
2. Grid Registers
3. Grid Register Transformers
4. Real Coordinates
Sergiu Ivanov, Université Grenoble Alpes Object-oriented Programming for Biomodelling –/14
Grid Register Transformers
Register
Transformer▶ a kind of a register
▶ changes the way the
cursors move
▶ superposition of
behaviour
▶ transformers can besuperposed
wink-wink Haskell and monad transformers ;-)
Sergiu Ivanov, Université Grenoble Alpes Object-oriented Programming for Biomodelling 9/14
https://openclipart.org/
Grid Register Transformers
Register
Transformer▶ a kind of a register
▶ changes the way the
cursors move
▶ superposition of
behaviour
▶ transformers can besuperposed
wink-wink Haskell and monad transformers ;-)
Sergiu Ivanov, Université Grenoble Alpes Object-oriented Programming for Biomodelling 9/14
https://openclipart.org/
Grid Register Transformers
Register
Transformer▶ a kind of a register
▶ changes the way the
cursors move
▶ superposition of
behaviour
▶ transformers can besuperposed
wink-wink Haskell and monad transformers ;-)
Sergiu Ivanov, Université Grenoble Alpes Object-oriented Programming for Biomodelling 9/14
https://openclipart.org/
Grid Register Transformers: Examples
Obstacles
Adaptors
▶ connect several registers
▶ connect a register to itself
[demo]
Sergiu Ivanov, Université Grenoble Alpes Object-oriented Programming for Biomodelling 10/14
https://openclipart.org/
Grid Register Transformers: ImplementationExplode Grid3DRegister:
1Grid3DRegister
DefaultGrid3DRegister Transformer
Transformers are transparent to cursors:
movetrue/false
move
true/false
move
true/false
register transformer cursor user
Sergiu Ivanov, Université Grenoble Alpes Object-oriented Programming for Biomodelling 11/14
https://perso.ensta-paristech.fr/~kielbasi/tikzuml/
Grid Register Transformers: ImplementationExplode Grid3DRegister:
1Grid3DRegister
DefaultGrid3DRegister Transformer
Transformers are transparent to cursors:
movetrue/false
move
true/false
move
true/false
register transformer cursor user
Sergiu Ivanov, Université Grenoble Alpes Object-oriented Programming for Biomodelling 11/14
https://perso.ensta-paristech.fr/~kielbasi/tikzuml/
Outline
1. Microtubules: Biology and Modelling
2. Grid Registers
3. Grid Register Transformers
4. Real Coordinates
Sergiu Ivanov, Université Grenoble Alpes Object-oriented Programming for Biomodelling –/14
Cursors with Real Coordinates
RealCursor Cursor
Handles the discretisation.Handles the discretisation.
Real coordinates grid coordinatesinfluence
▶ unnecessary dependence
▶ difficult to maintain
Sergiu Ivanov, Université Grenoble Alpes Object-oriented Programming for Biomodelling 12/14
https://perso.ensta-paristech.fr/~kielbasi/tikzuml/
Cursors with Real Coordinates
RealCursor Cursor
Handles the discretisation.Handles the discretisation.
Real coordinates grid coordinatesinfluence
▶ unnecessary dependence
▶ difficult to maintain
Sergiu Ivanov, Université Grenoble Alpes Object-oriented Programming for Biomodelling 12/14
https://perso.ensta-paristech.fr/~kielbasi/tikzuml/
Real Coordinates + Transformers = ?
≪don’t know≫Transformer RealCursor
Cast is you friend.
▶ only at cursor creation
▶ everything works with casts
RealTransformer Transformer ??
Sergiu Ivanov, Université Grenoble Alpes Object-oriented Programming for Biomodelling 13/14
https://openclipart.org/https://perso.ensta-paristech.fr/~kielbasi/tikzuml/
Real Coordinates + Transformers = ?
≪don’t know≫Transformer RealCursor
Cast is you friend.
▶ only at cursor creation
▶ everything works with casts
RealTransformer Transformer ??
Sergiu Ivanov, Université Grenoble Alpes Object-oriented Programming for Biomodelling 13/14
https://openclipart.org/https://perso.ensta-paristech.fr/~kielbasi/tikzuml/
Real Coordinates + Transformers = ?
≪don’t know≫Transformer RealCursor
Cast is you friend.
▶ only at cursor creation
▶ everything works with casts
RealTransformer Transformer ??Sergiu Ivanov, Université Grenoble Alpes Object-oriented Programming for Biomodelling 13/14
https://openclipart.org/https://perso.ensta-paristech.fr/~kielbasi/tikzuml/
Conclusions and Open Questions
▶ OOP biomodellingapply
▶ agent = payload + cursor
▶ Transformer for compositional behaviour
? Transformer + RealCursor
Sergiu Ivanov, Université Grenoble Alpes Object-oriented Programming for Biomodelling 14/14
https://openclipart.org/https://perso.ensta-paristech.fr/~kielbasi/tikzuml/