Project

LibrAlign - A Java library for displaying and editing MSAs and attached data

Goal: LibrAlign is a Java library providing flexible and powerful GUI components for displaying and editing multiple sequence alignments (MSAs) and attached raw and metadata. It supports creating both Swing and SWT GUIs (using http://bioinfweb.info/TIC/) and the alignment formats FASTA, Phylip, Nexus, NeXML, MEGA and PDE. All components are easily extendable by application or third-party developers.

The documentation and JavaDocs are available here: http://bioinfweb.info/LibrAlign/Documentation. If you have further questions, don't hesitate to ask one in this project.

http://bioinfweb.info/LibrAlign/
https://github.com/bioinfweb/LibrAlign
http://twitter.com/bioinfweb
Legal notice: http://bioinfweb.info/LibrAlign/About
Privacy Policy: http://bioinfweb.info/Privacy

Updates
0 new
10
Recommendations
0 new
0
Followers
0 new
5
Reads
0 new
83

Project log

Ben C Stöver
added an update
We switched to MantisBT as our bug tracking system, which is now open to all users. Check out http://bioinfweb.info/LibrAlign/Bugs if you want to report a bug a share a feature request with us.
 
Ben C Stöver
added an update
New version 0.9.0 of LibrAlign is out.
Source codes, binaries downloads and Maven code of the new release can be found at http://bioinfweb.info/LibrAlign/Download .
Core:
  • ColorOverlay added and used by AlignmentArea and AbstractTokenPainter.
  • RandomAccessIndexTranslator now supports handling indices outside of the alignment.
 
Ben C Stöver
added an update
New version 0.8.0 of LibrAlign is out.
Source codes, binaries downloads and Maven code of the new release can be found at http://bioinfweb.info/LibrAlign/Download .
Core:
  • PaintSettings.zoomFont() added.
  • Properties LabelDataArea.isAlignToFirstColumn() and isAlignToScrollPosition() added.
  • Bug fix: LabelDataArea now uses the specified font and adjusts its size to the current zoom factor.
 
Ben C Stöver
added an update
New version 0.7.0 of LibrAlign is out.
Source codes, binaries downloads and Maven code of the new release can be found at http://bioinfweb.info/LibrAlign/Download .
Core:
  • Interface IndexTranslator extracted from AbstractIndexTranslator.
  • IndexTranslator.getUnalignedLength() added and implemented in RandomAccessIndexTranslator.
  • AlignmentModelChangeAdapter and LabelDataArea added.
 
Ben C Stöver
added an update
New version 0.6.0 of LibrAlign released with 132 commits to 3 of its modules. It now includes user editable character set data areas, simplified I/O and many more new features and bug fixes.
Source codes, binaries downloads and Maven code of the new release can be found at http://bioinfweb.info/LibrAlign/Download .
Core:
  • CharSetArea now allows to select character sets with the mouse and programmatically.
  • CharSetDataModel now fires change events and offers listeners.
  • CharSetArea.setModel() added.
  • Overloaded method AlignmentModel.addSequence() added to allow to specify a certain sequence ID.
  • ID property added to AlignmentModel and AbstractAlignmentModel.
  • SequenceIDManager refactored to allow multiple sequence with the same name and sequences without names.
  • TokenPainterList now allows to specify different token painters depending on the actual token set using the new class TokenPainterMap.
  • Property reuseSequenceIDs added to AbstractUndecoratedAlignmentModel.
  • Names in swing undo alignment model implementations adjusted to current standards.
  • AbstractAlignmentModelFactory now optionally uses a default token to replace unknown tokens.
  • BioPolymerCharAlignmentModelFactory now allows to optionally convert lower case tokens.
  • CharacterTokenSet now optionally supports alternative lower case tokens.
  • SequenceArea and TextLabelArea now use fractional text metrics to avoid cutting off texts.
  • AlignmentModelChangeEvent and inherited classes now support cloning (with and without a new source).
  • SequentialAccessIndexTranslator removed from trunk due to bugs. (It may come back in later releases. Use RandomAccessIndexTranslator until then.)
  • AlignmentArea.revalidate() now recalculates label area widths.
  • AlignmentModelChangeListener.afterProviderChanged() renamed to AlignmentModelChangeListener.afterModelChanged().
  • DelegatedAlignmentModelView added.
  • AbstractAlignmentModelAdapter renamed to AbstractBasicAlignmentModelView.
  • Bug fix: SwingInsertRemoveTokensEdit now calculates correct length.
  • Bug fix: SwingUndoAlignmentModel now fires events with itself as the source.
  • Bug fix in SwingRenameSequenceEdit: Undoing sequence renaming now works.
  • Bug fix: Missing implementation for AbstractTokenSet.isMissingInformationToken() added.
  • Bug fix: Correct enumeration type now used in TokenDefinition.
  • Bug fix in AlignmentArea and CharSetArea: New model is now also set, if the contents of the new and old model are equal.
I/O:
  • IOTools added.
  • AlignmentModelDataAdapter now also allows empty strings as ID prefixes.
  • CharSetDataAdapter added for writing character set model data.
  • Support for reading and writing characater set colors as metadata added.
  • Convenience constructors added to AlignmentDataReader.
  • AlignmentDataReader.processNextEvent() made protected.
  • AbstractDataModelEventReader refactored to use maps for multiple loading models and for the completed models.
  • AlignmentModelEventReader refactored to consider linked alignment ID of character sets.
  • AlignmentModelEventReader now loads alignment ID.
  • Invalid error output in CharSetEventReader removed.
  • Bug fix: AlignmentModelEventReader now makes use of token set definition.
  • Bug fix: TokenSetAdapter now writes all atomic token before uncertain token, so that uncertain tokens can reference atomic tokens in file formats where necessary.
  • Bug fix in AlignmentModelDataAdapter: Writing sequences with the length 0 is now possible.
  • Bug fix in AlignmentModelDataAdapter: Missing token is now written after atomic tokens.
  • Bug fix: CharSetEventReader.getCurrentCharSet() now returns null if no character set is currently loaded.
  • Bug fix in TokenSetAdapter: No empty character set interval events created anymore.
SWT:
  • Bug fix: SWTAlignmentLabelArea now resizes its subcomponents correctly.
 
Ben C Stöver
added an update
A demo application showing how to implement a simple alignment editor with only a few small Java classes is now available. It shows how to use the LibrAlign components within a Swing GUI and how the I/O functionality based on JPhyloIO works. With a few lines of code, reading and writing of many alignment file formats can be achieved.
 
Ben C Stöver
added an update
LibrAlign is now available in version 0.5.0, which contains updated of the core, swing and swt modules. It now contains SWT GUI components that overcome the maximum component size limitation in SWT under some operating systems to allow displaying and editing of large alignments. Additional changes and new features are listed below.
Source codes, binaries downloads and Maven code of the new release can be found under http://bioinfweb.info/LibrAlign/Download .
Core
  • Painting of AlignmentSubAreas is now done in a new method that is called by the TIC paint method. (This allows the graphical output of a whole alignment to a single paint area.)
  • Interfaces for toolkit-specific components reduced.
  • Scrolling is now performed toolkit-independently in AlignmentArea using new functionality of TIC 3.0.0.
  • ToolkitSpecificAlignmentContentArea.hasSubcomponents() added. (SWT module now supports displaying alignments with or without using subcomponents for each sequence and data area.)
  • GUITools added.
  • SequentialAccessIndexTranslator added.
  • Bug fixes in RandomAccessIndexTranslator.
  • DataAreaModel renamed to DataAreasModel
  • DataAreaModelListener renamed to DataAreasModelListener.
  • JavaDoc updated and extended.
Swing
  • Simplified split pane creation in SwingMultipleAlignmentsContainer.
  • Swing scroll increment changed for alignment areas.
  • Further adjustments to changes in core module.
  • JavaDoc updated and extended.
SWT
  • AlignmentArea in SWT can now alternatively use subcomponents for each sequence and data area or paint the whole alignment on a shared component. (DirectPaintingSWTAlignmentArea allows displaying alignments that are longer than the maximum component size in SWT under Windows and Linux (216 / 2 - 1) by painting on a single component. ScrollContainerSWTAlignmentArea left as an alternative implementation that still creates subcomponents.)
  • SWT alignment label area now allows to have a height beyond the component size limitation of SWT under Windows and Linux.
  • SWT scroll increment changed for alignment areas.
  • Further adjustments to changes in core module.
  • JavaDoc updated and extended.
 
Ben C Stöver
added an update
The LibrAlign source code repository now has a synchronized mirror on GitHub.
Feedback and pull requests are welcome.
 
Ben C Stöver
added 6 research items
Specimens form the falsifiable evidence used in plant systematics. Derivatives of specimens (including the specimen as the organism in the field) such as tissue and DNA samples play an increasing role in research. The EDIT Platform for Cybertaxonomy is a specialist's tool that allows to document and sustainably store all data that are used in the taxonomic work process, from field data to DNA sequences. The types of data stored can be very heterogeneous consisting of specimens, images, text data, primary data files, taxon assignments, etc. The EDIT Platform organizes the linking between such data by using a generic data model for representing the research process. Each step in the process is regarded as a derivation step and generates a derivative of the previous step. This could be a field unit having a specimen as its derivative or a specimen having a tissue sample as its derivative. Each derivation step also produces meta data storing who, when and how the derivation was done. The Platform's Common Data Model (CDM) and the applications build on the CDM library thus represent the first comprehensive implementation of the largely theoretical models developed in the late 1990ies (Berendsohn et al. 1999). In a pilot project research data about the genus Campanula (Kilian et al. 2015, FUB, BGBM 2012) was gathered and used to create a hierarchy of derivatives reaching from field data to DNA sequences. Additionally, the open source library for multiple sequence alignments LibrAlign (Stöver and Müller 2015) was used to integrate an alignment editor into the EDIT platform that allows to generate consensus sequences as derivatives of DNA sequences. The persistent storage of each link in the derivation process and the degree of detail on how the data and meta data are stored will speed up the research process, ease the reproducibility of research results and enhance sustainability of collections.
We present the model and implementation of a workflow that blazes a trail in systematic biology for the re-usability of character data (data on any kind of characters of pheno- and genotypes of organisms) and their additivity from specimen to taxon level. We take into account that any taxon characterization is based on a limited set of sampled individuals and characters, and that consequently any new individual and any new character may affect the recognition of biological entities and/or the subsequent delimitation and characterization of a taxon. Taxon concepts thus frequently change during the knowledge generation process in systematic biology. Structured character data are therefore not only needed for the knowledge generation process but also for easily adapting characterizations of taxa. We aim to facilitate the construction and reproducibility of taxon characterizations from structured character data of changing sample sets by establishing a stable and unambiguous association between each sampled individual and the data processed from it. Our workflow implementation uses the European Distributed Institute of Taxonomy Platform, a comprehensive taxonomic data management and publication environment to: (i) establish a reproducible connection between sampled individuals and all samples derived from them; (ii) stably link sample-based character data with the metadata of the respective samples; (iii) record and store structured specimen-based character data in formats allowing data exchange; (iv) reversibly assign sample metadata and character datasets to taxa in an editable classification and display them and (v) organize data exchange via standard exchange formats and enable the link between the character datasets and samples in research collections, ensuring high visibility and instant re-usability of the data. The workflow implemented will contribute to organizing the interface between phylogenetic analysis and revisionary taxonomic or monographic work. Database URL : http://campanula.e-taxonomy.net/
Several applications currently developed in our group and by our cooperators deal with multiple sequence alignments (MSA) or associated raw and meta data, and allow the user to view and edit it in a graphical user interface (GUI). Instead of implementing independent solutions for these different tasks, we decided to create a library containing powerful and reusable common GUI components. Since this library is open source (GNU GPL 3) it can be used and extended by other researchers, who are then able to focus on the core functionality of their applications, but can still provide a user-friendly GUI. Besides components allowing the displaying and editing of MSAs, several types of data (e.g. trace files, comments, statistical sequence information, positions of tandem repeats, hairpins or inversions) can be attached either to single sequences or to the alignment as a whole. All these data views implement a common interface that makes it easy for developers to create new custom views. Several components from our library (e.g. displaying different types of data) can be connected to each other in the application they are embedded in, so that the user can scroll through one of them while all others will automatically display the data associated with the current position. LibrAlign is fully interoperable with the BioJava API and all components are provided in a native Swing and a native SWT version (the two major GUI frameworks for Java), so that they can be integrated into any Java GUI application, including projects based on the Eclipse Rich Client Platform or Bioclipse. Several software projects based on LibrAlign are currently in development in- and outside our group. Among those are (i) the Taxonomic Editor of the EDIT platform which is extended to support sequence and alignment associated data for the Campanula portal of EDIT, (ii) a new version of the alignment editor PhyDE, (iii) AlignmentComparator (an application to visualize differences between alternative automatic and manual alignments, which we currently use in study investigating the influence of manual alignment corrections on phylogenetic studies), and (iv) HIR-Finder (an application which locates microstructural mutations like tandem repeats possibly associated with hairpins). LibrAlign download: http://bioinfweb.info/LibrAlign http://www2.ieb.uni-muenster.de/EvolBiodivPlants/en/Publications/ConferenceContribution?id=93978
Ben C Stöver
added a project goal
LibrAlign is a Java library providing flexible and powerful GUI components for displaying and editing multiple sequence alignments (MSAs) and attached raw and metadata. It supports creating both Swing and SWT GUIs (using http://bioinfweb.info/TIC/) and the alignment formats FASTA, Phylip, Nexus, NeXML, MEGA and PDE. All components are easily extendable by application or third-party developers.
The documentation and JavaDocs are available here: http://bioinfweb.info/LibrAlign/Documentation. If you have further questions, don't hesitate to ask one in this project.