Carleton University School of Computer Science Comp 5901 Directed Studies

Total Page:16

File Type:pdf, Size:1020Kb

Carleton University School of Computer Science Comp 5901 Directed Studies Carleton University School of Computer Science Comp 5901 Directed Studies JJGGrraapphhEEdd –– AA JJaavvaa GGrraapphh EEddiittoorr aanndd GGrraapphh DDrraawwiinngg FFrraammeewwoorrkk Author: Jon Harris Submitted: April 28, 2004 Submitted To: Professor Pat Morin Table of Contents 1. Introduction..................................................................................................................... 4 2. Framework ...................................................................................................................... 4 2.1 Graph Structure......................................................................................................... 4 2.1.1 Graph.................................................................................................................. 4 2.1.1.1 Interface for editing..................................................................................... 5 2.1.1.2 Drawing....................................................................................................... 6 2.1.1.3 Log Entries.................................................................................................. 7 2.1.1.4 Undo / Redo Mementos .............................................................................. 7 2.1.1.5 Copies ......................................................................................................... 7 2.1.2 Node................................................................................................................... 8 2.1.3 Edge ................................................................................................................... 8 2.1.4 Node and Edge Extenders................................................................................ 10 2.1.5 Graph Files....................................................................................................... 10 2.2 User Interface.......................................................................................................... 11 2.2.1 Menu and Toolbar............................................................................................ 11 2.2.2 Graph Editor..................................................................................................... 13 2.2.2.1 Graph Editor Modes.................................................................................. 14 2.2.2.1.1 Edit Mode........................................................................................... 14 2.2.2.1.1 Grid Mode.......................................................................................... 16 2.2.2.1.1 Move, Resize and Rotate Modes ....................................................... 16 2.2.2.2 Graph Editor Dialogs ................................................................................ 17 2.2.2.3 Graph Editor Info Window ....................................................................... 17 2.2.2.4 Graph Editor Log Window ....................................................................... 17 2.2.3 Graph Controller .............................................................................................. 18 2.2.3.1 Graph Editor Preferences Window ........................................................... 18 2.2.3.2 Graph Editor Help Window...................................................................... 19 3 Data Structures............................................................................................................... 19 3.1 Doubly Linked List................................................................................................. 19 3.2 Queue ...................................................................................................................... 19 3.3 Binary Heap ............................................................................................................ 20 3.4 Node Split Tree (KD-Tree)..................................................................................... 20 3.5 PQ / PQD Tree........................................................................................................ 21 4 Operations (Algorithms) ................................................................................................ 21 4.1 Adding a New Operation to JGraphEd ................................................................... 22 4.2 Existing Operations in JGraphEd............................................................................ 23 4.2.1 Create Random Graph...................................................................................... 23 4.2.2 Depth First Search............................................................................................ 23 4.2.3 Connectivity..................................................................................................... 23 4.2.4 Biconnectivity.................................................................................................. 24 4.2.5 Make Maximal Planar...................................................................................... 26 4.2.6 ST Numbering.................................................................................................. 27 4.2.7 Planarity Testing .............................................................................................. 29 4.2.8 Embedding ....................................................................................................... 30 4.2.9 Canonical Ordering.......................................................................................... 32 4.2.10 Normal Labeling ............................................................................................ 34 4.2.11 Schnyder Straight Line Grid Embedding....................................................... 36 4.2.12 Tree ................................................................................................................ 38 4.2.13 Chan Tree....................................................................................................... 39 4.2.14 Dijkstra’s Shortest Path.................................................................................. 42 4.2.15 Minimal Spanning Tree ................................................................................. 43 5 Conclusion ..................................................................................................................... 43 6 References...................................................................................................................... 44 Table of Figures Figure 1 A sample graph being edited with JGraphEd....................................................... 6 Figure 2 Half-Edge Structure.............................................................................................. 9 Figure 3 Bézier Curve and Control Points........................................................................ 10 Figure 4 Snapshot of JGraphEd's menu and toolbar, with button chooser expanded/showing.............................................................................................. 12 Figure 5 Illustration of Biconnected Sub-Graphs and Separator Nodes........................... 24 Figure 6 Illustration of Make Biconnected Operation ...................................................... 26 Figure 7 Illustration of Make Maximal Planar Operation ................................................ 27 Figure 8 Illustration of an ST-Numbered Graph............................................................... 28 Figure 9 Illustration of Planar, and Non-Planar Graphs ................................................... 29 Figure 10 Illustration of the Embedding Operation.......................................................... 31 Figure 11 Illustration of the requirements of a Canonical Ordering................................. 32 Figure 12 Illustration of a Canonical Ordered Graph ....................................................... 33 Figure 13 Illustration of a Normal Labeled Graph ........................................................... 34 Figure 14 Illustration of the order of edges around a Normal Labeled Node................... 35 Figure 15 Illustration of the Realizers of a Graph ............................................................ 35 Figure 16 Illustration of the Edge Contraction Process.................................................... 36 Figure 17 Illustration of the 3 Regions of a Node (shown in white) ................................ 37 Figure 18 Illustrations of a Schnyder Straight Line Grid Embedding (9 nodes, 7x7 grid)38 Figure 19 Illustrations of (regular) Left and Right Rules for Chan's Algorithm .............. 40 Figure 20 Illustrations of Extended Left and Right Rules for Chan's Algorithm............. 41 1 Introduction This document describes the design and implementation of JGraphEd, a Java Graph Editing application and Graph Drawing framework. JGraphEd was designed to allow users to easily create graphs step by step by adding or removing, or modifying nodes or edges. JGraphEd is modular by design and a variety of standalone and interdependent algorithms have been provided for manipulating or visualizing graphs. JGraphEd was also designed with extensibility in mind, in order to allow developers to quickly and painlessly add their own algorithms to the included library. Section 2 of this document describes the framework of JGraphEd. This includes classes which are responsible for representing graphs and the commands that can be used upon them. The framework documentation also describes the user interface of JGraphEd, and may be used as a user’s guide.
Recommended publications
  • Various Algorithms for High Throughput Sequencing
    Various Algorithms for High Throughput Sequencing by Vladimir Yanovsky A thesis submitted in conformity with the requirements for the degree of Doctor of Philosophy Graduate Department of Computer Science University of Toronto Copyright c 2014 by Vladimir Yanovsky Abstract Various Algorithms for High Throughput Sequencing Vladimir Yanovsky Doctor of Philosophy Graduate Department of Computer Science University of Toronto 2014 The growing volume of generated DNA sequencing data makes the problem of its long term storage increasingly important. In the first chapter we present ReCoil { an I/O efficient external memory algorithm designed for compression of very large datasets of short reads DNA data. Typically each position of DNA sequence is covered by multiple reads of a short read dataset and our algorithm makes use of resulting redundancy to achieve high compression rate. While compression based on encoding mismatches be- tween the dataset and a similar reference can yield high compression rate, good quality reference sequence may be unavailable. Instead, ReCoil's compression is based on en- coding the differences between similar or overlapping reads. As such reads may appear at large distances from each other in the dataset and since random access memory is a limited resource, ReCoil is designed to work efficiently in external memory, leveraging high bandwidth of modern hard disk drives. The next problem we address is the problem of mapping sequencing data to the refer- ence genome. We revisit the basic problem of mapping a dataset of reads to the reference, developing a fast, memory-efficient algorithm for mapping of the new generation of long high error rate reads.
    [Show full text]
  • A Self-Adjusting Search Tree
    A Self-Adjusting Search Tree March 1987 Volume 30 Number 3 204 Communications of ifhe ACM WfUNGAWARD LECTURE ALGORITHM DESIGN The quest for efficiency in computational methods yields not only fast algorithms, but also insights that lead to elegant, simple, and general problem-solving methods. ROBERTE. TARJAN I was surprised and delighted to learn of my selec- computations and to design data structures that ex- tion as corecipient of the 1986 Turing Award. My actly represent the information needed to solve the delight turned to discomfort, however, when I began problem. If this approach is successful, the result is to think of the responsibility that comes with this not only an efficient algorithm, but a collection of great honor: to speak to the computing community insights and methods extracted from the design on some topic of my own choosing. Many of my process that can be transferred to other problems. friends suggested that I preach a sermon of some Since the problems considered by theoreticians are sort, but as I am not the preaching kind, I decided generally abstractions of real-world problems, it is just to share with you some thoughts about the these insights and general methods that are of most work I do and its relevance to the real world of value to practitioners, since they provide tools that computing. can be used to build solutions to real-world problems. Most of my research deals with the design and I shall illustrate algorithm design by relating the analysis of efficient computer algorithms. The goal historical contexts of two particular algorithms.
    [Show full text]
  • Experimental and Efficient Algorithms [Ribeiro
    Lecture Notes in Computer Science 3059 Commenced Publication in 1973 Founding and Former Series Editors: Gerhard Goos, Juris Hartmanis, and Jan van Leeuwen Editorial Board Takeo Kanade Carnegie Mellon University, Pittsburgh, PA, USA Josef Kittler University of Surrey, Guildford, UK Jon M. Kleinberg Cornell University, Ithaca, NY, USA Friedemann Mattern ETH Zurich, Switzerland John C. Mitchell Stanford University, CA, USA Oscar Nierstrasz University of Bern, Switzerland C. Pandu Rangan Indian Institute of Technology, Madras, India Bernhard Steffen University of Dortmund, Germany Madhu Sudan Massachusetts Institute of Technology, MA, USA Demetri Terzopoulos New York University, NY, USA Doug Tygar University of California, Berkeley, CA, USA MosheY.Vardi Rice University, Houston, TX, USA Gerhard Weikum Max-Planck Institute of Computer Science, Saarbruecken, Germany Springer Berlin Heidelberg New York Hong Kong London Milan Paris Tokyo Celso C. Ribeiro Simone L. Martins (Eds.) Experimental and Efficient Algorithms Third International Workshop, WEA 2004 Angra dos Reis, Brazil, May 25-28, 2004 Proceedings Springer eBook ISBN: 3-540-24838-2 Print ISBN: 3-540-22067-4 ©2005 Springer Science + Business Media, Inc. Print ©2004 Springer-Verlag Berlin Heidelberg All rights reserved No part of this eBook may be reproduced or transmitted in any form or by any means, electronic, mechanical, recording, or otherwise, without written consent from the Publisher Created in the United States of America Visit Springer's eBookstore at: http://ebooks.springerlink.com and the Springer Global Website Online at: http://www.springeronline.com Preface The Third International Workshop on Experimental and Efficient Algorithms (WEA 2004) was held in Angra dos Reis (Brazil), May 25–28, 2004.
    [Show full text]
  • Phylogeny-Based Analysis of Gene Clusters
    Universität Bielefeld Technische Fakultät Phylogeny-based Analysis of Gene Clusters Ph. D. Thesis submitted to the Faculty of Technology, Bielefeld University, Germany for the degree of Dr. rer. nat. by Roland Wittler February 2010 Supervisor: Prof. Dr. Jens Stoye Referees: Prof. Dr. Robert Giegerich Prof. Dr. Jens Stoye Sparsamkeit ist eine Zier, doch weiter kommst du ohne ihr. Gedruckt auf alterungsbeständigem Papier nach DIN-ISO 9706. Printed on non-aging paper according to DIN-ISO 9706. Zusammenfassung Durch die Erforschung von verwandtschaftlichen Beziehungen, der Phylogenie, verschiede- ner Spezies erlangen wir umfassende Informationen über deren Evolution. Ein Ansatz für die Rekonstruktion phylogenetischer Szenarien oder zum Vergleich von Genomen ist die Unter- suchung des Erbguts auf Ebene der DNA-, RNA- oder Proteinsequenzen. Eine weitere Heran- gehensweise ist das Studium der Struktur der Genome. Auf dieser höheren Ebene betrachtet man oft die Reihenfolge der Gene innerhalb des Genoms. Um verschiedene Genome auf die Anordnung der enthaltenen Gene zu abstrahieren, wer- den diese zunächst miteinander verglichen, um zu bestimmen, welche Gene einander ent- sprechen. Anschließend wird jeder dieser Genfamilien ein eindeutiger Bezeichner, z.B. eine Nummer, zugeordnet, so dass schließlich jedes Genom durch eine Abfolge von Genbezeich- nern repräsentiert werden kann. Nimmt man an, dass die zu untersuchenden Genome genau dieselben Gene enthalten und jedes davon genau einmal, so lässt sich die Genfolge formal recht einfach als Permutation modellieren. Diese Einschränkung ermöglicht zwar mathema- tisch elegante und effiziente Analyseverfahren, gibt jedoch die biologische Realität nur selten angemessen wieder. Hingegen führen realistischere Modelle, welche allgemeinere Sequenzen von Genen zulassen, oft zu komplexen Methoden mit inpraktikablen Laufzeiten.
    [Show full text]
  • Sorting Jordan Sequences in Linear Time Using Level-Linked Search Trees
    INFORMATIONAND CONTROL68, 170-184 (1986) Sorting Jordan Sequences in Linear Time Using Level-Linked Search Trees KURT HOFFMANN AND KURT MEHLHORN Universit& des Saarlandes, Saarbri~cken, Germany PIERRE ROSENSTIEHL Centre de Mathematique Sociale, Paris, France AND ROBERT E. TAR JAN AT&T Bell Laboratories, Murray Hill, New Jersey 07974 For a Jordan curve C in the plane nowhere tangent to the x axis, let xl, x2,..., xn be the abscissas of the intersection points of C with the x axis, listed in the order the points occur on C. We call xl, x2,..., xn a Jordan sequence. In this paper we describe an O(n)-time algorithm for recognizing and sorting Jordan sequences. The problem of sorting such sequences arises in computational geometry and com- putational geography. Our algorithm is based on a reduction of the recognition and sorting problem to a list-splitting problem. To solve the list-splitting problem we use level-linked search trees. © 1986Academic Press, Inc. 1. INTRODUCTION Let C be a Jordan curve that lies in the plane and is nowhere tangent to the x axis. Let xx, x2,..., xn be the abscissas of the intersection points of C with the x axis, listed in the order the points occur on C. (See Fig. 1.) We call a sequence of real numbers xl, x2,..., xn obtainable in this way a Jordan sequence. In this paper we consider the problem of recognizing and sorting Jordan sequences. The Jordan sequence sorting problem arises in at least two different con- texts. Edelsbrunner (1983) has posed the problem of computing the sorted list of intersections of a simple n-sided polygon with a line.
    [Show full text]
  • Dissertation Dynamic Representation of Consecutive-Ones Matrices And
    Dissertation Dynamic Representation of Consecutive-Ones Matrices and Interval Graphs Submitted by William M. Springer II Department of Computer Science In partial fulfillment of the requirements For the Degree of Doctor of Philosophy Colorado State University Fort Collins, Colorado Spring 2015 Doctoral Committee: Advisor: Ross M. McConnell Indrajit Ray Wim Bohm Alexander Hulpke Copyright by William M. Springer II 2015 All Rights Reserved Abstract DYNAMIC REPRESENTATION OF CONSECUTIVE ONES MATRICES AND INTERVAL GRAPHS We give an algorithm for updating a consecutive-ones ordering of a consecutive-ones matrix when a row or column is added or deleted. When the addition of the row or column would result in a matrix that does not have the consecutive-ones property, we return a well- known minimal forbidden submatrix for the consecutive-ones property, known as a Tucker submatrix, which serves as a certificate of correctness of the output in this case, in O(n log n) time. The ability to return such a certificate within this time bound is one of the new contributions of this work. Using this result, we obtain an O(n) algorithm for updating an interval model of an interval graph when an edge or vertex is added or deleted. This matches the bounds obtained by a previous dynamic interval-graph recognition algorithm due to Crespelle. We improve on Crespelle's result by producing an easy-to-check certificate, known as a Lekkerkerker-Boland subgraph, when a proposed change to the graph results in a graph that is not an interval graph. Our algorithm takes O(n log n) time to produce this certificate.
    [Show full text]
  • Binary Trees, While 3-Ary Trees Are Sometimes Called Ternary Trees
    Rooted Tree A rooted tree is a tree with a countable number of nodes, in which a particular node is distinguished from the others and called the root: In some contexts, in which only a rooted tree would make sense, the term tree is often used. Infinite Tree A rooted tree is infinite if it contains a countably infinite number of nodes. Finite Tree Similarly, a rooted tree is finite if it contains a finite number of nodes. Parent Consider a rooted tree T whose root is r T Let t be a node of T From Paths in Trees are Unique, there is only one path from t to r T Let π:T−{r T }→T be the mapping defined as: π(t)= the node adjacent to t on the path to r T Then π(t) is known as the parent (or parent node) of t , and π as the parent function or parent mapping. Root Node The root node, or just root, is the one node in a rooted tree which, by definition, has no parent. Ancestor An ancestor (or ancestor node) of a node t of a rooted tree T whose root is r T is a node in the path from t to r T . Thus, the root of a rooted tree T is the ancestor of every node of T (including itself). Proper Ancestor A proper ancestor of a node t is an ancestor of t which is not t itself. Children The children (or child nodes) of a node t in a rooted tree T are the elements of the set: {s∈T:π(s)=t} That is, the children of t are all the nodes of T of which t is the parent.
    [Show full text]
  • PQ Trees, PC Trees, and Planar Graphs
    1 PQ Trees, PC Trees, and Planar Graphs 1.1 Introduction............................................ 1-1 1.2 The consecutive-ones problem ....................... 1-6 A Data Structure for Representing the PC Tree • Finding the Terminal Path Efficiently • Performing the update step on the terminal path efficiently • The linear time bound 1.3 Planar Graphs ......................................... 1-15 Wen-Lian Hsu Preliminaries • The Strategy • Implementing the Academia Sinica recursive step • Differences between the original PQ-Tree and the new PC-Tree Approaches • Returning Ross M. McConnell a Kuratowski Subgraph when G is Non-Planar Colorado State University 1.4 Acknowledgment ...................................... 1-28 1.1 Introduction A graph is planar if it is possible to draw it on a plane so that no edges intersect, except at endpoints. Such a drawing is called a planar embedding. Not all graphs are planar: Figure 1.1 gives examples of two graphs that are not planar. They are known as K5 , the complete graph on five vertices, and K3,3, the complete bipartite graph on two sets of size 3. No matter what kind of convoluted curves are chosen to represent the edges, the attempt to embed them always fails when the last of the edges cannot be inserted without crossing over some other edge, as illustrated in the figure. There is considerable practical interest in algorithms for finding planar embeddings of planar graphs. An example of an application of this problem is where an engineer wishes to embed a network of components on a chip. The components are represented by wires, and no two wires may cross without creating a short circuit.
    [Show full text]
  • Efficient Subtyping Tests with PQ-Encoding
    Efficient Subtyping Tests with PQ-Encoding JOSEPH (YOSSI) GIL1 and YOAV ZIBIN Technion—Israel Institute of Technology Given a type hierarchy, a subtyping test determines whether one type is a direct or indirect descendant of another type. Such tests are a frequent operation during the execution of object- oriented programs. The implementation challenge is in a space-e±cient encoding of the type hierarchy that simultaneously permits e±cient subtyping tests. We present a new scheme for encoding multiple and single inheritance hierarchies, which, in the standard benchmark hierarchies, reduces the footprint of all previously published schemes. Our scheme is called PQ-encoding (PQE) after PQ-trees, a data structure previously used in graph theory for ¯nding the orderings that satisfy a collection of constraints. In particular, we show that in the traditional object layout model, the extra memory requirements for single inheritance hierarchies is zero. In the PQE subtyping tests are constant time, and use only two comparisons. The encoding creation time of PQE also compares favorably with previous results. It is less than a second on all standard benchmarks on a contemporary architecture, while the average time for processing a type is less than one millisecond. However, PQE is not an incremental algorithm. Other than PQ-trees, PQE employs several novel optimization techniques. These techniques are applicable also in improving the performance of other, previously published, encoding schemes. Categories and Subject Descriptors: D.1.5 [Programming Techniques]: Object-oriented Programming; D.3.3 [Programming Languages]: Language Constructs and Features—Data types; structures; G.4 [Mathematical Software]: Algorithm design; analysis General Terms: Algorithms, Design, Measurement, Performance, Theory Additional Key Words and Phrases: Casting, Encoding, Hierarchy, Inheritance, Partially Ordered Sets, PQ, PQE, Subtyping, Type inclusion 1.
    [Show full text]
  • Arxiv:1906.04094V4 [Math.CO] 3 Mar 2021
    Discrete Mathematics and Theoretical Computer Science DMTCS vol. 23:1, 2021, #2 Efficient Enumeration of Non-isomorphic Interval Graphs Patryk Mikos∗ Theoretical Computer Science Department, Faculty of Mathematics and Computer Science, Jagiellonian University, Krak´ow, Poland received 27th Feb. 2020, revised 15th Sep. 2020, accepted 23rd Dec. 2020. Recently, Yamazaki et al. provided an algorithm that enumerates all non-isomorphic interval graphs on n vertices with an On4 time delay. In this paper, we improve their algorithm and achieve On3 log n time delay. We also extend the catalog of these graphs providing a list of all non-isomorphic interval graphs for all n up to 15. Keywords: combinatorics, graph theory, enumeration, interval graphs 1 Introduction Graph enumeration problems, besides their theoretical value, are of interest not only for computer scien- tists, but also to other fields, such as physics, chemistry, or biology. Enumeration is helpful when we want to verify some hypothesis on a quite big set of different instances, or find a small counterexample. For graphs it is natural to say that two graphs are ”different” if they are non-isomorphic. Many papers dealing with the problem of enumeration were published for certain graph classes, see Kiyomi et al. (2006); Saitoh et al. (2010, 2012); Yamazaki et al. (2018). A series of potential applications in molecular biology, DNA sequencing, network multiplexing, resource allocation, job scheduling, and many other problems, makes the class of interval graphs, i.e. intersection graphs of intervals on the real line, a particularly interesting class of graphs. In this paper, we focus on interval graphs, and our goal is to find an efficient algorithm that for a given n lists all non-isomorphic interval graphs on n vertices.
    [Show full text]
  • Unique Probe Mapping Met Behulp Van PQ-Trees
    Computational Molecular Biology Unique Probe Mapping met behulp van PQ-trees Leiden, 6 april 2006 Hendrik Jan Hoogeboom Algorithms / Fundamentele Informatica www.liacs.nl/home/hoogeboo/ feb’01 - human genome genetic / physical map physical mapping 108 bp C: Full DNA Physical mapping Cut C and clone into overlapping Physical 106 bp YAC clones. mapping Cut the DNA in each YAC clone and clone into overlapping cosmid clones. 104 bp Select a subset of cosmid clones of minimum total length that covers the YAC DNA. Fragment assembling Duplicate the cosmid and then cut the copies randomly. Select and sequence short fragments and then reassemble them into a deduced cosmid string. 102 bp using a map of the genome m u j a e i x f z d w m u z d hybridization mapping Clones y x z w Probes unique probe mapping e b o r 3 clone p 4 clones 1,2,…,6 2 6 probes A,B,…,G 1 5 E B F C A G D A B C D E F G matrix representation 1 1 1 2 1 1 3 1 1 1 1 4 1 1 5 1 1 1 6 1 1 reordering of probes ordering e b o D G C A F B E r 3 clone p 1 1 1 4 2 2 1 1 6 3 1 1 1 1 1 5 4 1 1 5 1 1 1 6 1 1 E B F C A G D A B C D E F G clones contain 1 1 1 2 1 1 consecutive probes 3 1 1 1 1 4 1 1 5 1 1 1 6 1 1 interval graphs e b o r 3 clone p 4 5 2 6 1 2 3 6 1 5 4 E B F C A G D A B C D E F G matrix representation 1 1 1 2 1 1 3 1 1 1 1 4 1 1 5 1 1 1 6 1 1 thur 16 ^ 0 1 ¬ 0 1 mon tues 1 A 7 12 v 0 1 D fri sat wed 5 6 10 2 2 3 B C sun expressie code binaire zoek 4 2 heap sat tues c s expr expr term e * fri mon wed a a term term* fact sun thur t e fact r t a fact b a a l k trie syntax 2,3 boom
    [Show full text]
  • Source Code for Biology and Medicine Biomed Central
    Source Code for Biology and Medicine BioMed Central Methodology Open Access HAMSTER: visualizing microarray experiments as a set of minimum spanning trees Raymond Wan*1,2, Larisa Kiseleva2, Hajime Harada2, Hiroshi Mamitsuka1 and Paul Horton2 Address: 1Bioinformatics Center, Institute for Chemical Research, Kyoto University, Gokasho, Uji, 611-0011, Japan and 2Computational Biology Research Center, AIST, 2-4-7 Aomi, Koto-ku, Tokyo, 135-0064, Japan Email: Raymond Wan* - [email protected]; Larisa Kiseleva - [email protected]; Hajime Harada - [email protected]; Hiroshi Mamitsuka - [email protected]; Paul Horton - [email protected] * Corresponding author Published: 20 November 2009 Received: 15 January 2009 Accepted: 20 November 2009 Source Code for Biology and Medicine 2009, 4:8 doi:10.1186/1751-0473-4-8 This article is available from: http://www.scfbm.org/content/4/1/8 © 2009 Wan et al; licensee BioMed Central Ltd. This is an Open Access article distributed under the terms of the Creative Commons Attribution License (http://creativecommons.org/licenses/by/2.0), which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited. Abstract Background: Visualization tools allow researchers to obtain a global view of the interrelationships between the probes or experiments of a gene expression (e.g. microarray) data set. Some existing methods include hierarchical clustering and k-means. In recent years, others have proposed applying minimum spanning trees (MST) for microarray clustering. Although MST-based clustering is formally equivalent to the dendrograms produced by hierarchical clustering under certain conditions; visually they can be quite different.
    [Show full text]