# Presentation: 682116

## Multi-cellular Logic Circuits

- Jonathan Yedidia
- Mitsubishi Electric Research Laboratories

## +

**Notes:**
Unusual approach to message-passing
frustration with limitations of current approaches
graphical models work well for codes, physics, some inference, but generally?
return to biology
bio courses and conferences
engineering & physics view of
simple but no simpler

## Outline

- A model of the logic of multi-cellular organisms
- Example of the design strategy: a RAM circuit
- Discussion and future prospects
- Biology field trip

## A Simple Model

**“****Network” or “Circuit” or “Organism”**

**“****Program” or “Genome”**

***Key point: all cells have identical specifications***

**Notes:**
Dynamic software
Static hardware

Compared to graphical models:
more complicated cells
introduction of development phase

## Inside a Cell

**Notes:**
“Factor” in the sense of “transcription factors”
names for signals

## Developmental Phase

**=**

*Cell Divisions Triggered by “Developmental Output Signals”*

**Notes:**
Using Geometry to get network structure.

Duplicated Cells are exact copies except for developmental input signals, which
are used to mark parent and child.

## Testing the Adult Circuit

- Input Node #1

- Input Node #2

- Output Node

## More Details and Embellishments

- Reconciliation Functions: If a two or more logic units produce the same output signal, or if a cell receives the same inter-cellular signal from two or more neighboring cells, the value of the signals must be reconciled. For binary signals, an OR function is used.
- Digital, analog, or mixed signals can be used. If analog signals are used, it makes sense to keep them in the range [0, 1], and to use soft logic functions like

- Logic units can be synchronized to a global clock that has discrete time steps; or the cells can be asynchronous, and the logic units could have arbitrary delays.

**Notes:**
Arbitrary decisions; my tastes for simplicity and elegance.

## A Random-Access Memory

- Load

- Input

- Address

- Output

**Notes:**
Just a first example!
Want to make sure we can do well-known things.
RAM not easy for graphical models
Need to recall something arbitrarily long ago
Feedback inside cells will be used
/ means multiple bits

## Standard Design (for Tiny-RAM)

- MUX

- DMUX

- Input

- Load

- Address

- Output

- Register 0

- Register 1

**Notes:**
Mention Delay symbol

## Set-up for Adult Tiny-RAM

## Logic Units in One Tiny-RAM Cell

***I_O***** **

***DI_D***

***F_P***

***F_L***

***F_D***

***DI_P***

***DO_D***

***F_T***

***F_R***

***I_A***

***I_I***

***I_L***

**Notes:**
what is the truthtable
All logic units can be defined by truthtables and delays
delay

Inputs come in from all neighbors, and outputs are sent to all neighbors.

## Scaling up the RAM

- Input
-  Node

- Output
-  Node

- PPP

- PPC

- PCP

- PCC

- CPP

- CPC

- CCP

- CCC

**Notes:**
K bits for address
L bits for input

## Scaling Changes

***I_O***** **

***DI_D***

***F_P***

***F_L***

***F_D***

***DI_P***

***DO_D***

***F_T***

***F_R***

***I_A***

***I_I***

***I_L***

***Unchanged***

## Scaling Changes

***I_O***** **

***DI_D***

***F_P***

***F_L***

***F_D***

***DI_P***

***DO_D***

***F_T***

***F_R***

***I_A***

***I_I***

***I_L***

## LU2:   Or(DI_D, F_D) => F_D

- Or(DI_D, F_D1) => F_D1
- Or(And(DI_D, F_D1), F_D2) => F_D2
-        ...
- Or(And(DI_D, F_D[K-1]), F_D) => F_D

- replaced with

## Scaling Changes

***I_O***** **

***DI_D***

***F_P***

***F_L***

***F_D***

***DI_P***

***DO_D***

***F_T***

***F_R***

***I_A***

***I_I***

***I_L***

## LU3:   Or(DI_P, F_P) => F_P

- Or(And(DI_P,  Not(F_D1)), F_P1) => F_P1
- Or(And(DI_P, F_D1, Not(F_D2)), F_P2) => F_P2
-       ....
- Or(And(DI_P, F_D[k-1], Not(F_D)), F_P[K]) => F_P[K]

- replaced with

## Scaling Changes

***I_O***** **

***DI_D***

***F_P***

***F_L***

***F_D***

***DI_P***

***DO_D***

***F_T***

***F_R***

***I_A***

***I_I***

***I_L***

## LU4:   XOR(I_A, F_P) => F_T

- XOR(I_A1, F_P1) => F_T1
- XOR(I_A2, F_P2) => F_T2
-      ....
- XOR(I_A[k], F_P[k]) => F_T[K]
- And(F_T1, F_T2, .... , F_T[K]) => F_T

- replaced with

- plus

## Scaling Changes

***I_O***** **

***DI_D***

***F_P***

***F_L***

***F_D***

***DI_P***

***DO_D***

***F_T***

***F_R***

***I_A***

***I_I***

***I_L***

***Unchanged***

## Scaling Changes

***I_O***** **

***DI_D***

***F_P***

***F_L***

***F_D***

***DI_P***

***DO_D***

***F_T***

***F_R***

***I_A***

***I_I***

***I_L***

***Unchanged***

## LU6:   TRUTH{01000111}(I_I, F_L, F_R) => F_R

- TRUTH{01000111}(I_I1, F_L, F_R1) => F_R1
- TRUTH{01000111}(I_I2, F_L, F_R2) => F_R2
-      ....
- TRUTH{01000111}(I_I[L], F_L, F_R[L]) => F_R[L]

- replaced with

## Scaling Changes

***I_O***** **

***DI_D***

***F_P***

***F_L***

***F_D***

***DI_P***

***DO_D***

***F_T***

***F_R***

***I_A***

***I_I***

***I_L***

***Unchanged***

## LU7:    And(F_T, F_R) => I_O

- And(F_T, F_R1) => I_O1
- And(F_T, F_R2) => I_O2
-       ....
- And(F_T, F_R[L]) => I_O[L]

- replaced with

## Advantages of multi-cellular logic circuits

- Can compactly specify a very large network
- Automatic code re-use
- Potentially convenient for mass-production
- Perhaps a compact specification is nice for genetic algorithms, or other blind search strategies.
- Using many cells with identical specifications seems to be a key part of nature’s design strategy for building complex machines.

## Future Directions

- Evolve multi-cellular logic circuits
- Design/Evolve more complex circuits (e.g. a CPU)
- Evolve circuits that perform inference
- All sorts of “biological” modeling possibilities: “mating” circuits, an embryo circuit developing inside a “mother” circuit, etc.
- Multi-cellular organisms with physical structure: add motors and springs.

**Notes:**
Evolution doublethink

## C. elegans: a favorite multi-cellular “model organism”

- Figure 10.1a * The Biology of Cancer* (© Garland Science 2007), R. Weinberg

**Notes:**
Caenorhabditis
959 cells in adult hermaphrodite
1031 in adult male
302 Neurons - complete wiring known

About 19-20,000 genes -- roughly same as humans,
but only about 100,000,000 basepairs

## from B. Goldstein lab, U.N.C.

## First Stages of Embryonic Development

- Hannak, E., et.al., J. Cell Biology, 2001

## Complete Embryonic Development

- from B. Goldstein lab, U.N.C.

**Notes:**
556 cells when it hatches

## Portion of the C. Elegans Cell Lineage

- Portion of the *C. Elegans* Cell Lineage

## Intra-cellular Signals

**Notes:**
Moving from the level of an organism to the level of a single cell

## Transcription Control

- Figure 1.19 * The Biology of Cancer* (© Garland Science 2007) R. Weinberg

**Notes:**
Single base pair mutations in enhancers give evolution!

## Biological Signal Processing

## Slide 36

## Slide 37

## Slide 38

## Slide 39

## Slide 40

## Slide 41

## Slide 42

## Slide 43

## Longabaugh, et.al.,  Developmental Biology, 2005

*Longabaugh, et.al.,  Developmental Biology, 2005*