1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
//! Biology related constants
//!
//! Taken from http://bionumbers.hms.harvard.edu/search.aspx?task=searchbypop
//!
//! Every organism is it's own module, so we don't have overlapping values.
//!
//! TODO: Needs some more documentation and usage examples

mod generic {
    pub struct BioInfo {
        pub value: Option<f64>,
        pub value_min: Option<f64>,
        pub value_max: Option<f64>,
    }
}

pub mod human_homo_sapiens {
    pub struct BioInfo {
        pub value: Option<f64>,
        pub value_min: Option<f64>,
        pub value_max: Option<f64>,
    }

    /// [kb / min]
    pub const rate_dna_replication: BioInfo = BioInfo {
        value: Some(2.0),
        value_min: Some(0.0),
        value_max: Some(2.0),
    };

    /// [kb]
    pub const spacing_between_origins_dna_replication: BioInfo = BioInfo {
        value: Some(100.0),
        value_min: None,
        value_max: None,
    };

    /// [µm]
    pub const diameter_hek_293_cell: BioInfo = BioInfo {
        value: Some(13.0),
        value_min: None,
        value_max: None,
    };
}

pub mod unspecified {
    pub struct BioInfo {
        pub value: Option<f64>,
        pub value_min: Option<f64>,
        pub value_max: Option<f64>,
    }

    /// [nm]
    pub const excitation_maximum_of_rfp: BioInfo = BioInfo {
        value: Some(587.0),
        value_min: None,
        value_max: None,
    };
} /* unspecified */

pub mod bacteria_escherichia_coli {
    pub struct BioInfo {
        value: Option<f64>,
        value_min: Option<f64>,
        value_max: Option<f64>,
    }

    /// mM
    pub const affinity_of_allolactose_and_lacz: BioInfo = BioInfo {
        value: Some(1.9),
        value_min: None,
        value_max: None,
    };

    /// μM
    pub const affinity_of_allolactose_and_laci: BioInfo = BioInfo {
        value: Some(6.0),
        value_min: None,
        value_max: None,
    };

    /// Molecules / minute
    pub const velocity_of_allolactose_hydrolysis_by_lacz: BioInfo = BioInfo {
        value: Some(20_000.0),
        value_min: None,
        value_max: None,
    };

    /// µM
    pub const maximal_amount_of_lacy: BioInfo = BioInfo {
        value: Some(50.0),
        value_min: None,
        value_max: None,
    };

    /// µM
    pub const maximal_amount_of_lacz: BioInfo = BioInfo {
        value: Some(50.0),
        value_min: None,
        value_max: None,
    };

    /// µM
    pub const total_amount_of_laci_repressor: BioInfo = BioInfo {
        value: Some(0.01),
        value_min: None,
        value_max: None,
    };

    /// %
    pub const percent_of_cell_total_dry_weight_that_is_lipopolysaccharide: BioInfo = BioInfo {
        value: Some(3.4),
        value_min: None,
        value_max: None,
    };

    /// Unitless
    pub const number_of_proteins_in_50s_subunit: BioInfo = BioInfo {
        value: Some(36.0),
        value_min: None,
        value_max: None,
    };

    /// Unitless
    pub const number_of_proteins_in_30s_subunit: BioInfo = BioInfo {
        value: Some(22.0),
        value_min: None,
        value_max: None,
    };

    /// Unitless
    pub const number_of_protein_types_to_make_ribosome: BioInfo = BioInfo {
        value: Some(56.0),
        value_min: None,
        value_max: None,
    };

    /// Unitless
    pub const number_of_lipids_per_cell: BioInfo = BioInfo {
        value: Some(22000000.0),
        value_min: None,
        value_max: None,
    };

    /// Unitless
    pub const number_of_lipopolysaccharide_per_cell: BioInfo = BioInfo {
        value: Some(1430000.0),
        value_min: None,
        value_max: None,
    };

    /// Unitless
    pub const number_of_all_rna_per_cell: BioInfo = BioInfo {
        value: Some(255000.0),
        value_min: None,
        value_max: None,
    };

    /// %
    pub const volume_occupied_by_water: BioInfo = BioInfo {
        value: Some(70.0),
        value_min: None,
        value_max: None,
    };

    /// µm^2/sec
    pub const apparent_diffusion_constant_of_protein_along_dna_segments: BioInfo = BioInfo {
        value: Some(0.4),
        value_min: Some(0.38),
        value_max: Some(0.42),
    };

    /// Molecules / cell
    pub const reca_molecules_per_cell: BioInfo = BioInfo {
        value: Some(1000.0),
        value_min: Some(800.0),
        value_max: Some(1200.0),
    };

    /// µmol / g
    pub const imp_pool_size: BioInfo = BioInfo {
        value: Some(0.38),
        value_min: Some(0.37),
        value_max: Some(0.39),
    };

    /// µmol / g
    pub const carbamoyl_aspartate_pool_size: BioInfo = BioInfo {
        value: Some(0.84),
        value_min: Some(0.56),
        value_max: Some(1.12),
    };

    /// µmol / g
    pub const valine_pool_size: BioInfo = BioInfo {
        value: Some(2.41),
        value_min: Some(2.14),
        value_max: Some(2.68),
    };

    /// µmol / g
    pub const tyrosine_pool_size: BioInfo = BioInfo {
        value: Some(0.41),
        value_min: Some(0.16),
        value_max: Some(0.66),
    };

    /// µmol / g
    pub const threonine_pool_size: BioInfo = BioInfo {
        value: Some(1.34),
        value_min: Some(1.50),
        value_max: Some(1.18),
    };

    /// µmol / g
    pub const proline_pool_size: BioInfo = BioInfo {
        value: Some(1.1),
        value_min: Some(0.95),
        value_max: Some(1.25),
    };

    /// µmol / g
    pub const methionine_pool_size: BioInfo = BioInfo {
        value: Some(0.29),
        value_min: Some(0.22),
        value_max: Some(0.36),
    };

    /// µmol / g
    pub const aspartate_pool_size: BioInfo = BioInfo {
        value: Some(6.45),
        value_min: Some(9.9),
        value_max: Some(2.91),
    };

    /// µmol / g
    pub const asparagine_pool_size: BioInfo = BioInfo {
        value: Some(2.02),
        value_min: Some(1.56),
        value_max: Some(2.48),
    };

    /// µmol / g
    pub const alanine_pool_size: BioInfo = BioInfo {
        value: Some(6.81),
        value_min: Some(5.102),
        value_max: Some(8.51),
    };

    /// µmol / g
    pub const glutamate_pool_size: BioInfo = BioInfo {
        value: Some(100.55),
        value_min: Some(83.001),
        value_max: Some(118.09),
    };

    /// µmol / g
    pub const glutamine_pool_size: BioInfo = BioInfo {
        value: Some(3.92),
        value_min: Some(3.75),
        value_max: Some(4.09),
    };

    /// fg
    pub const mass_in_excess_of_displaced_buffer: BioInfo = BioInfo {
        value: Some(110.0),
        value_min: Some(80.0),
        value_max: Some(140.0),
    };

    /// nm
    pub const outer_membrane_thickness: BioInfo = BioInfo {
        value: Some(13.0),
        value_min: Some(12.0),
        value_max: Some(14.0),
    };

    /// µm^3
    pub const cell_total_volume: BioInfo = BioInfo {
        value: Some(1.1),
        value_min: Some(0.44),
        value_max: Some(1.79),
    };

    /// [µm]
    pub const concentration_pyruvate: BioInfo = BioInfo {
        value: Some(390.0),
        value_min: None,
        value_max: None,
    };

    /// [g / liter]
    pub const ratio_cell_dry_weight: BioInfo = BioInfo {
        value: Some(0.36),
        value_min: None,
        value_max: None,
    };
} /* bacteria_escherichia_coli */

pub mod chinese_hamster_ovary {
    pub struct BioInfo {
        pub value: Option<f64>,
        pub value_min: Option<f64>,
        pub value_max: Option<f64>,
    }

    /// [µm]
    pub const diameter_cell: BioInfo = BioInfo {
        value: None,
        value_min: Some(14.02),
        value_max: Some(15.21),
    };

} /* chinese_hamster_ovary */

pub mod budding_yeast_saccharomyces_cerevisiae {
    pub struct BioInfo {
        pub value: Option<f64>,
        pub value_min: Option<f64>,
        pub value_max: Option<f64>,
    }

    /// [pg / cell]
    pub const mass_protein_diploid_cell: BioInfo = BioInfo {
        value: Some(8.0),
        value_min: None,
        value_max: None,
    };
} /* budding_yeast_saccharomyces_cerevisiae  */

pub mod green_algae_chlorella_vulgaris {
    pub struct BioInfo {
        pub value: Option<f64>,
        pub value_min: Option<f64>,
        pub value_max: Option<f64>,
    }

    /// [µm]
    pub const size_diameter_green_algea: BioInfo = BioInfo {
        value: Some(3.0),
        value_min: Some(2.0),
        value_max: Some(4.0),
    };
} /* green_algae_chlorella_vulgaris */