1 of 23

CompuCell3D Workshop : Module 5.3.4

Cell Lineage Tracing

Priyom Adhyapok

Duke University

Durham, North Carolina

  • Workshop will be live-streamed, recorded and distributed

Support: NIH NIBIB-U24EB028887, NIGMS-R01GM122424, NSF-2120200, NSF-2000281, NSF-1720625, NIGMS-R01GM076692, NIGMS-R01GM077138

2 of 23

Module 5.3.4 Topics

  • Revisiting
    • cell creation
    • growth and division
    • Cell Visualization Fields
    • Dictionary attributes
  • Motivation: Cell Lineage Tracing collecting cells of the same progenitor together
  • Step by step exercises

3 of 23

INTRODUCTION

Ascidian embryonic development. Kumano and Nishida (2007)

  • Tracing cell lineages provides a way to study development from a single cell

  • Pioneering work in model organisms in ascidian embryos (Conklin, 1905), nematodes (Brenner, Horvitz and Sulston) relied on direct observations.

  • Other methods include the use of fluorescent dyes, transplantation techniques and genetic mosaics (Kretzschmar and Watt)

Zebrafish (Kimmel et al., 1990)

Xenopus (Dale and Slack, 1987)

4 of 23

INTRODUCTION

  • Lineage tracing also provides a way to study cancer and tumor growth, by providing a way to identify the source of metastasis

Frumkin et al., (2008)

5 of 23

Overview of CC3D Goals

STEM CELL

Will make use of the following CC3D capabilities

  • Growth and division

  • Cell Ids which will associate a number to each new cell

  • Dictionaries which will keep track of the parent lineages

1

2

3

4

5

6

1

(1,2)

(1,3)

(1,2,5)

(1,2,4)

(6)

Starting simulation at Module_5_3_4_1_CellLineage

6 of 23

Exercise 5.3.4.1 : Basic Twedit++ template

1. Using Twedit++ template, generate a 500 by 500 lattice.

We will check this for now, but will generate own code in Python

2. Add a new cell type called ‘stem’

7 of 23

Exercise 5.3.4.1 : Basic Twedit++ template

3. Skip over this

4. These are the attributes we will be using

8 of 23

Exercise 5.3.4.1 : Basic Twedit++ template

Quick stop at the .xml file to remove the automatic UniformInitializer grid

We will be using the Steppables file to fill in the rest of the changes

9 of 23

Exercise 5.3.4.1 : Creating a cell and defining attributes

STEM CELL

LATTICE

  1. Access positions to place the cell. Lattice dimensions can be referenced with self.dim.x and self.dim.y

2. Use self.new_cell and self.cell_field to create the cell

CC3D Python

Cell Manipulation

Create Cell (detailed)

10 of 23

Exercise 5.3.4.1 : Creating a cell and defining attributes

3. self.cell_field uses initial seeds and

width (set to 10 here) of the cells to place the created cell

4. Next set the target and lambda Volumes

xpos, ypos

11 of 23

Exercise 5.3.4.1 : Creating a cell and defining attributes

4. Final step for this steppable - add three dictionary attributes to keep track of lineage, number of divisions and visualization color

1

(1,2)

(1,3)

(1,2,5)

(1,2,4)

(6)

As cells keep dividing, we will use this ‘list’ to add ids of cells that came from the same parent

12 of 23

Exercise 5.3.4.1 : Describing growth and division for cells

5. We will first set uniform growth properties for all the cells. In GrowthSteppable, define a growth rate by incrementing the targetVolume.

6. Then move on to MitosisSteppable.

We will divide cells when they reach 2*times

their original volume.

Can set the division orientation for cells here. We will let cells divide randomly here

13 of 23

Exercise 5.3.4.1 : Describing growth and division for cells

7. MitosisSteppable uses a function called ‘update_attributes’ to update the newly created child cell’s properties. We will use it to update the child cell’s lists.

BUT FIRST!

Automatic code from Twedit++ swapping cell types of dividing cells. Remove this before proceeding

8. In ‘update_attributes’, add the newly created cell’s id to the lineage list and track it’s number of division.

Function will copy all parent attributes to child

1

(1,2)

(1,3)

14 of 23

Exercise 5.3.4.1 : Describing growth and division for cells

At the end of Step 8, example of visualizing cell field after 2000 MCS

15 of 23

Exercise 5.3.4.2 : Constructing lineages

9. We will use a new steppable to construct our lineages.

  • New steppable automatically updated in the main python script.
  • The Scalar field will associate a visualization output at the level of cell

16 of 23

Exercise 5.3.4.2 : Constructing lineages

10. Assign a name to the scalar field and make sure it’s accessible between CC3D calls

11. Extract out the unique parents that generates each lineage

1

(1,2)

(1,3)

(1,2,5)

(1,2,4)

(6)

In this case, unique parents will be the ones that were created out of the initial stem cell - eg 2,3,6

Using the lineage list, extract the min cell id that formed part of the list. Including 1 will generate only a single lineage

17 of 23

Exercise 5.3.4.2 : Constructing lineages

11. Use the id’s from each unique parent to find it in the cell list. Group if parent id is contained in the child list.

Grouping and coloring by assigning each cell a value between 0 and 1. This will be the input of the visualization field

18 of 23

Exercise 5.3.4.2 : Constructing lineages

Access visualization field in the player

19 of 23

Exercise 5.3.4.3 : Constructing lineages

  • Use scientific plots to plot the number of cells per cluster (xaxis could be the id group number, yaxis the number of cells)
    • Use CC3D Python → Scientific Plots to setup and add data points
    • Make an empty list to collect the unique id number and the cluster length
    • Loop over this list and add id and number of cells to axis
    • Erase plot at the beginning of each simulation

Completed simulation available at Module_5_3_4_3_CellLineage

20 of 23

Exercise 5.3.4.3 :

  • Only select cells between particular ids (eg between 10 and 20) to be the parent cells.

  • Challenges - Using the center of mass plugin, can you plot where these clusters end up in the simulation

21 of 23

Exercise 5.3.4.4 : Contact Inhibited growth

22 of 23

Exercise 5.3.4.4 : Contact Inhibited growth

Only divide if cell is in contact with the medium

Implement contact inhibited growth in each only cells at the periphery divide

Completed simulation available at Module_5_3_4_4_CellLineage

23 of 23

Module 5.1 Questionnaire

Support: NIH NIBIB-U24EB028887, NIGMS-R01GM122424, NSF-188553, NSF-186890, NSF-1720625, NIGMS-R01GM076692, NIGMS-R01GM077138

Please take a minute or two to let us know about your experience with this module by filling out the brief zoom survey

Feel free to provide additional comments and suggestions in the slack or by email to us as well (hfennel@iu.edu)