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.
To execute the container, you need to have Docker (and Docker Compose if you plan to build the image locally) installed on your machine.
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.
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).
Alternatively, you can build the image locally by cloning this repository and running the following command:
docker-compose up -d
To stop the container, run the following command:
docker-compose down
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.
Static networks:
Dynamic networks:
Higher-order networks:
Community detection:
Epidemics and Opinion Dynamics:
Supervised learning:
Link Prediction:
Power law distributions fitting:
- 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).
- 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.
- The container is configured to use a no-password access Jupyter Lab.
- You can access the container disk from the bash terminal exposed within the Jupyter Lab environment.
- The Jupyter Lab environment is configured to use the
python3.9
kernel. - 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