Table of Content
Acknowledgements
Referencing
Background
List of Features
Download
Install
Tutorial
-
Documentation, Support and the Forum
Acknowledgements
This package, and especially the more advanced algorithms in it were developed in tight cooperation with Prof. Yoram Louzoun. Some of these algorithms were implemented by Royi Itschak.
Referencing
The Complex Networks Analysis Package is free for noncommercial use. If used for academic research, it can be referenced as:
Background
In the last years MatLab became the default research environment in many fields of science and industry. However, with all it's advantages and flexibility, MatLab in incapable to efficiently treat Complex Networks.
Here I provide a framework designed to allow efficient research of Complex Networks within MatLab. All toolbox methods operate on the same data struct containing the network. Untrivial change to this data structure would most probably require some changes to the algorithm implementations. However, each of the algorithms are implemented in quite modular form allowing simple adaptation for such improvements. In fact, I'm now working on the next version of the package which exploits the new features of the recent MatLab releases to further improve computation speed and reduce memory utilization for graph storage.
I am looking for people interested in further expansion of the package and would be happy to support their effort. Please, address me with any question you may have while using or developing this package
List of Features
-
Efficiency
I did my best to implement the most efficient (in terms of execution time and memory requirements) algorithms. I was able to conveniently manipulate and process graphs of above 1 million nodes and 14 million edges. Each untrivial algorithm typically references the proper scientific source so it's efficiency can be easily estimated
-
Documentation
Each of the implemented algorithms is thoroughly documented. The documentation includes description of each input and output parameter, definition of the function behavior for different inputs and in case of errors, list of related algorithms, usage examples and reference to publication when relevant.
-
Directionality
The package operates directional networks. Undirected graphs may be represented as directed ones, where each edge is accompanied by an edge in opposite direction. The package has a method with automatically converts directed networks to undirected ones.
-
Arbitrary Node Properties
Each node may maintain a list of arbitrary, user-defined properties which can be easily accessed, updated and considered in various computations
-
Multilayer Networks
Network may in mix various types of nodes, representing multi-layer networks. For example, one could study affiliation network of researchers and their collaborations. This ability is based on the ability to maintain node properties as each node may belong to a specific layer of the network.
-
Weighted Networks
The basic data structure used in this version of the package fully supports weighted networks. However, only one weight may be assigned to each edge and most of the provided algorithms ignore weights at the current stage.
-
Platform Independent
The toolbox builds upon MatLab which is available for virtually any hardware platform and operating system used today. However, due to extensive use of mex-files, many of the algorithms will have to be re-compiled. These algorithms are implemented in standard C++ code which may be easily compiled on any platform. Currently, versions for Windows 32 and 64 bits are available for downloads, however, in the past I was able to build the toolbox for MAC OS and Linux.
-
Expandability
The Complex Networks Package for MatLab is a function-based library. As such, most of its algorithms are stand-alone and are independent of the rest(though, some do rely on others). Addition of new algorithms is straightforward. One should only learn the data structure and add algorithms manipulating it.
Download
| Date | Version | Platform | Size | Link |
| May 30, 2007 | 1.0 | Win 32, MatLab 7, 32 bits |
1.40Mb | ComplexNetworkPackage32bit.zip |
| June 21, 2007 | 1.0 | Win 32, MatLab 7, x64 |
1.62Mb | ComplexNetworkPackage64bit.zip |
| August 16, 2007 | 1.0 | Win 32, MatLab 7, 32 & 64 bits in one package |
2.95Mb | ComplexNetworkPackage.zip |
Install
The current version of the Complex Network Package requires Mathwork's MatLab version 7 or higher. Both 32 and 64 bit versions are supported under MS Windows. Build for other operating systems is quite straightforward, but requires some special knowledge. Let me know if you need and I'll try to help.
To install the package, download and unpack the appropriate version. The entire package resigns within 'Graph' directory which should be added to MatLab path. The package makes extensive use of the FlexIO utility library which is located within the 'Graph' folder and which should also be added to MatLab path.
Tutorial
Here I provide a brief tutorial showing some of the Complex Networks Package for MatLab common uses. Check this section frequently as I intend to expend it. You are also welcome to address me with questions. I'll publish them as get answered.
Documentation & Support
Even though each m-file is well documented, I'm currently working to arrange all that documentation in one package. Check out this page for the most updated version (not much yet, but coming soon).
You also are most welcome to use the newly created forum or write me directly for both practical and theoretical questions. I will do my best to help you with your research.
