We present EPoS, a modular software framework for phylogenetic analysis and visualization. Existing phylogenetic software can be split into two groups. Algorithmic packages that provide computational methods for a specific problem, and visualization tools to analyse results. Many algorithmic tools lack in usability, as they are often command line based, while visualizations often suffer from poor graphical user interfaces. EPoS fills this gap by combining a powerful graphical user interface with a plugin system that allows simple integration of new algorithms, visualizations and data structures. A consistent interface is used to manage data or to start available computational methods, disconnecting the work flow from the data or applied methods. Currently, EPoS provides algorithms for distance based tree reconstruction, tree distances, consensus trees, and supertree methods. All methods are integrated into a pipeline system which allows combinations of methods that are executed sequentially, where the data flow is handled automatically by the system. A comprehensive tree view is included in EPoS. It offers different layouts, colorization, annotation and export functions and is able to smoothly render trees up to a few thousand leaves. As visualizations are part of the modular system, they can be extended in any direction and new visualization modules can be integrated to handle, say, phylogenetic networks. To simplify data handling, EPoS allows the user to create a persistent workspace that contains all used data sets. Data within the workspace are persistently stored in a transparent and extendable backend module.
Posted
on November 25, 2009, 18:37,
by thasso,
under Development.
When you deal with large tables that provide a good number of columns, it is always nice if you can hide some of them. They should still be available in the TableModel, so this is clearly a task for the view.
It turns out, realizing a popup menu on the table header is quiet easy. We utilize the tables ColumnModel to change visible columns. Well, actually we do not just change the columns visibility but remove or readd it to the column model. In Epos, all this can be done using a simple utility method in the ComponentUtils. It creates a popup and adds the appropriate mouse listeners to the tables header.
Here is the utility code the creates the popup and adds the listener. Note that we evaluate and check for a popup click on both the pressed and the released mouse event. This is due to some platform specific differences.
Posted
on November 18, 2009, 16:42,
by thasso,
under Development.
While I was working on the BlastViewer, I thought filtering by table column would be a nice feature to get rid of all the cr**y results you are not interested in. Most of the tables we create in Epos are based on GlazedLists as table model and data container. GlazedLists come with pretty nice filtering features out of the box. Filtering for some strings is straight forward, but for this I wanted something slightly more complicated. I want to filter a user specified column using some comparator and a value. Another important thing was that the filter should be easy to use, without any configuration. Here is what we do for the BlastResult table:
...
// create the table
final AdvancedTableFormat hitFormat = new BlastHitFormat();
TableFilter tableFilter = new TableFilter(hitFormat);
FilterList columnFilteredHits = new FilterList(filteredHits, tableFilter);
JTable hitTable = new JTable(new EventTableModel(columnFilteredHits, hitFormat));
...
// create the filter view
hitTableFilterView = new TableFilterView(tableFilter);
Basically we create a new TableFilter. The TableFilter implements a GlazedLists MatcherEditor, so we can apply it on a FilteredList. The FilteredList serves as container for the final table. To create the UI, we use our TableFilterView. The view starts as an empty component but you can call the addFilter() method to create a new filter.
Note that the current TableFilter works only on AdvancedTableFormat. This is due to the fact that the filter needs to known the columns data type, so your AdvancedTableFormat implementation must return valid types.
The TableFilter implementation has no dependencies and can be used with any GlazedLists table, but the UI currently has some dependencies to the Epos Component factory and it used JGoodies Formlayout, though these two can be easily removed with some minor tweaks in the View classes.
If you want to take a look at the implementatin, check the svn.I thought about putting a jar file here, but this thing is still work in progress and you can not use the jar anyways, as it does not contain the dependencies.
If you are interested or you have any questions, just contact me.
Posted
on November 16, 2009, 15:14,
by thasso,
under Epos News.
We just put the epos blast viewer online, as a standalone webstart application on top of the epos framework. The app is small tool that is able to read NCBI blast results from XML files and display the data. You can directly download the sequence and store them on disk and you can export the results as default blast output or as CSV file.
Posted
on November 5, 2009, 18:41,
by thasso,
under Epos News.
I was bored and played around in IntelliJ, which is open sourced now. I found the analyze class cloud button and here is the result for the Epos sources.
Posted
on November 2, 2009, 14:21,
by thasso,
under Epos News.
Johannes contacted me this weekend and asked about the GroovyShell in the new Epos release, so I decided to create a small screencast that demonstrates the functionality.
The Epos GroovyShell can be used to write scripts (in groovy) directly within Epos, and it gives you drag&drop access to your data. Read the rest of this entry »
Posted
on October 1, 2009, 14:51,
by thasso,
under Epos News.
After a few month we are getting closer to a new Epos release – Epos 0.9 Alvarius. We used a branch of the main epos trunk for the development, but now, as we are getting closer to the release, it was time to move everything back into the main branch and set a a new trac system. The trac will contain development information and more and I will try to use the next weeks to present some of the new abilities such as the Paup support or the scripting environment. For now, if you are interested, you can access the source code via svn.
Posted
on March 5, 2009, 21:52,
by thasso,
under Development.
Yesterday we worked on the new storage facility for the Epos 0.9 release. The new release will be based on EclipseLink and its JPA implementation. The new Tree store will not be String based (as in 0.8), but provide a better representation for trees using nested sets. There we discovered a problem with tree nodes and cascading their removal. We basically provide two entities to store trees. The TreeEntity and a Node entity. The theory behind that is quiet simple. Basically the Tree hoilds a reference to the root Node (curently it holds references to all Nodes in the Tree) and a Node has a reference to its parent node and to all children. Read the rest of this entry »
Posted
on February 17, 2009, 18:42,
by thasso,
under Epos News.
The new website almost looks like the old one – which is good. We have to re-upload the screenshots, though. But I think I will use the opportunity to take a few new shots to reflect the development within the EPoS UI. Ok, at least one is already online !
Posted
on February 17, 2009, 13:53,
by thasso,
under Epos News.
After some problems with the last CMS we used, I just installed Wordpress 2.7.1 and creted a template for the new EPoS web site. Well, I still have to put some work in the template and move all the content, but I have to say…I am really impressed by the WYSIWYG editor…copy and past including image references…nice