Giter VIP home page Giter VIP logo

o3nj's Introduction

O3NJ: Optimally Ordered Orthogonal Neighbor Joining Trees for Hierarchical Cluster Analysis

We presented a novel visualization representation, O3NJ trees, for hierarchical analysis of multi-dimensional data. This representation is based on NJ trees, which so far have been mostly used for phylogenetic data analysis in biology.

Example

O3NJ online demo can be found here (or click title).

Install

You can download our code and open index.html with Live Server.

Start

Our system has two panels: a control panel (left) and a dashboard (right). The three views from left to right are the O3NJ tree, the distilled hierarchy, and the MDS projection.

When initialized, the NJ tree is optimally ordered and the hierarchy is automatically distilled with default values for our two thresholds. The color of the nodes in the tree and MDS plots encode their class labels in the data. For the distilled cluster tree, we colorize each leaf with the color of class who has outnumbered leaves in the corresponding leaf sequence in NJ tree. Meanwhile, the leaf correspond to all outliers are represented with a red ring.

the three slide bars in the control panel allow to modify the thresholds ARD, Alpha and Beta in our algorithm. ARD is in charge of re-cutting the NJ tree; Alpha is in charge of reordering the NJ tree; Beta for grading persistence.

Data

There are 4 examples in the O3NJ Gallery, and you can find other datasets in src/data. To generate O3NJ tree for a new dataset, you need:

  1. Distance Matrix.
  2. Neighbour joining tree generated by the distance matrix. You can generate neighbour joining tree using:
var NJ = new NeighborJoining(D, taxa, classify);
NJ.buildTree();
  1. You possibly also need 2D MDS data for scatterplots.

If you have problems, please submit an issue.

o3nj's People

Contributors

lx9days avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.