RGFA: powerful and convenient handling of assembly graphs

Zentrum für Bioinformatik, Universität Hamburg, Hamburg, Germany
DOI
10.7287/peerj.preprints.2381v1
Subject Areas
Bioinformatics, Genomics
Keywords
GFA format, Sequence assembling, Assembly graph, Software library, Graphical Fragment Assembly, Graph transformation
Copyright
© 2016 Gonnella et al.
Licence
This is an open access article distributed under the terms of the Creative Commons Attribution License, which permits unrestricted use, distribution, reproduction and adaptation in any medium and for any purpose provided that it is properly attributed. For attribution, the original author(s), title, publication source (PeerJ Preprints) and either DOI or URL of the article must be cited.
Cite this article
Gonnella G, Kurtz S. 2016. RGFA: powerful and convenient handling of assembly graphs. PeerJ Preprints 4:e2381v1

Abstract

The “Graphical Fragment Assembly” (GFA) is an emerging format for the representation of sequence assembly graphs, which can be adopted by both de Bruijn graph- and string graph-based assemblers. Here we present RGFA, an implementation of the proposed GFA specification in Ruby. It allows to conveniently parse, edit and write GFA files. Complex operations such as the separation of the implicit instances of repeats and the merging of linear paths can be performed. A typical application of RGFA is the editing of a graph, to finish the assembly of a sequence, using information not available to the assembler. We illustrate a use case, in which the assembly of a repetitive metagenomic fosmid insert was completed using a script based on RGFA. Furthermore, we show how the API provided by RGFA allows to design complex graph editing algorithms. As an example, we developed a detection algorithm for CRISPRs in a de Bruijn graph. Finally, RGFA can be used for comparing assembly graphs, e.g. to document the changes in a graph after applying a GUI editor. A program, GFAdiff is provided, which compares the information in two graphs, and generate a report or a Ruby script documenting the transformation steps between the graphs.

Author Comment

This is an article which has been accepted for the GCB 2016 Conference.