NetworkX is a Python package for the creation, manipulation, and study of the dynamics, structure, and functions of complex networks.
Product's homepage
Here are some key features of "NetworkX":
· Allows for 1M+ nodes, 10M+ edges
· Includes standard graph-theoretic and statistical physics functions
· Easy exchange of network algorithms between applications, disciplines, and platforms
· Includes many classic graphs and synthetic networks
· Nodes and edges can be "anything" (e.g. time-series, text, images, XML records)
· Exploits existing code from high-quality legacy software in C, C++, Fortran, etc.
· Open source (encourages community input)
· Unit-tested
Additional benefits due to Python:
· Allows fast prototyping of new algorithms
· Easy to teach
· Multiplatform
· Allows easy access to almost any database
Requirements:
· Python