刚保研华科,老板布置的第一个任务,第一次接触,水平有限外加英文不好,还有外国网站被屏蔽原因,鼓捣了三天才弄好。其中参考了一篇博客,。
SNAP,全称StandfordNetwork Analysis Project,是斯坦福大学提供的一个功能非常强大的开源工具。这个工具主要用于复杂网络领域的研究工作,它的出现实为科研人员的福音。
安装步骤
1、进入SNAP的官方主页 英语好的的同学可以直接按照官网的说明进行配置,下面的内容就不用看了。如果你懒得看英文,那么就按照下面的步骤操作就可以了,本文也就是为了这个目的而写的。 3、下载SNAP相关的三个插件 Gnuplot 一个绘图的插件,在SNAP中会调用它来绘制一个复杂网络的相关属性的统计图,支持2D和3D。 点击进入Gnuplot官网下载安装包 Graphviz 同样是绘图的插件,在SNAP中调用它来绘制带有节点和边的复杂网络图。 点击进入Graphviz官网下载安装包 NodeXL Office的插件,这个的确非常给力,直接可以做图,再也不用编程画图了。 点击进入NodeXL官网下载安装包
上面几个文件我已上传云盘,也可以在里面下载,http://yunpan.cn/c327N7unitrfY 访问密码 d56f其中snap文件是snap-2.3版本。
4、安装必要软件 (1)Gnuplot和Graphviz是必须安装的,至于NodeXL,对于SNAP的编译和运行没有影响。Gnuplot和Graphviz的安装非常简单,一路都是下一步就行了。 (2)我用的是Windows+Visual Studio 2010(貌似2012版也可以)的环境,Linux+GCC的环境还没用过,以后再说吧(官方文档有说明),这里只介绍前者环境下的安装。 (3)安装好Visual Studio 2010之后第一次进入是需要选择编译环境,选择VisualC++。如果你以前就安装过Visual Studio2010,用它做的C#或Web开发,那么这时需 要更改一下编译环境。具体操作如下:工具->导入和导出设置向导->重置所有设置->否,仅重置设置,从而覆盖我的当前设置->Visual C++开发设置->完成。 5、设置系统环境变量 我的系统的Windows 7 x64 旗舰版,一下步骤请大家参考,不同的Windows系统略有差异,但是问题不大。 (1)右键单击计算机属性
(2)点击高级系统设置
(3)点击环境变量
(4)在系统变量中找到Path,单击编辑
(5)在最后加上两个路径:(我装在E盘了) E:\Program Files (x86)\gnuplot\bin E:\Program Files (x86)\Graphviz 2.28\bin 这里注意最后一个路径之前,任意两个路径之间需要用分号";"来分割,而且是英文输入法状态下的,最后一个路径后面没有分号";"。完成保存即可。 6、Visual Studio 2010的相关配置 (1)解压下载好的Snap文件,可以看到内部组成如下:
这里简单说明一下这篇文章用到的文件夹和对应的功能。examples文件夹是一个Visual Studio的解决方案,里面包括和SNAP的功能例子,虽然都是控制台应用程序,但是足够强大了。glib-core、snap-adv、snap-core这三个文件夹是类库,需要引入到工程中,具体引入方法在后面会具体说明。
(2)打开examples文件夹
(3)打开解决方案
找到SnapExamples-VS10.sln文件用vs2010打开。
(4)这里有很多工程,随便点击一个工程,每个工程对应着NSAP的一个功能。这里以motifs工程为例说明一下配置操作。 首先,选中motifs工程,项目->属性->配置属性->常规->项目默认值->字符集->选择“使用多字节字符集”,点击确定完成。这个操作,对每个工程都要操作一遍。
其次,工具->选项->项目和解决方案->VC++目录->在“显示一下内容的目录”处选择“包含文件”(这里千万不要忽略,导致包含目录出错)->分别增加snap-core、 snap-adv和glib-core三个文件夹的目录。这个操作只要做一次就可以了。
最后,编译运行这个工程就可以了。
7、功能测试 (1)在命令行中手都执行程序 在编译运行之后会发现控制台应用一闪而过,这是因为这些控制台应用都是需要使用参数来运行的。这里采用在命令行中用手动的方式调用控制台应用,这样的好处 是不用担心控制台会关闭,而且程序执行过程的记录容易查看。下面是步骤: 首先,在Snap-2.3/examples/Debug(如果你编译的时候选的是Release,这里就是Release)里面找到motifs.exe、motifs.ilk和motifs.pdb三个文件。然后将Snap/examples下的as20graph.txt,也拷贝到motifs文件夹中。
其次,cmd打开命令行:进入F: \snap\Snap-2.3\examples\Debug文件夹
输入 motifs.exe回车
会自动生成文件
或者也可以输入 motifs.exe -i:as20graph.txt -m:3 -d:T -o:syx
(syx 是输出结果的名字)在看motifs文件夹,生成了许多文件:
这个功能是用来查找整个复杂网络中的子图的,每个子图结构有两个文件。随便打开一个gif文件可以在浏览器中看到