sairum / tcsBU

a TCS network beautifier
MIT License
7 stars 4 forks source link

tcsBU

NOTE 4: A temporary site for the online version of tcsBU is now available at (http://www.fc.up.pt/pessoas/amsantos/tcsBU).

NOTE 3: Until further notice, tcsBU online version (http://cibio.up.pt/software/tcsBU/index.html) will be not available due to a change in the Internet Service Provider. Currently, CIBIO's Website is not hosted directly by the University of Porto. You can still use the current version of tcsBU by selecting the master branch and downloading the files of this repository, saving them in any folder. Go to that folder and click on index.html or open it with any modern browser.

NOTE2: The link to the online version of the software provided in the paper (http://cibio.up.pt/software/tcsBU) is not working due to a server misconfiguration that we cannot solve. However, using the complete URL (http://cibio.up.pt/software/tcsBU/index.html) should work for now.

NOTE: A paper describing tcsBU has been published in the journal Bioinformatics and is already available at their Advance Access site. Please cite as

Santos, AM, Cabezas MP, Tavares AI, Xavier R, Branco M (2015) tcsBU: a tool to extend TCS network layout and visualization. Bioinformatics, btv636 (doi: 10.1093/bioinformatics/btv636)

a TCS network beautifier

TCS (Clement et al. 2000) is among the most popular haplotype network reconstruction methods. Written in Java, it is based on the Statistical Parsimony algorithm developed by Templeton et al. (1992). Unfortunately, TCS has some major limitations related with its output:

As a consequence, it takes a significant effort to edit the resulting PostScript vector file in a vector manipulation software, such as Inkscape or Adobe Illustrator®. tcsBU (read TCS Bee You) was developed to allow the production of publication-ready networks resulting from TCS analysis without too much effort. Users are able to classify haplotypes (for example, according to sampling locations or dates) and this information is displayed in pie-chart like haplogroups within the network. Groups can be classified using colors, patterns or a combination of both. The final network can be saved as a Scalable Vector Graphics (SVG) format, a World Wide Web Consortium (W3C) standard, which can then be directly embedded in some word processors (e.g., LibreOffice, OpenOffice), or edited and exported to other type of graphic format using modern vector manipulation programs.

The software

tcsBU is a browser-based javascript program that can be served by an HTTP server or can be installed directly into a standard folder and run directly by any modern browser. In a server-based installation tcsBU does not impose any burden on the server besides serving the javascript libraries. All computations are done by the browser itself. tcsBU depends on a few third-party libraries (license type in parenthesis):

Because many of the above mentioned libraries dropped support for older versions of some browsers, tcsBU will only run on modern ones (Firefox 20+, Chrome 13+, IE 10+, Opera 15+ and Safari 6.1+).

Installation

Web-server installation

For a web-based installation, the tcsBU package can be saved into any directory under the web-server ROOT directory. No further steps are necessary, and users will be able to access the software by pointing their browsers at the specified location (URL). The only files/folders necessary are

Local installation

If no web-server is available, tcsBU can be saved into any local directory and run using the file:// protocol. If a network connection is available, users can click on the index.html file, which should automatically open the page in the default browser. If no network connection is available, users should use tcsbu.html instead. The difference is that the latter will not try to download the necessary libraries (JQuery, w2ui, d3.js) from their respective Content Delivery Networks (CDNs) but will use the ones shipped with tcsBU (found in js/ directory).

Usage

The first step is to read a TCS output file, by clicking on the Load Data button (top-left). Note that there is no need to manually edit the results in TCS (e.g. by using the spring algorithm). Once the TCS analysis is finished you can look for a GML file with extension .graph, usually found on the directory where the alignment used by TCS is. The GML (Graph Modeling Language) format is simply a text file format supporting network data with a very easy syntax. The GML specification can be found at this site. Users should not touch (edit) the GML file unless they really know what they are doing!

The user interface is self-intuitive. There is a Help button with more information on how to fiddle with the parameters of the force-directed layout algorithm of d3.js, plus information on how to define groups and classify haplotypes.

Bug Tracking

Have a bug or a feature request? Open an issue here https://github.com/sairum/tcsBU/issues. Please make sure that the same issue was not previously submitted by someone else.

Contributing

Your contributions are welcome. However, there are a few things you need to know before contributing:

  1. Please check out latest code before changing anything. It is harder to merge if your changes cannot merge cleanly.
  2. If you are changing JS files - do all changes in /src folder
  3. If you are changing CSS files - do all changes in /src/css
  4. If you want to change documentation - do all changes in /docs

Forking

This software uses a standard makefile to automate some tasks (concatenation of javascript files, compression, etc). It makes use of inotifywait command found on many UNIXes or UNIX like systems to detect changes on files. If changes on the component javascript files are detected the system rebuilds the whole library by concatenating individual javascript files into tcsBU.js file, which is minified subsequently. To use the system just change to the top most directory (where the makefile is located) and issue the following command:

make watch

References