Skip to content

Docker container exposing a preconfigured python environment for Social Network Analysis

License

Notifications You must be signed in to change notification settings

GiulioRossetti/Social-Network-Analsysis-Laboratory

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Social Network Analysis Laboratory

Docker Jupyter Notebook Python

This repository contains the Docker container specification for the Social Network Analysis Laboratory: a pre-configured Jupyter Lab environment offering tools and algorithms to model, analyze and visualize complex networks.

Note: The main goal of this container is to offer a stable development environment, not to guarantee the latest versions of the installed libraries: SNA Lab will disentangle module dependency issues for you.

Requirements

To execute the container, you need to have Docker (and Docker Compose if you plan to build the image locally) installed on your machine.

Usage

The SNALab can be accessed following two different approaches: downloading the prebuilt image from Docker Hub or building the image locally.

Once the container is ready the Jupyter lab service be available at http://localhost:8000.

1. Using the Docker Hub image (suggested)

The SNALab image is available on Docker Hub. To run the container, simply execute the following command:

  docker pull rossetti/snalab:latest
  docker run -d -i -p 8000:8000 snalab

If you prefer not using the command line tools, you can also use the Docker Desktop application to run the container (available for Windowns, MacOs and Linux).

2. Building the image locally

Alternatively, you can build the image locally by cloning this repository and running the following command:

  docker-compose up -d

Stop the container

To stop the container, run the following command:

  docker-compose down

Main python packages included in the SNA Laboratory

The SNA Laboratory is an evolving project. The following list contains the main python packages included in the current release of the container. For a complete list of the packages included in the container, please refer to the individual projects' pages.

Network modeling and analysis

Static networks:

Dynamic networks:

Higher-order networks:

Task specific applications

Community detection:

Epidemics and Opinion Dynamics:

Supervised learning:

Link Prediction:

Power law distributions fitting:

Tips

  1. Data and notebooks stored in the container are not persistent. To save your work, you can mount a local directory as a volume in the container (or remember to download/upload your code/file each time you stop/start the laboratory).
  2. The same observation applies also to python module installed in the container. If you want to install a new module, you need to do it each time you start the container.
  3. The container is configured to use a no-password access Jupyter Lab.
  4. You can access the container disk from the bash terminal exposed within the Jupyter Lab environment.
  5. The Jupyter Lab environment is configured to use the python3.9 kernel.
  6. Along with the Jupyter Lab environment, are packaged a set of notebooks covering the lectures of the Social Network Analysis Course at the University of Pisa