[The GelBuddy Project]

GelBuddy Data Format Documentation

This document describes the data format that GelBuddy uses to save and reload gel markups and to post markup data to a server. If the files produced by GelBuddy differ from the description in this document, the format implemented by GelBuddy is correct and this document is in error.

Introduction


The data saved by GelBuddy to disk and posted by GelBuddy to a web server are identical. Thus, the data in the file are redundant and some portions of file (such as the signal pair list and the signal pair group list) are generated when the file is saved or posted but are not parsed when reloaded by GelBuddy. Conversely, when SQUINT receives data from GelBuddy, it parses only the data it requires. SQUINT stores the complete unparsed data in its database for future data mining and debugging.

This file format can also be used to transfer data from other applications to GelBuddy -- for example, an external lane-calling package could generate a partial markup file containing only lane tracking information, which the user would then load into GelBuddy.

The GelBuddy file format is based on XML. The hierarchy of data generated by GelBuddy is guaranteed to follow the description provided by this document. However, the presence or absence of tags and the order of tags (except in ordered lists) should not be assumed and may differ between various releases of GelBuddy.

All GelBuddy .XML files are "well-formed" XML documents, in the sense that they contain properly nested tags and may be parsed by a generic XML parser. GelBuddy .XML files are not "valid" XML documents in the sense of having been validated according to a predefined DTD or XML Schema.

Primitives


All elements of a GelBuddy .XML file are of the form where elements is either a sequence of elements or one of the following primitives: element ... element denotes an ordered list of elements.

High Level File Structure

All GelBuddy XML files are of the form where

Gel Identity Information


Gel Calibration Information


Option Settings

Signals And Signal Grouping Information


Lane Track Information


Client/Server Communication

GelBuddy posts the following data to a URL specified by the user using an HTTP POST command: The server should respond with a plaintext message indicating success or failure. GelBuddy will present this message to the user but will not parse it.