This package depends on several libraries (the number varies according to which modules you want to use).
Regardless of your needs, the following libraries are required:
Note
If they are not present on your computer, pip will directly try to install the three first libraries, however:
Install the requirements (through aptitude
or apt-get
on
debian/ubuntu/mint, pacman
and yaourt
on arch-based distributions, or
your .rpm manager on fedora. Otherwise you can also install the latest
versions via pip:
sudo pip install numpy scipy matplotlib networkx
Under most linux distributions, the simplest way is to install pip and git, then simply type into a terminal:
sudo pip install git+https://github.com/Silmathoron/NNGT.git
I recommend using Macports with which you can install all required features to use NEST and NNGT with graph-tool. The following command lines are used with python 2.7 since it is what people are used to but I recommend using version 3.5 or higher (replace all 27/2.7 by 35/3.5).
sudo port select gcc mp-gcc5 && sudo port install gsl +gcc5 && sudo port install autoconf automake libtool && sudo port install python27 pip && sudo port select python python27 && sudo port install py27-cython && sudo port select cython cython27 && sudo port install py27-numpy py27-scipy py27-matplotlib py27-ipython && sudo port select ipython ipython-2.7 && sudo port install py-graph-tool gtk3
If you want to modify the library more easily, you can also install it locally,
then simply add it to your PYTHONPATH
environment variable:
cd && mkdir .nngt-install
cd .nngt-install
git clone https://github.com/Silmathoron/NNGT.git .
git submodule init
git submodule update
nano .bash_profile
Then add:
export PYTHONPATH="/path/to/your/home/.nngt-install/src/:PYTHONPATH"
In order to update your local repository to keep it up to date, you will need to run the two following commands:
git pull origin master
git submodule update --remote --merge
The configuration file is created in ~/.nngt/nngt.conf
after you first run
import nngt
in python. Here is the default file:
#-------------------------#
# NNGT configuration file #
#-------------------------#
version = 0.7
#-------------------------
## default graph library -----------------------------------------------------
#-------------------------
# (choose among "graph-tool", "igraph", "networkx")
graph_library = graph-tool
#---------------------
## Try to load NEST? ---------------------------------------------------------
#---------------------
load_nest = True
#----------------------
## Matplotlib backend --------------------------------------------------------
#----------------------
# Uncomment and choose among your available backends.
# See http://matplotlib.org/faq/usage_faq.html#what-is-a-backend for details
#mpl_backend = Qt5Agg
# use TeX rendering for axis labels
use_tex = False
# color library either matplotlib or seaborn
color_lib = matplotlib
# palette to use
palette = Set1
#-----------------------------
## Settings for database -------------------------------------------------
#-----------------------------
use_database = False
# use a database (if False, results will be stored in CSV files)
db_to_file = False
#db_folder = ~/.nngt/database
# database url or temporary database used if use_database = False
# example of real database url: db_url = mysql://user:password@host:port/my_db
db_url = mysql:///nngt_db
#-----------------------------
## Settings for data logging -------------------------------------------------
#-----------------------------
# which messages are printed? (see logging module levels:
# https://docs.python.org/2/library/logging.html#levels)
# set to WARNING or above to remove the messages on import
log_level = INFO
# write log to file?
log_to_file = False
# if True, write to default folder '~/.nngt/log'
#log_folder = ~/.nngt/log
#----------------------------
## Multithreaded algorithms --------------------------------------------------
#----------------------------
# C++ algorithms using OpenMP are compiled and imported using Cython if True,
# otherwise regular numpy/scipy algorithms are used (equivalent for one thread)
multithreading = False
It can be necessary to modify this file to use the desired graph library, but
mostly to correct problems with GTK and matplotlib (if the plot module
complains, try Gtk3Agg
and Qt4Agg
).
If you want to simulate activities on your complex networks, NNGT can directly interact with the NEST simulator to implement the network inside PyNEST. For this, you will need to install NEST with Python bindings, which requires: