|
| Tissue (size_t initial_size=1u, unsigned dimensions=3u, const std::string &coordinate="moore", const std::string &local_density_effect="const", const std::string &displacement_path="random", const EventRates &init_event_rates=EventRates{}, uint_fast32_t seed=std::random_device{}(), bool verbose=false, bool enable_benchmark=false) |
| Constructor.
|
|
bool | grow (size_t max_size, double max_time=100.0, double snapshot_interval=0.0, size_t recording_early_growth=0u, size_t mutation_timing=0u) |
| main function
|
|
void | plateau (double time) |
| Simulate turnover with the increased death_rate.
|
|
void | treatment (double death_prob, size_t num_resistant_cells=3u) |
| Simulate medical treatment with the increased death_prob.
|
|
std::ostream & | write_history (std::ostream &) const |
| Write extant_cells_ and their ancestors.
|
|
std::ostream & | write_snapshots (std::ostream &) const |
| Write snapshots_.
|
|
std::ostream & | write_drivers (std::ostream &) const |
| Write drivers_.
|
|
std::ostream & | write_benchmark (std::ostream &) const |
| Write benchmark_.
|
|
|
std::function< bool(const std::shared_ptr< Cell > &)> | insert |
| initialized in init_insert_function()
|
|
std::unordered_set< std::shared_ptr< Cell >, hash_ptr_cell, equal_ptr_cell > | extant_cells_ |
| cells
|
|
unsigned | id_tail_ = 0 |
| incremented when a new cell is born
|
|
std::multimap< double, std::shared_ptr< Cell > > | queue_ |
| event queue
|
|
double | time_ = 0.0 |
| continuous time
|
|
std::unique_ptr< Coord > | coord_func_ |
| initialized in init_coord() or init_coord_test()
|
|
std::stringstream | cemetery_ |
| record dead cells
|
|
std::stringstream | snapshots_ |
| record snapshots
|
|
std::stringstream | drivers_ |
| record driver mutations
|
|
std::unordered_set< unsigned > | recorded_ |
| id of recorded cells
|
|
std::unique_ptr< Benchmark > | benchmark_ |
| record resource usage
|
|
std::unique_ptr< urbg_t > | engine_ |
| random number generator
|
|
bool | verbose_ = false |
| print debug info
|
|
size_t | size () const noexcept |
| Get the number of extant cells.
|
|
void | init_coord (unsigned dimensions, const std::string &coordinate) |
| Set coord_func_.
|
|
void | init_insert_function (const std::string &local_density_effect, const std::string &displacement_path) |
| Set insert function.
|
|
void | migrate (const std::shared_ptr< Cell > &) |
| Swap with a random neighbor.
|
|
void | push (std::shared_ptr< Cell > moving, const coord_t &direction) |
| Emplace daughter cell and push other cells to the direction.
|
|
void | push_minimum_drag (std::shared_ptr< Cell > moving) |
| Push through the minimum drag path.
|
|
void | stroll (std::shared_ptr< Cell > moving, const coord_t &direction) |
| Try insert_adjacent() on every step in push()
|
|
bool | insert_adjacent (const std::shared_ptr< Cell > &x) |
| Insert x if any adjacent node is empty.
|
|
bool | swap_existing (std::shared_ptr< Cell > *x) |
| Put new cell and return existing.
|
|
size_t | steps_to_empty (const coord_t ¤t, const coord_t &direction) const |
| Count steps to the nearest empty.
|
|
const coord_t & | to_nearest_empty (const coord_t ¤t) const |
| Direction to the nearest empty.
|
|
coord_t | roulette_direction (const coord_t ¤t) const |
| Direction is selected with a probability proportional with 1/l.
|
|
uint_fast8_t | num_empty_neighbors (const coord_t &) const |
| Count adjacent empty sites.
|
|
double | positional_value (const coord_t &) const |
| TODO: Calculate positional value.
|
|
void | queue_push (const std::shared_ptr< Cell > &, bool surrounded=false) |
| Push a cell to event queue_.
|
|
void | entomb (const std::shared_ptr< Cell > &) |
| Put a cell to cemetery_.
|
|
void | snapshots_append () |
| Write all cells to snapshots_ with time_.
|
|