Network Pajek Introduction Pajek is a program, for Windows, for analysis and visualization of large networks having some thousands or even millions of vertices. In Slovenian language the word pajek means spider. Application Pajek should provide tools for analysis and visualization of such networks: collaboration networks, organic molecule in chemistry, protein-receptor interaction networks, genealogies, Internet networks, citation networks, diffusion (AIDS, news, innovations) networks, data-mining (2-mode networks), etc. See also collection of large networks at: http://vlado.fmf.uni-lj.si/pub/networks/data/ Main goals to support abstraction by (recursive) decomposition of a large network into several smaller networks that can be treated further using more sophisticated methods; to provide the user with some powerful visualization tools; to implement a selection of efficient (subquadratic) algorithms for analysis of large networks. six data structures in pajek network – main object (vertices and lines - arcs, edges): partition reordering of vertices. Default extension: .per cluster numerical property of vertices. Default extension: .vec permutation Nominal property of vertices. Default extension: .clu vector graph, valued network, 2-mode or temporal network subset of vertices (e.g. a class from partition). Default extension: .cls. hierarchy hierarchically ordered clusters and vertices. Default extension: .hie Network – .net Network can be defined in different ways on input file. Look at three of them: 1. List of neighbours (Arcslist / Edgeslist)(see test 1.net) *Vertices 5 1 ”a” 2 ”b” 3 ”c” 4 ”d” 5 ”e” *Arcslist 124 23 314 45 *Edgeslist 15 Explanation Data must be prepared in an input (ASCII) file. Program NotePad can be used for editing. Much better is a shareware editor, TextPad. Words, starting with *, must always be written in first column of the line. They indicate the start of a definition of vertices or lines. Using *Vertices 5 we define a network with 5 vertices. This must always be the first statement in definition of a network. Definition of vertices follows after that – to each vertex we give a label, which is displayed between “ and ”. Using *Arcslist, a list of directed lines from selected vertices are declared (1 2 4 means, that there exist two lines from vertex 1, one to vertex 2 and another to vertex 4). Similarly *Edgeslist, declares list of undirected lines from selected vertex. In the file no empty lines are allowed – empty line means end of network. Network – .net 2. Pairs of lines (Arcs / Edges) (see test 2.net) *Vertices 5 1 ”a” 2 ”b” 3 ”c” 4 ”d” 5 ”e” *Arcs 121 141 232 311 342 451 *Edges 151 Explanation Directed lines are defined using *Arcs, undirected lines are defined using *Edges. The third number in rows defining arcs/edges gives the value/weight of the arc/edge. In the previous format (Arcslist / Edgeslist) values of lines are not defined the format is suitable only if all values of lines are 1. If values of lines are not important the third number can be omitted (all lines get value 1). In the file no empty lines are allowed – empty line means end of network. Network – .net 3.Matrix (see test 3.net) *Vertices 5 1 ”a” 2 ”b” 3 ”c” 4 ”d” 5 ”e” *Matrix 01011 00200 10020 00001 10000 Explanation In this format directed lines (arcs) are given in the matrix form (*Matrix). If we want to transform bidirected arcs to edges we can use “Network>create new network>Transform>Arcs to Edges>Bidirected only” Additional definition of network Additionally, Pajek enables precise definition of elements used for drawing networks (coordinates of vertices, shapes and colors of vertices and lines, ...). Example: (see test 4.net) *Vertices 5 1 “a” box 2 “b” ellipse 3 “c” diamond 4 “d” triangle 5 “e” empty ... Draw Layout of networks Energy: The network is presented like a physical system, and we are searching for the state with minimal energy Kamada-Kawai: using separate components, you can tile connected components in a plane Fruchterman-Reingold: draw in a plane or space and selecting the repulsion factor Eigen Values: Selecting 2 or 3 eigenvectors to become the coordinates of vertices. Can obtain nice pictures Partition – .clu Partitions are used to describe nominal properties of vertices. e.g., 1-men, 2-women Definition in input file (see test.clu) *Vertices 5 1 2 2 2 1 Vector – .vec Vectors are used to describe numerical properties of vertices (e.g., centralities). Definition in input file (see test.vec) *Vertices 5 0.58 0.25 0.25 0.08 0.25 Pajek project files It is time consuming to load objects one by one. Therefore it is convenient to store all data in one file, called Pajek project file (.paj). (see test.paj) Project files can be produced manually by using “File>Pajek Project File>Save” To load objects stored in Pajek project file select “File>Pajek Project File>Read” Menu structure Commands are put to menu according to the following criterion: commands that need only a network as input are available in menu Net, commands that need as input two networks are available in menu Networks, commands that need as input two objects (e. g., network and partition) are available in menu Operations, commands that need only a partition as input are available in menu Partition . . . Global and local views on network Global and local views on network Local view is obtained by extracting sub-network induced by selected cluster of vertices. Global view is obtained by shrinking vertices in the same cluster to new (compound) vertex. In this way relations among clusters of vertices are shown. Combination of local and global view is contextual view: Relations among clusters of vertices and selected vertices are shown. Example Import and export in 1994 among 80 countries are given. They is given in 1000$. (See Country_Imports.net) Partition according to continents (see Country_Continent.clu) 1 – Africa, 2 – Asia, 3 – Europe, 4 – N. America, 5 – Oceania, 6 – S. America. Operations>Extract from Network>Partition Operations>Shrink Network>Partition Extracting Subnetwork Operations>Extract from Network>Partition Extracting Subnetwork Operations>Shrink Network>Partition Removing lines with low values Network>Info>Line Values Removing lines with low values Network>Create New Network>Transform>Remove>Lines with value>lower than (340000) Resources Download Text file into Pajek http://vlado.fmf.uni-lj.si/pub/networks/pajek/WoS2Pajek/default.htm Tutorial http://vlado.fmf.uni-lj.si/pub/networks/pajek/howto/text2pajek.htm WoS to Pajek The latest version of Pajek is freely available, for non-commercial use, at its home page: http://vlado.fmf.uni-lj.si/pub/networks/pajek/ Exploratory Social Network Analysis with Pajek visit Pajek wiki for more information http://pajek.imfm.si/doku.php http://pajek.imfm.si/doku.php?id=wos2pajek/ WOS TO PAJEK Web of Science S519 Output S519 Output S519 wos2pajek The download link: http://pajek.imfm.si/doku.php?id=wos2pajek The new tutorial slides: http://pajek.imfm.si/lib/exe/fetch.php?media=faq:wo s:wos2pajek07.pdf MontyLingua Download from: http://web.media.mit.edu/~hugo/montylingua/ Unpack it and copy ‘montylingua-2.1’ to C:\Python26\Lib\site-packages Set up a new environment variable named ‘MONTYLINGUA’ and set the variable value as c:\Python26\Lib\site-packages\MontyLingua2.1\Python wos2pajek Download the latest version of WoS2Pajek. http://pajek.imfm.si/doku.php?id=wos2pajek Unpack it, and double click on WoS2Pajek.py to show the main interface of program: You can also put all wos files in a folder WoS2Pajek Program The current version of WoS2Pajek requires 7 parameters to be given by the user: MontyLingua directory: path to the directory in which the MontyLingua package is installed; project directory: where the output files are saved; WoS file; maxnum – estimate of the number of all vertices (number of records+number of cited Works) –30*number of records; step – prints info about each k*step record as a trace; step= 0– no trace. use ISI name / short name; make a clean WoS file without duplicates; boolean list[DE, ID, TI, AB] specifying which fields are sources of keywords. Wos-pajek.txt Cite.net Network/Info/General Network/Create New Network/Transform/Remove/Loops Network/Create New Network/Transform/Remove/Multiple lines/Single line CiteNew.net Paper citation network Questions What are highly cited articles? The diameter of the network? What are the major clusters? More questions? Strong component of cite network Network/Create Partition/Components/Strong [2] Operations/Network+Partition/Extract SubNetwork [1-*] Operations/Network+Partition/Transform/Remove Lines/Between Cluster Save citestrong.clu Co-author network Read WA.net Network/2-mode network/2-mode to 1-mode/Columns Network/Create Partition/Components/Weak [2] Operations/Network+Partition/Extract SubNetwork[1-*] Network/Create New Network/Transform/Remove/Loops WANew.net (which is a co-author network) Questions: The author with highest co-authors? Bibliographic coupling network [Read Cite.net] Network/Create New Network/Transform/1-mode to 2mode Network/2-mode Network/2-mode to 1-mode/Rows Network/Create Partition/Components/Weak [2] Operations/Network + Partition/Extract SubNetwork [1-*] Co-citation network [Read Cite.net] Network/Create Partitions/Degree/Output Operations/Network+Partition/Extract subNetwork [1-*] Network/Create New Network/Transform/1-mode to 2mode Network/2-mode network/2-mode to 1-mode/Columns Network/Create Partition/Components/Weak [2] Operations/Network+Partition/Extract SubNetwork [1-*] NETWORK ANALYSIS Two-mode network One-mode network each vertex can be related to each other vertex. Two-mode network vertices are divided into two sets and vertices can only be related to vertices in the other set. Example Suppose we have data as below: P1: Au1, Au2, Au5 P2: Au2, Au4, Au5 P3: Au4 See two_mode.net P4: Au1, Au5 P5: Au2, Au3 P6: Au3 P7: Au1, Au5 P8: Au1, Au2, Au4 P9: Au1, Au2, Au3, Au4, Au5 P10: Au1, Au2, Au5 *vertices 15 10 1 "P1" 2 "P2" 3 "P3" 4 "P4" 5 "P5" 6 "P6" 7 "P7" 8 "P8" 9 "P9" 10 "P10" 11 "Au1" 12 "Au2" 13 "Au3" 14 "Au5" 15 "Au5" *edgeslist 1 11 12 15 2 12 14 15 3 14 4 11 15 5 12 13 6 13 7 11 15 8 11 12 14 9 11 12 13 14 15 10 11 12 15 Transforming to valued networks The network is transformed into an ordinary network, where the vertices are elements from the first subset, using “Network>2 mode network>2-Mode to 1-Mode>Rows”. Transforming to valued networks If we want to get a network with elements from the second subset we use “Network>2 mode network>2-Mode to 1-Mode>Columns”. Basic information about a network Basic information can be obtained by “Network>Info>General” which is available in the main window of the program. We get number of vertices number of arcs, number of directed loops number of edges, number of undirected loops density of lines Additionally we must answer the question: Input 1 or 2 numbers: +/highest, -/lowest where we enter the number of lines with the highest/lowest value or interval of values that we want to output. If we enter 10 , 10 lines with the highest value will be displayed. If we enter -10, 10 lines with the lowest value will be displayed. If we enter 3 10 , lines with the highest values from rank 3 to 10 will be displayed. Metformin Network Load metformin network to Pajek EntityMetrics Entitymetrics is defined as using entities (i.e., evaluative entities or knowledge entities) in the measurement of impact, knowledge usage, and knowledge transfer, to facilitate knowledge discovery. Ding, Y., Song, M., Han, J., Yu, Q., Yan, E., Lin, L., & Chambers, T. (2013). Entitymetrics: Measuring the impact of entities. PLoS One, 8(8): 1-14. EntityMetrics Diameter of the network Network/Create New Network/SubNetwork with Paths/Info on Diameter Pajek returns only the two vertices that are the furthest away. Component Strongly connected components Weakly connected components Network>Create Partition>Components>Weak Result is represented by a partition Network>Create Partition>Components>Strong vertices that belong to the same component have the same number in the partition. Example component.net Component.net Weak Component Go to partition weak component, Partition>make network>random network>Input Visualize the new random network Weak Component Strong Component Strong Component Bicomponent A cut-vertex is a vertex whose deletion increases the number of components in the network. A bi-component is a component of minimum size 3 that does not contain a cut-vertex. Bicomponent example Bicomponent Network/Create New Network/......with Bi-Connected Components stored as Relation Numbers Bicommponents are stored in hierarchy Load USAir97.net Get bicomponents with (14 of them) with component size >3 Bicomponent The largest component is 244 airports Bicomponents Hierarchy>Extract Cluster (13), then result is stored in cluster Draw the cluster Bicomponents Operations>Network+Cluster>Extract SubNetwork Bicomponents Operations>Network+Cluster>Extract SubNetwork The info about the largest cluster (244) Bicomponents Network>Create Partition>Degree>Input Busy airports K-Cores A subset of vertices is called a k-core if every vertex from the subset is connected to at least k vertices from the same subset. K-Cores can be computed using “Network>Create Partitions>K-Core” and selecting Input, Output or All core. Result is a partition: for every vertex its core number is given. In most cases we are interested in the highest core(s) only. The corresponding subnetwork can be extracted using “Operations>Extract from Network>Partition” and typing the lower and upper limit for the core number. Example See k_core.net K_core.net Clustering Coefficients How three nodes are connected Calculation of local Clustering Coefficients: Network>Create Vector>Clustering Coefficients>CC1 K_core.net Degree Centrality Degree centrality Network>Create Partition>Degree, or Network/Create Vector/Centrality/Degree; Example: Metformin network Betweenness Centrality How nodes are connecting different clusters Betweenness centrality Network>Create vector>Centrality>Betweenness Betweenness Centrality The betweenness centrality value for each node Closeness Centrality Closeness centrality Network>Create Vector>Centrality>Closeness Showing how one node is close to all other nodes in the network Shortest Path Network/Create New Network/SubNetwork with Paths/.. ...One Shortest Path between Two Vertices Enter two vertices Forget values on lines Identify vertices in source network Yes, if searching for the shortest path is based on lengths No, if searching for the shortest path is based o vlaue of lines No Result will be a new subnetwork containing the two selected vertices Layout>Energy>Kamada Kawai>Fix first and last Shortest path Network/Create New Network/SubNetwork with Paths/.. ...One Shortest Path between Two Vertices (17-7045)