Plug-ins Reference

Clustering


HierarchicalClustering

Description



QuotientClustering

Description



StrengthClustering

Description


Export


GMLExport

Description

Export plugin for GML format.

This plugin records a Tulip graph structure using the GML File format. This format is the file format used by Graphlet. See www.infosun.fmi.uni-passau.de/Graphlet/GML/ for details.


Glyph


Billboard

Description

A 2D glyph.

This glyph draws a textured square using the "viewTexture" node property value. If this property has no value, the square is then colored using the "viewColor" node property value. It is unsensitive to any axis rotation and so always remains displayed in the same position.



ChristmasTree

Description

A 3D glyph.

This glyph draws a christmas tree special for christmas release of 2008



Circle

Description

A 2D glyph.

This glyph draws a textured disc using the "viewTexture" node property value. If this property has no value, the disc is then colored using the "viewColor" node property value.



Cone

Description

A 3D glyph.

This glyph draws a textured cone using the "viewTexture" node property value. If this property has no value, the cone is then colored using the "viewColor" node property value.



Cube

Description

A 3D glyph.

This glyph draws a textured cube using the "viewTexture" node property value. If this property has no value, the cube is then colored using the "viewColor" node property value.



CubeOutLinedTransparent

Description

A 3D glyph.

This glyph draws a transparent cube using the "viewBorderColor" node property value to draw its edges.



HalfCylinder

Description

A 3D glyph.

This glyph draws an textured a half cylinder - a cylinder whose height is half the one draws by the Cylinder glyph - using the "viewTexture" node property value. If this property has no value, the half cylinder is then colored using the "viewColor" node property value.



Hexagone

Description

A 2D glyph.

This glyph draws a textured hexagone using the "viewTexture" node property value. If this property has no value, the hexagone is then colored using the "viewColor" node property value.



Pentagone

Description

A 2D glyph.

This glyph draws a textured pentagone using the "viewTexture" node property value. If this property has no value, the pentagone is then colored using the "viewColor" node property value.



Ring

Description

A 2D glyph.

This glyph draws a textured disc with a circular hole using the "viewTexture" node property value. If this property has no value, the ring is then colored using the "viewColor" node property value.



RoundedBox

Description

A 2D glyph.

This glyph draws a rounded box, meaning a rectangle with rounded corners. The box is colored according to the "viewColor" property. It can also be outlined if "viewBorderWidth" is greater than zero. The outline is colored according to the "viewBorderColor" property. Last but not least, it can also be textured according to the "viewTexture" property.



Sphere

Description

A 3D glyph.

This glyph draws a textured sphere using the "viewTexture" node property value. If this property has no value, the sphere is then colored using the "viewColor" node property value.



Square

Description

A 2D glyph.

This glyph draws a textured square using the "viewTexture" node property value. If this property has no value, the square is then colored using the "viewColor" node property value.


Import


AdjacencyMatrixImport

Description

This plugin enables to import a graph coded with a matrix

File format:

The input format of this plugin is an ascii file where each line represents a row of the matrix. In each row, cells must be separated by a space.

Let M(i,j) be a cell of the matrix :

If M(i,j) is real value (0, .0, -1, -1.0), it is stored in the viewMetric property of the graph.
If M(i,j) is a string, it is stored in the viewLabel property of the graph.
Use & to set the viewMetric and viewLabel properties of a node or edge in the same time. If M(i,j) == @ an edge will be created without value
If M(i,j) == # no edge will be created between node[i] and node[j]

EXEMPLE 1 :
A
# B
# # C
Define a graph with 3 nodes (with labels A B C) and without edge.

EXEMPLE 2 :
A
@ B
@ @ C
Define a simple complete graph with 3 nodes (with labels A B C) and no label (or value) on its edges

EXEMPLE 3 :
A # E & 5
@ B
# @ C
Define a graph with 3 nodes and 3 edges, the edge between A and C is named E and has the value 5



CompleteTree

Description

Complete Tree - Import of a complete tree.

This plugin enables to create a complete tree

User can specify the depth and the degree of the tree.



DotImport

Description

This plugin enables to import a graph coded with in dot format

File format: [ http://www.research.att.com/sw/tools/graphviz/ ]

First (quick) support of the AT&T DOT language



FileSystem

Description

Import a tree representation of a file system directory.

This plugin enables to capture in a tree the full hierarchy of of a given file system directory



GMLImport

Description

Import plugin for GML format.

This plugin imports a graph structure recorded using the GML File format. This format is the file format used by Graphlet. See www.infosun.fmi.uni-passau.de/Graphlet/GML/ for details.



Grid

Description

Grid - Import a grid.

This plugin enables to create a grid.

User can specify the connectivity of each nodes in the grid, spacing between nodes and if opposite nodes are connected.



PlanarGraph

Description

Planar Graph - Import of planer graph.

This plugin enables to create a planar graph

User can specify the number of nodes.



RandomGraph

Description

Random Graph - Import of a random graph.

This plugin enables to create a random graph

User can specify the number of nodes and the number of edges of the graph.



RandomSimpleGraph

Description

Random Simple Graph - Import of a random simple graph.

This plugin enables to create a random simple graph

User can specify the number of nodes and the number of edges of the graph.



RandomTree

Description

Random Tree - Import of a random tree.

This plugin enables to create a random tree

User can specify the minimal/maximal numbers of nodes used to build of the tree.



RandomTreeGeneral

Description

Random General Tree - Import of a random general tree.

This plugin enables to create a random general tree

User can specify the minimal/maximal number of nodes and the maximal degree.



SmallWorldGraph

Description

Grid Approximation - Import of a grid approximation.

This plugin enables to create a gride approximation

User can specify the number of nodes and their average degree.


Layout


BubbleTree

Description

This plug-in implement the bubble tree drawing algorithm first published as:

Bubble Tree Drawing Algorithm :
D. Auber and S. Grivet and J-P Domenger and Guy Melancon,
In International Conference on Computer Vision and Graphics, pages 633-641, september 2004.

HISTORY

NOTES

This algorithm only works on trees. Let n be the number of nodes, the algorithm complexity is in O(n) or O(nlog(n)), By default O(nlog(n)) algorithm is used, but one can choose the complexity by using the argument (bool)"complexity" (true means O(nlog(n), false O(n)). The algorithm can manage nodes of different size. The SizeProperty "viewSize" is used by default if no parameters are given to the plug-in. The parameter is (SizeProperty*) "node size".

AUTHORS

David Auber, S. Grivet University Bordeaux I France: auber@tulip-software.org , grivet@labri.fr



Circular

Description

This plugin is an implementation of a circular layout that takes node size into account. It manages size of nodes and use a standard dfs for ordering nodes or search the maximum length cycle.

HISTORY:

25/11/2004 version 0.0.2: size and order 01/12/1999 Version 0.0.1: Initial release

NOTES:

This work on general graphs. Let n be the number of nodes, the algorithm complexity is in O(n). If the search_cycle is enabled, the complexity is exponential (NP-Complete problem !).

AUTHORS:

David Auber and Romain Bourqui University Bordeaux I France: Email: auber@tulip-software.org Daniel Archambault The University of British Columbia: Email: archam@cs.ubc.ca



ConeTreeExtended

Description

ConeTreeExtended.h - An implementation of the cone tree layout.

This plugin is an extension of the Cone tree layout algorithm first published as:

A. FJ. Carriere and R. Kazman,
"Interacting with Huge Hierarchies: Beyond Cone Trees",
In Proceedings of InfoViz'95,
IEEE Symposium on Information Visualization
pages 74-78, 1995,

Information about the extension can be found in :

D.Auber, PhD Thesis, "Outils de visualisation de larges structures de donnees", University Bordeaux, december 2002.

HISTORY

NOTES

This algorithm only works on trees. Let n be the number of nodes, the algorithm complexity is in O(n).

AUTHORS

David Auber University Bordeaux I France: Email: auber@tulip-software.org



Dendrogram

Description

This plugin is an implementation of a dendrogram, an extended implementation of a "Bio representation" which includes variable orientation and variable node sizelayout.

NOTES

This works on tree. Let n be the number of nodes, the algorithm complexity is in O(n).

AUTHORS

Julien Testut, Antony Durand, Pascal Ollier, Yashvin Nababsing,
Sebastien Leclerc, Thibault Ruchon, Eric Dauchier
University Bordeaux I France



GEMLayout

Description

An implementation of a spring-embedder layout.

This plugin is an implementation of the GEM-2d layout algorithm first published as:

A. Frick, A. Ludwig, and H. Mehldau,
"A fast, adaptive layout algorithm for undirected graphs",
In R. Tamassia and I. Tollis (Eds),
Graph Drawing'94,
Volume 894 of Lecture Notes in Computer Science, Springer Verlag, 1995.

HISTORY

The implementation started life as the public-domain code produced by Arne Frick and released at

www.frick-consulting.de/publications.html

The core "embedder" part of the algorithm was used in the implementation of a Java plugin for the CWI "Royere" tool, and then this code was ported to C++ to make the implementation given here.

NOTES

The embedder algorithm described by Frick involves three phases: insertion, arrangement, and optimization. Only the first two of these phases are included here. Experiments with the Java implementation showed that the optimization phase consumed significantly more time than the first two and produced apparently marginal improvements in the final layout.
As GEM, like other spring-embedder algorithms, is computationally expensive, I have tried to optimize the loops somewhat by storing all necessary node information into two arrays: "GemProp" carries the (scalar) values associated with each node by the layout algorithm, while "Adjacent" is an array of vectors, one vector per node, giving the index (integer) of each node.

The new version has been reimplemented to manage edge length it merges the 3D stuff and removes the use of integers (new CPU do not require it anymore).

AUTHORS

David Duke, University of Bath, UK: Email: D.Duke@bath.ac.uk

David Auber,University of Bordeaux, FR: Email: david.auber@labri.fr Version 0.1: 23 July 2001. Version 0.2: September 2006



HierarchicalGraph

Description



ImprovedWalker

Description

This plugin is an implementation of a linear Walker's algorithm:

Christoph Buchheim and Michael Junger and Sebastian Leipert, Improving Walker's Algorithm to Run in Linear Time citeseer.ist.psu.edu/buchheim02improving.html

NOTES

This algorith works on tree. Let n be the number of nodes, the algorithm complexity is in O(n).

AUTHORS

Julien Testut, Antony Durand, Pascal Ollier, Yashvin Nababsing,
Sebastien Leclerc, Thibault Ruchon, Eric Dauchier
University Bordeaux I France



MixedModel

Description

This plugin is an implementation of the planar polyline graph drawing algorithm, the mixed model algorithm, first published as:

C. Gutwenger and P. Mutzel,
"Planar Polyline Drawings with Good Angular Resolution",
"Lecture Notes In Computer Science, Vol. 1547"
"Proceedings of the 6th International Symposium on Graph Drawing,"
pages "167--182"
1998

Let n be the number of nodes, the original algorithm complexity is in O(n).
But the implementation of the canonical ordering has not been made in O(n).
This version of the algorithm considers each connected component of the graph, tests if it is planar or not. If not, it computes a planar subgraphs, which is a maximal planar "sub-map". Then an area aware version of Gutwenger and Mutzel 's algorithm is used, and if the connected component was not planar, it adds the "unplanar" edges in 3D. Finally, it uses the Connected Component Packing plugin of Tulip Software to pack the connected components.



SquarifiedTreeMap

Description

SquarifiedTreeMap.h - An implementation of a squarified treemap layout.

This plugin is an implementation of TreeMap and Squarified treemap layout.

Squarified Treemaps :
Bruls, M., Huizing, K., & van Wijk, J. J.
In Proc. of Joint Eurographics and IEEE TCVG Symp. on Visualization
(TCVG 2000) IEEE Press, pp. 33-42.

Shneiderman, B. (March 1991) Tree visualization with treemaps: a 2-d space-filling approach ACM Transactions on Graphics, vol. 11, 1 (Jan. 1992) 92-99. HCIL-91-03, CS-TR-2645, CAR-TR-548

NOTES

This algorith only works on tree.

VERSION

1.0.0 complete rewrite, merge treemap and squarified in the same algorithm simplify implementation. The algorithm can be tune to go 2 or 3 time faster however, since the algorithm is fast enough, the code is written to be easily read and maintain.

AUTHORS

Auber David

VERSION

0.0.0

AUTHORS

Julien Testut, Antony Durand, Pascal Ollier, Yashvin Nababsing,
Sebastien Leclerc, Thibault Ruchon, Eric Dauchier
University Bordeaux I France



TreeLeaf

Description



TreeRadial

Description

TreeRadial.cpp - An implementation of a radial drawing of trees.

This algorithm is inspired from MoireGraphs: Radial Focus+Context Visualization and Interaction for Graphs with Visual Nodes from T. J. Jankun-Kelly, Kwan-Liu Ma published in IEEE Symposium on Information Visualization (2003)



TreeReingoldAndTilfordExtended

Description

This plugin is an implementation of the hierarchical tree layout algorithm first published as:

E.M. Reingold and J.S. Tilford,
"Tidier Drawings of Trees",
"IEEE Transactions on Software Engineering"
pages "223--228"
1981

NOTES

This algorithm only works on trees; so if the graph is not a tree it will be applied on a spanning tree.
Let n be the number of nodes, the algorithm complexity is in O(n).
It extends the original Reingold and Tilford by providing managment of different node size and different edge length.

The algorithm use the (Size)"viewSize" property for element size and the (int)"treeEdgeLength" for the edge length.



Tutte

Description

This plugin is an implementation of the Tutte layout for 3-Connected graph algorithm first published as:

W.T. Tutte , "How to Draw a Graph", "Proc. London Math. Soc.", "1963", pages 743-768.


Metric


BetweennessCentrality

Description

This plugin is an implementation of betweeness centrality parameter. (see http://en.wikipedia.org/wiki/Centrality#Betweenness_centrality for more details)

Algorithm published by:

U. Brandes,
"A Faster Algorithm for Betweenness Centrality",
"Journal of Mathematical Sociology"
"2001",
volume 25,
pages 163-177

The edge betweeness centrality is also computed, it is described in :

Newman, M. E. J. and Girvan, M.
"Finding and evaluating community structure in networks",
"Physics Reviews E",
"2004",
volume 69

NOTES

The complexity of the algorithm is O(|V| * |E|) in time HISTORY



BiconnectedComponent

Description

This plugin is an implementation of a biconnected component decomposition algorithm. It assigns the same value to all the edges in the same component.

NOTES

This algorithm assigns to each node a value defined as following : If two nodes are in the same connected component they have the same value else they have a different value.



ClusterMetric

Description

This plugin is an implementation of the Algorithm Parameter. algorithm published in :

Y. Chiricota. F.Jourdan, an G.Melancon
"Software component capture using graph clustering",
"IWPC",
2002.

Extended to unbounded depth (for the neigbors) :

NOTES

This algorithm works on general graphs. The algorithm use the parameter depth in order to determine the depth of the neighbors. If no depth is given, the plugins automatically popup a qt windows to ask the user for this parameter.



ConnectedComponent

Description

This plugin is an implementation of the connected component decompostion algorithm. each node and edge that belongs to the same component receive the same value.

NOTES

This algorithm assigns to each node a value defined as following : If two nodes are in the same connected component they have the same value else they have a different value.



DagLevelMetric

Description

This plugin is an implementation of a DAG layer decomposition

NOTES

This algorithm works on general DAG, the complexity is in O(|E|+|V|);



DegreeMetric

Description

This plugin compute the degree of each node

NOTES

This plug-in exists to obtain a uniform interface in the Tulip graph visualization software. To access to the degree of a node it is recommended to use directly the degree function available in each graph.



DepthMetric

Description

This plugins compute for each node n, the maximum path-length between n and the other node. The graph must be acyclic.

NOTES

This algorithm works on general graphs.



EccentricityMetric

Description

This plugin compute the eccentricity/closeness centrality of each node

Eccentricity is the maximum distance to go from a node to all others. In this version the Eccentricity value can be normalized (1 means that a node is one of the most eccentric in the network, 0 means that a node is on the centers of the network).

More information about the use of eccentricity metric can be found in :

Visone: Analysis and visualization of social networks.
"Book. Graph Drawing Software. (Ed. Michael Junger & Petra Mutzel",
Authors : Ulrik Brandes and Dorothea Wagner.
"2004",
pages 321-340.

Closeness Centrality is the mean of shortest-paths lengths from a node to others. The normalized values are computed using the reciprocal of the sum of these distances (see "http://en.wikipedia.org/wiki/Closeness_(graph_theory)#Closeness_centrality" for more details).

NOTES

The complexity of the algorithm is O(|V| * |E|) time and O(1) space.



IdMetric

Description

This plugins assigns id to nodes and edges. The ids are those used by tulip.



LeafMetric

Description

This plugin computes the number of leaves in the subtree induced by each node.

NOTES

This algorithm assigns to each node a value defined as following : If two nodes are in the same connected component they have the same value else they have a different value.



NodeMetric

Description

This plugin computes the number of nodes in the subtree induced by each node.

NOTES

This algorithm assigns to each node a value defined as following : If two nodes are in the same connected component they have the same value else they have a different value.



RandomMetric

Description

This plugins assigns random values to nodes and edges. the values are between 0 and 1.



StrahlerMetric

Description

This plugin is an implementation of the Strahler Parameter. algorithm first published as:

A.N. Strahler ,
"Hypsomic analysis of erosional topography",
"Bulletin Geological Society of America 63,pages 1117-1142.",
1952.

Extended to graphs in :

D. Auber,
Using Strahler numbers for real time visual exploration of huge graphs,
ICCVG, International Conference on Computer Vision and Graphics,
pages 56-69,
2002, September.

NOTES

This algorithm works on general graphs, if no node is selected, the algorithm automatically choose the nodes with higher outdegree as starting nodes.

The algorithm use the (bool)"viewSelection" property to determine the starting nodes.



StrengthMetric

Description

This plugin is an implementation of the Strength Parameter. algorithm first published in :

Y. Chiricota. F.Jourdan, and G.Melancon
"Software component capture using graph clustering",
"IWPC",
2002.


Selection


InducedSubGraphSelection

Description

This selection plugins enables to find a subgraph induced by a set of nodes.

Let V' a subset of nodes, G' is an induced subgraph of G if all edges (and only these ones) element of G that link two nodes (only one in case of loop) of V' are in G'.

AUTHORS

David Auber, LaBRI University Bordeaux I France: auber@tulip-software.org



Kruskal

Description

This selection plugins implements the so called Kruskal algorithm. This algorithm enables to find a minimum spanning tree in a connected graph.

This selection plugins enables to find all nodes and edges at a fixed distance of a set of nodes.

This only works on undirected graphs, (ie. the orientation of edges is omitted).

It takes one parameter :

AUTHORS

Anthony Don, LaBRI University Bordeaux I France:



LoopSelection

Description

This selection plugins enables to find loops in a graph A loop is an edge that has the same source and target.

AUTHORS

David Auber, LaBRI University Bordeaux I France: auber@tulip-software.org



MultipleEdgeSelection

Description

This selection plugins enables to find the multiple-edges and parallel-edges in a graph. Let e1, e2 two edges, e1 and e2 are parallel edges if source(e1)=source(e2) and target(e1) = target(e2). If it exists n edges between two nodes, only n-1 edges will be selected.

AUTHORS

David Auber, LaBRI University Bordeaux I France: auber@tulip-software.org



ReachableSubGraphSelection

Description

This selection plugin enables to find all nodes and edges at a fixed distance of a set of nodes. It takes three parameters :

AUTHORS

David Auber, LaBRI University Bordeaux I France: auber@tulip-software.org



SpanningDagSelection

Description

This selection plugins enables to find a subgraph of G that is acyclic.

AUTHORS

David Auber, LaBRI University Bordeaux I France: auber@tulip-software.org



SpanningTreeSelection

Description

This selection plugins enables to find a subgraph of G that is a forest (a set of trees).

AUTHORS

David Auber, LaBRI University Bordeaux I France: auber@tulip-software.org


Size


AutoSize

Description

AutoSize.cpp - Compute size in order to prevent node-node overlapping.

This plug-ins compute size of nodes and edges such that, node-node overlapping do not exists (if it is possible). and sizes of edges are proportional to size of nodes.

AUTHORS

David Auber University Bordeaux I France: Email: auber@tulip-software.org



FitToLabel

Description

FitToLabel.cpp - Compute size of elements according to the size of the displayed label.

version 1.0.0 : Tulip Team, Complete rewrite initial version : Sebastien Carceles, Pascal Niotout, Sophie Bardet, Julien Mercadal, Bertrand Ng Sing Kwong

AUTHORS

Maintainer : David Auber University Bordeaux I France: Email: auber@tulip-software.org



MetricSizeMapping

Description

Metric Mapping - Compute size of elements according to a metric.

This plugin enables to set the size of the graph's elements according to a metric.

AUTHORS

David Auber University Bordeaux I France: Email: auber@tulip-software.org