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
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 of on-intervals for each edge called tc.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

## Install¶

If you get compiling errors, make sure that pybind11 is installed.

$git clone https://github.com/benmaier/tacoma$ pip install ./tacoma

Note that a C++11-compiler has to be installed on the system before installing tacoma.