Welcome to PyMotifCounter’s documentation!

PyMotifCounter is a unified interface to fast motif enumeration algorithms such as:

  • mfinder

  • fanmod

  • NetMODE

  • PGD

The objective of this version is to offer an interface to external processes as if they were Python functions.

This is achieved by abstracting the inputs, parameters and outputs of each binary, creating a high level interface which accepts a networkx graph and returns a motif / graphlet distribution as a pandas.DataFrame.

A typical usage example is as follows:

"""
Visualise the distribution of size-3 motifs.
"""

from pymotifcounter.concretecounters import PyMotifCounterMfinder
from matplotlib import pyplot as plt
from networkx import watts_strogatz_graph

if __name__ == "__main__":
    # Create an example network
    g = watts_strogatz_graph(100, 8, 0.2)
    # Create a motif counter based on mfinder
    motif_counter = PyMotifCounterMfinder()
    # Enumerate motifs using the selected counter
    g_mtf_count = motif_counter(g)
    # Visualise the distribution
    g_mtf_count.plot.bar("motif_id", "nreal")
    plt.tight_layout()
    plt.show()

Which would produce the following distribution:

Motif distribution of size 3

Indices and tables