Skip to main content

Package for bipartite configuration model

Project description

BiCM package.

This is a Python package for the computation of the maximum entropy bipartite configuration model (BiCM) and the projection of bipartite networks on one layer. It was developed with Python 3.5.

You can install this package via pip:

pip install bicm

Documentation is available at https://bipartite-configuration-model.readthedocs.io/en/latest/.

For more solvers of maximum entropy configuration models visit https://meh.imtlucca.it/

Basic functionalities

To install:

pip install bicm

To import the module:

import bicm

To generate a Graph object and initialize it (with a biadjacency matrix, edgelist or degree sequences):

from bicm import BipartiteGraph
myGraph = BipartiteGraph()
myGraph.set_biadjacency_matrix(my_biadjacency_matrix)
myGraph.set_adjacency_list(my_adjacency_list)
myGraph.set_edgelist(my_edgelist)
myGraph.set_degree_sequences((first_degree_sequence, second_degree_sequence))

Or alternatively, with the respective data structure as input:

from bicm import BipartiteGraph
myGraph = BipartiteGraph(biadjacency=my_biadjacency_matrix, adjacency_list=my_adjacency_list, edgelist=my_edgelist, degree_sequences=((first_degree_sequence, second_degree_sequence)))

To compute the BiCM probability matrix of the graph or the relative fitnesses coefficients as dictionaries containing the nodes names as keys:

my_probability_matrix = myGraph.get_bicm_matrix()
my_x, my_y = myGraph.get_bicm_fitnesses()

This will solve the bicm using recommended settings for the solver. To customize the solver you can alternatively use (in advance) the following method:

myGraph.solve_bicm(light_mode=False, method='newton', initial_guess=None, tolerance=1e-8, max_steps=None, verbose=False, linsearch=True, regularise=False, print_error=True, exp=False)

To get the rows or columns projection of the graph:

myGraph.get_rows_projection()
myGraph.get_cols_projection()

Alternatively, to customize the projection:

myGraph.compute_projection(rows=True, alpha=0.05, method='poisson', threads_num=4, progress_bar=True)

See a more detailed walkthrough in tests/bicm_tests notebook or python script, or check out the API in the documentation.

How to cite

If you use the bicm module, please cite its location on Github https://github.com/mat701/BiCM and the original articles [Saracco2015] and [Saracco2017].

References

[Saracco2015] F. Saracco, R. Di Clemente, A. Gabrielli, T. Squartini, Randomizing bipartite networks: the case of the World Trade Web, Scientific Reports 5, 10595 (2015).

[Saracco2017] F. Saracco, M. J. Straka, R. Di Clemente, A. Gabrielli, G. Caldarelli, and T. Squartini, Inferring monopartite projections of bipartite networks: an entropy-based approach, New J. Phys. 19, 053022 (2017)

[Squartini2011] T. Squartini, D. Garlaschelli, Analytical maximum-likelihood method to detect patterns in real networks, New Journal of Physics 13, (2011)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

bicm-1.1.tar.gz (23.6 kB view details)

Uploaded Source

Built Distribution

bicm-1.1-py3-none-any.whl (27.5 kB view details)

Uploaded Python 3

File details

Details for the file bicm-1.1.tar.gz.

File metadata

  • Download URL: bicm-1.1.tar.gz
  • Upload date:
  • Size: 23.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.15.0 pkginfo/1.5.0.1 requests/2.23.0 setuptools/50.3.2 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.5.5

File hashes

Hashes for bicm-1.1.tar.gz
Algorithm Hash digest
SHA256 13112027ae479f9e81a4bf0c8057e0b713736c060320880627172962c8a31e58
MD5 77a6277944990dac5d4d10fe7133c0e4
BLAKE2b-256 44b3bd02c321b6804189b3b81e6f9ab31d376e0eed1327cfbaaa8c11e62f2cc6

See more details on using hashes here.

File details

Details for the file bicm-1.1-py3-none-any.whl.

File metadata

  • Download URL: bicm-1.1-py3-none-any.whl
  • Upload date:
  • Size: 27.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.15.0 pkginfo/1.5.0.1 requests/2.23.0 setuptools/50.3.2 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.5.5

File hashes

Hashes for bicm-1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 862471742245c046b57ad25d31b5d71b632cc9a5332b4cafed5baa3ce0ec98a5
MD5 ece81e3b12b74128d840efad20c34b50
BLAKE2b-256 8f9b0d1d3e12cb5637f84b7ea4e0ead568a4623542636c2f0abd3e7864c73f18

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page