object-oriented programming [2mm] for biomodellingsivanov/content/seminars/...postdoc: oop...

Post on 20-May-2021

3 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Object-oriented Programming

for Biomodelling

Sergiu Ivanov

sergiu.ivanov@univ-grenoble-alpes.fr

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/

top related