About this project¶
Tacoma is an acronym for (T)empor(A)l (CO)ntact (M)odeling and (A)nalysis. It is a joint C++/Python-package for the modeling and analysis of undirected and unweighted temporal networks, with a focus on (but not limited to) human face-to-face contact networks.
Quick example¶
In order to download the SocioPatterns ‘Hypertext 2009’-dataset and visualize it interactively, do the following.
>>> import tacoma as tc
>>> from tacoma.interactive import visualize
>>> temporal_network = tc.download_and_convert_sociopatterns_hypertext_2009()
100% [........................................................] 67463 / 67463
>>> visualize(temporal_network, frame_dt = 20)
This is the result:
Why should I use tacoma?¶
Pros¶
- networks are natively described in continuous time (which includes a description in discrete time)
- two main native formats to describe temporal networks
(
_tacoma.edge_lists
and_tacoma.edge_changes
), a third way, a sorted list ofon
-intervals for each edge calledtc.edge_trajectories
is available, but algorithms work on the two native formats only - the simple portable file-format
.taco
as a standardized way to share temporal network data (which is just the data dumped to a.json
-file, a simple file format readable from a variety of languages) - easy functions to produce surrogate temporal networks from four different models
- easy way to simulate Gillespie (here, epidemic spreading) processes on temporal networks with an implementation of Vestergaard’s and Génois’s adapted algortihm
- easy framework to develop new Gillespie-simulations algorithms on temporal networks
- multiple and simple ways to interactively visualize temporal networks
- simple functions to manipulate temporal networks (slice, concatenate, rescale time, sample, bin, convert)
- simple functions to analyze structural and statistical properties of temporal networks (mean degree, degree distribution, group size distribution, group life time distributions, etc.)
- fast algorithms due to C++-core (fast as in faster than pure Python)
- relatively fast and easy to compile since it only depends on the
C++11-stdlib and pybind11 without the large overhead of
Boost
Cons¶
- no support for directed temporal networks yet
- no support for weighted temporal networks yet