{"id":13767748,"url":"https://github.com/benmaier/tacoma","last_synced_at":"2026-03-15T09:32:48.963Z","repository":{"id":66124065,"uuid":"124074654","full_name":"benmaier/tacoma","owner":"benmaier","description":"Temporal networks in Python. Provides fast tools to analyze temporal contact networks and simulate dynamic processes on them using Gillespie's SSA. ","archived":false,"fork":false,"pushed_at":"2020-05-22T16:30:21.000Z","size":9736,"stargazers_count":105,"open_issues_count":7,"forks_count":7,"subscribers_count":4,"default_branch":"master","last_synced_at":"2024-11-04T21:02:57.550Z","etag":null,"topics":["contact-networks","epidemics","face-to-face","face2face","network-visualization","networks","temporal-networks"],"latest_commit_sha":null,"homepage":"http://tacoma.benmaier.org","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/benmaier.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2018-03-06T12:22:57.000Z","updated_at":"2024-08-27T07:17:49.000Z","dependencies_parsed_at":"2023-03-10T23:38:11.142Z","dependency_job_id":null,"html_url":"https://github.com/benmaier/tacoma","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/benmaier%2Ftacoma","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/benmaier%2Ftacoma/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/benmaier%2Ftacoma/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/benmaier%2Ftacoma/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/benmaier","download_url":"https://codeload.github.com/benmaier/tacoma/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249110283,"owners_count":21214300,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["contact-networks","epidemics","face-to-face","face2face","network-visualization","networks","temporal-networks"],"created_at":"2024-08-03T16:01:11.767Z","updated_at":"2026-03-15T09:32:43.905Z","avatar_url":"https://github.com/benmaier.png","language":"C++","funding_links":[],"categories":["Open Source Projects"],"sub_categories":["Data Structures, Systems and Frameworks"],"readme":"![logo](logo/new_logo_grey.png)\n\nTemporAl COntact Modeling and Analysis. Provides fast tools to analyze temporal contact networks, \nproduce surrogate networks using qualitative models and simulate Gillespie processes on them.\nCurrently only working on OSX and Linux distributions. No Windows support yet!\n\n## Quick example\n\nIn order to download the SocioPatterns \n['Hypertext 2009'-dataset](http://www.sociopatterns.org/datasets/hypertext-2009-dynamic-contact-network/) \nand visualize it interactively, do the following.\n\n```python\n\u003e\u003e\u003e import tacoma as tc\n\u003e\u003e\u003e from tacoma.interactive import visualize\n\u003e\u003e\u003e temporal_network = tc.download_and_convert_sociopatterns_hypertext_2009()\n100% [..............................................................................] 67463 / 67463\n\u003e\u003e\u003e visualize(temporal_network, frame_dt = 20)\n```\n\n![visualization example](https://github.com/benmaier/tacoma/raw/master/img/ht09_extensive_example.gif)\n\n## What is tacoma?\n\n`tacoma` is a joint C++/Python-package for the modeling and analysis of undirected and \nunweighted temporal networks, with a focus on (but not limited to) human face-to-face contact networks.\n\n### Pros of using tacoma\n\n* networks are natively described in continuous time (which includes descriptions in discrete time\n* two main native formats to describe temporal networks (`tc.edge_lists` and `tc.edge_changes`),\n  a third way, a sorted list of `on`-intervals for each edge called `tc.edge_trajectories` is\n  available, but algorithms work on the two native formats only\n* the simple portable file-format `.taco` as a standardized way to share temporal network data\n  (which is just the data dumped to a `.json`-file, a simple file format readable from a\n  variety of languages)\n* easy functions to produce surrogate temporal networks from four different models\n* easy way to simulate Gillespie (here, epidemic spreading) processes on temporal networks\n  with an implementation of [Vestergaard's and Génois's adapted algortihm](https://journals.plos.org/ploscompbiol/article?id=10.1371/journal.pcbi.1004579)\n* easy framework to develop new Gillespie-simulations algorithms on temporal networks\n* multiple and simple ways to interactively visualize temporal networks\n* simple functions to manipulate temporal networks (slice, concatenate, rescale time, sample, bin, convert)\n* simple functions to analyze structural and statistical properties of temporal networks\n  (mean degree, degree distribution, group size distribution, group life time distributions, etc.)\n* fast algorithms due to C++-core (_fast_ as in _faster than pure Python_)\n* relatively fast and easy to compile since it only depends on the C++11-stdlib \n  and [pybind11](https://github.com/pybind/pybind11) without the large overhead of `Boost`\n\n### Cons of using tacoma\n\n* no support for directed temporal networks yet\n* no support for weighted temporal networks yet\n\n## Install\n\nIf you get compiling errors, make sure that [pybind11](https://github.com/pybind/pybind11) is installed.\n\n    $ git clone https://github.com/benmaier/tacoma\n    $ pip install ./tacoma\n\nNote that a C++11-compiler has to be installed on the system before installing `tacoma`. On OS X\nit might happen that even though pip installed `pybind11` it's not available during installation.\nIf that happens please open a detailed issue here. You might want to try \n    \n    $ brew install pybind11\n\nas a work-around.\n\n### Packages not automatically installed during installation\n\nThe following packages are not installed during installation with `pip` since they're only required\nfor drawing and drawing is not essential. If you want to use `tacoma.drawing`, please install\n\n    matplotlib\n    networkx\n    python-louvain (community)\n\n## Documentation\n\nThe documentation is currently available at http://tacoma.benmaier.org . It is full of\ntypos and non-exhaustive but I think the important points are in there.\n\n\n## Examples\n\nCheck out the [sandbox directory](https://github.com/benmaier/tacoma/tree/master/sandbox]).\n\nHere is an example for the temporal network format `tc.edge_changes`.\n\n```python\nimport tacoma as tc\nfrom tacoma.interactive import visualize\n\n# define temporal network as a list of edge changes\ntemporal_network = tc.edge_changes()\ntemporal_network.N = 10\ntemporal_network.edges_initial = [ (0,1), (2,3), (1,7), (3,5), (1,9), (7,2) ]\ntemporal_network.t0 = 0.0\ntemporal_network.t = [ 0.8, 2.4 ]\ntemporal_network.tmax = 3.1\ntemporal_network.edges_in = [ \n                              [ (0, 5), (3, 6) ], \n                              [ (3, 7), (4, 9), (7, 8) ],\n                            ]\ntemporal_network.edges_out = [ \n                                [ (0, 1) ],\n                                [ (2, 3), (3, 6) ],\n                             ]\n\nvisualize(temporal_network, frame_dt = 0.05)\n```\n\n![visualization example](https://github.com/benmaier/tacoma/raw/master/img/tacoma_example.gif)\n\n## License\n\nThe whole software is published under the MIT software license. The documentation and all figures are copyrighted by Benjamin F. Maier. Ask for permission if you want to distribute parts.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbenmaier%2Ftacoma","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbenmaier%2Ftacoma","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbenmaier%2Ftacoma/lists"}