|
1 | 1 | /// IMPORT THE POSTERS PACKAGE
|
2 |
| -#import "peace-of-posters/lib.typ": * |
| 2 | +#import "@preview/peace-of-posters:0.4.3" as pop |
3 | 3 |
|
4 | 4 | // Define overall formatting defaults for the document.
|
5 | 5 | // These settings can be overwritten later on.
|
6 |
| -#set page( |
7 |
| - "a0", |
8 |
| - margin: 1.5cm, |
9 |
| -) |
10 |
| -#set-layout(layout-a0) |
11 |
| -#set text( |
12 |
| - font: "Arial", |
13 |
| - size: layout-a0.at("body-size"), |
14 |
| -) |
15 |
| - |
16 | 6 | #let spacing = 1.2em
|
17 |
| -#set block(spacing: spacing) |
18 |
| -#set columns(gutter: spacing) |
19 |
| -#update-layout(spacing, spacing) |
| 7 | +#set page("a0", margin: 1.5cm) |
| 8 | +#pop.set-poster-layout(pop.layout-a0) |
| 9 | +#pop.set-theme(pop.uni-fr) |
| 10 | + |
| 11 | +#set text(font: "Arial", size: pop.layout-a0.at("body-size")) |
20 | 12 |
|
21 |
| -#set-theme(uni-fr) |
| 13 | +#let box-spacing = 1.2em |
| 14 | +#set columns(gutter: box-spacing) |
| 15 | +#set block(spacing: box-spacing) |
| 16 | +#pop.update-poster-layout(spacing: box-spacing) |
22 | 17 |
|
23 | 18 | // Define colors as given by coroprate design of uni freiburg
|
24 |
| -#let uni-dark-blue = rgb("#1d154d") |
| 19 | +#let uni_dark_blue = rgb("#1d154d") |
25 | 20 |
|
26 | 21 | /// START OF THE DOCUMENT
|
27 |
| -#title-box( |
28 |
| - [#box(inset: (bottom: -0.3em), image(height: 1.2em, "images/cellular_raza-dark-mode.svg")) - Novel Flexibility in Design of Agent-Based Models in Cellular Systems], |
29 |
| - authors: "Jonas Pleyer¹, Christian Fleck¹", |
30 |
| - institutes: "¹Freiburg Center for Data-Analysis and Modeling", |
31 |
| - image: image("/UFR-Siegel-white.png"), |
| 22 | +#pop.title-box( |
| 23 | + [#box(inset: (bottom: -0.3em), image(height: 1.2em, "images/cellular_raza_dark_mode.svg")) - Novel Flexibility in Design of Agent-Based Models in Cellular Systems], |
| 24 | + authors: "Jonas Pleyer¹, Christian Fleck¹", |
| 25 | + institutes: "¹Freiburg Center for Data-Analysis and Modeling", |
| 26 | + image: image("/UFR-Siegel-white.png"), |
32 | 27 | )
|
33 | 28 |
|
34 |
| -#column-box()[ |
35 |
| - #set par(justify: true) |
36 |
| - #set align(center) |
37 |
| - Agent-Based Models (ABMs) allow researchers to describe complex cellular systems in a mechanistic manner but can also abstract over less-known processes. |
38 |
| - It is often desirable to exchange only parts of the model eg. changing the spatial representation of cells from a spherical interaction potential to an elliptical. |
39 |
| - Existing tools lack in flexibility and cannot change their internal representation of cells. |
40 |
| - To solve these problems we created `cellular_raza`, a novel library that offers previously unknown flexibility in model design while retaining excellent performance. |
| 29 | +#pop.column-box()[ |
| 30 | + #set par(justify: true) |
| 31 | + #set align(center) |
| 32 | + Agent-Based Models (ABMs) allow researchers to describe complex cellular systems in a mechanistic manner but can also abstract over less-known processes. |
| 33 | + It is often desirable to exchange only parts of the model eg. changing the spatial representation of cells from a spherical interaction potential to an elliptical. |
| 34 | + Existing tools lack in flexibility and cannot change their internal representation of cells. |
| 35 | + To solve these problems we created `cellular_raza`, a novel library that offers previously unknown flexibility in model design while retaining excellent performance. |
41 | 36 | ]
|
42 | 37 |
|
43 | 38 | #columns(2, gutter: spacing)[
|
44 |
| - #column-box( |
| 39 | + #pop.column-box( |
45 | 40 | heading: [Features],
|
46 | 41 | )[
|
47 | 42 | #columns(2, gutter: 0.5*spacing)[
|
|
58 | 53 | ]
|
59 | 54 | ]
|
60 | 55 |
|
61 |
| - #column-box(heading: "Scaling Behavior")[ |
| 56 | + #pop.column-box(heading: "Scaling Behavior")[ |
62 | 57 | #figure(stack(dir: ltr,
|
63 |
| - box([#image("images/scaling-0.png") |
64 |
| - #place(top+left, rect(text("A", fill: white), fill: uni-dark-blue, inset: 10pt))], width: 49.5%), |
| 58 | + box([#image("images/scaling_0.png") |
| 59 | + #place(top+left, rect(text("A", fill: white), fill: uni_dark_blue, inset: 10pt))], width: 49.5%), |
65 | 60 | box(width: 1%),
|
66 |
| - box([#image("images/scaling-1.png") |
67 |
| - #place(top+left, rect(text("B", fill: white), fill: uni-dark-blue, inset: 10pt))], width: 49.5%) |
| 61 | + box([#image("images/scaling_1.png") |
| 62 | + #place(top+left, rect(text("B", fill: white), fill: uni_dark_blue, inset: 10pt))], width: 49.5%) |
68 | 63 | ),
|
69 | 64 | caption: [
|
70 | 65 | (A) Linear fit $f(x)=a x$ of scaling with increasing amounts of agents.
|
|
77 | 72 | ])
|
78 | 73 | ]
|
79 | 74 |
|
80 |
| - #column-box(heading: [Cellular Properties as Rust Traits])[ |
| 75 | + #pop.column-box(heading: [Cellular Properties as Rust Traits])[ |
81 | 76 | Abstract traits are used to define cellular interactions via force mechanics.
|
82 | 77 | Users implement traits and obtain full control over cellular behavior.
|
83 | 78 | #figure([
|
|
87 | 82 | /// cell-specific interactions). For now, this can also be used
|
88 | 83 | /// to get the mass of the other cell-agent. In the future, we
|
89 | 84 | /// will probably provide a custom function for this.
|
90 |
| - fn get-interaction-information(&self) -> Inf; |
| 85 | + fn get_interaction_information(&self) -> Inf; |
91 | 86 |
|
92 | 87 | /// Calculates the force (velocity-derivative) on the
|
93 | 88 | /// corresponding external position given external velocity.
|
94 | 89 | /// By providing velocities, we can calculate terms that are
|
95 | 90 | /// related to friction.
|
96 |
| - fn calculate-force-between( |
| 91 | + fn calculate_force_between( |
97 | 92 | &self,
|
98 |
| - own-pos: &Pos, |
99 |
| - own-vel: &Vel, |
100 |
| - ext-pos: &Pos, |
101 |
| - ext-vel: &Vel, |
102 |
| - ext-info: &Inf, |
| 93 | + own_pos: &Pos, |
| 94 | + own_vel: &Vel, |
| 95 | + ext_pos: &Pos, |
| 96 | + ext_vel: &Vel, |
| 97 | + ext_info: &Inf, |
103 | 98 | ) -> Option<Result<Force, CalcError>>;
|
104 | 99 | }
|
105 | 100 | ```])
|
106 | 101 | // Notice that even the types themselves such as position, force and velocity are generic, meaning this allows not only to switch between 2D and 3D but also to represent cells entirely differently as desired.
|
107 | 102 | // The user is able and encouraged to modify and adjust these types as needed.
|
108 | 103 | ]
|
109 | 104 |
|
110 |
| - #column-box( |
| 105 | + #pop.column-box( |
111 | 106 | heading: [Roadmap],
|
112 |
| - stretch-to-bottom: true, |
| 107 | + stretch-to-next: true, |
113 | 108 | )[#columns(2)[
|
114 | 109 | - Stabilize user API
|
115 | 110 | - Additional backends (GPUs, MPI)
|
|
123 | 118 |
|
124 | 119 | #colbreak()
|
125 | 120 |
|
126 |
| - #column-box(heading: [Branching patterns of -Bacillus subtilis- in 2D & 3D])[ |
| 121 | + #pop.column-box(heading: [Branching patterns of _Bacillus subtilis_ in 2D & 3D])[ |
127 | 122 | #figure(stack(dir: ltr,
|
128 | 123 | box([
|
129 |
| - #image("images/bacteria-cells-at-iter-0000088000.png", width: 49.5%) |
130 |
| - #place(top+left, dx: 10pt, dy: 10pt, rect(text("2D", fill: white), fill: uni-dark-blue, inset: 10pt)) |
| 124 | + #image("images/bacteria_cells_at_iter_0000088000.png", width: 49.5%) |
| 125 | + #place(top+left, dx: 10pt, dy: 10pt, rect(text("2D", fill: white), fill: uni_dark_blue, inset: 10pt)) |
131 | 126 | ]),
|
132 | 127 | box(width: 1%),
|
133 | 128 | box([
|
134 |
| - #image("images/bacteria-population-3d-0000-cropped.png", width: 49.5%) |
135 |
| - #place(top+left, dx: 10pt, dy: 10pt, rect(text("3D", fill: white), fill: uni-dark-blue, inset: 10pt)) |
| 129 | + #image("images/bacteria_population-3d-0000-cropped.png", width: 49.5%) |
| 130 | + #place(top+left, dx: 10pt, dy: 10pt, rect(text("3D", fill: white), fill: uni_dark_blue, inset: 10pt)) |
136 | 131 | ])
|
137 | 132 | ), caption: [
|
138 |
| - Spatio-Temporal patterns inspired by #cite("kawasakiModelingSpatioTemporalPatterns1997","matsushitaInterfaceGrowthPattern1998"). Cells ($~$500,000) consume extracellular nutrients, grow, divide and self-organize into a branched pattern. |
| 133 | + Spatio-Temporal patterns inspired by @kawasakiModelingSpatioTemporalPatterns1997 @matsushitaInterfaceGrowthPattern1998. |
| 134 | + Cells ($~$500,000) consume extracellular nutrients, grow, divide and self-organize into a branched pattern. |
139 | 135 | Brighter colors indicate higher nutrient concentrations.
|
140 | 136 | ])
|
141 | 137 | ]
|
142 | 138 |
|
143 |
| - #column-box(heading: "Cell Sorting in 3D")[ |
| 139 | + #pop.column-box(heading: "Cell Sorting in 3D")[ |
144 | 140 | #figure(stack(dir: ltr,
|
145 | 141 | box([
|
146 |
| - #image("images/cell-sorting-start.png", width: 49.5%) |
147 |
| - #place(top+left, dx: 10pt, dy: 10pt, rect(text("A", fill: white), fill: uni-dark-blue, inset: 10pt)) |
| 142 | + #image("images/cell_sorting_start.png", width: 49.5%) |
| 143 | + #place(top+left, dx: 10pt, dy: 10pt, rect(text("A", fill: white), fill: uni_dark_blue, inset: 10pt)) |
148 | 144 | ]),
|
149 | 145 | box(width: 1%),
|
150 | 146 | box([
|
151 |
| - #image("images/cell-sorting-end.png", width: 49.5%) |
152 |
| - #place(top+left, dx: 10pt, dy: 10pt, rect(text("B", fill: white), fill: uni-dark-blue, inset: 10pt)) |
| 147 | + #image("images/cell_sorting_end.png", width: 49.5%) |
| 148 | + #place(top+left, dx: 10pt, dy: 10pt, rect(text("B", fill: white), fill: uni_dark_blue, inset: 10pt)) |
153 | 149 | ]),
|
154 | 150 | ),
|
155 | 151 | caption: [
|
|
158 | 154 | ])
|
159 | 155 | ]
|
160 | 156 |
|
161 |
| - #column-box(heading: [Semi-Vertex Models])[ |
| 157 | + #pop.column-box(heading: [Semi-Vertex Models])[ |
162 | 158 | #figure(stack(dir: ltr,
|
163 | 159 | box([
|
164 |
| - #image("images/kidney-organoid-model-final.png", width: 49.5%) |
165 |
| - #place(top+left, dx: 10pt, dy: 10pt, rect(text("A", fill: uni-dark-blue), fill: white, inset: 10pt)) |
| 160 | + #image("images/kidney_organoid_model-final.png", width: 49.5%) |
| 161 | + #place(top+left, dx: 10pt, dy: 10pt, rect(text("A", fill: uni_dark_blue), fill: white, inset: 10pt)) |
166 | 162 | ]),
|
167 | 163 | box(width: 1%),
|
168 | 164 | box([
|
169 |
| - #image("images/free-vertex-model-end.png", width: 49.5%) |
170 |
| - #place(top+left, dx: 10pt, dy: 10pt, rect(text("B", fill: uni-dark-blue), fill: white, inset: 10pt)) |
| 165 | + #image("images/free_vertex_model_end.png", width: 49.5%) |
| 166 | + #place(top+left, dx: 10pt, dy: 10pt, rect(text("B", fill: uni_dark_blue), fill: white, inset: 10pt)) |
171 | 167 | ])
|
172 | 168 | ),
|
173 | 169 | caption: [
|
|
176 | 172 | ])
|
177 | 173 | ]
|
178 | 174 |
|
179 |
| - #bibliography-box("/cellular_raza.bib", title: "Sources", stretch-to-bottom: true) |
| 175 | + #pop.column-box(heading: "Sources", stretch-to-next: true)[ |
| 176 | + #set text(size: 24pt) |
| 177 | + #bibliography("/cellular_raza.bib", title: none) |
| 178 | + ] |
180 | 179 | ]
|
181 | 180 |
|
182 |
| -#bottom-box( |
| 181 | +#pop.bottom-box( |
183 | 182 | stack(dir: ltr,
|
184 | 183 | box(width: 20.5%, [
|
185 | 184 | #set text(size: 30pt)
|
|
192 | 191 | #box(image(height: 30pt, "images/github-mark-white.png"))
|
193 | 192 | #link("https://github.com/jonaspleyer/")[github.com/jonaspleyer]
|
194 | 193 | ]),
|
195 |
| - box(width: 23.25%, align(center, image(height: 80pt, "images/cellular_raza-dark-mode.svg"))), |
| 194 | + box(width: 23.25%, align(center, image(height: 80pt, "images/cellular_raza_dark_mode.svg"))), |
196 | 195 | box(width: 26.75%, height: 1.25em, align(center+horizon, [
|
197 | 196 | #set text(size: 35pt)
|
198 | 197 | #box(image(height: 30pt, "images/JonasPleyer-edited.jpeg"))
|
|
201 | 200 | ),
|
202 | 201 | text-relative-width: 80%,
|
203 | 202 | logo: stack(dir: ltr,
|
204 |
| - image(width: 0.3*(100% - 0.5*spacing - 80%), "fdm-logo.jpg", fit: "contain"), |
| 203 | + image(width: 0.3*(100% - 0.5*spacing - 80%), "fdm_logo.jpg", fit: "contain"), |
205 | 204 | h(0.5*spacing),
|
206 | 205 | image(width: 0.7*(100% - 0.5*spacing - 80%), "UFR-Schriftzug-white.png", fit: "contain"),
|
207 | 206 | )
|
|
0 commit comments