title: Processing genome scale tabular data with wormtable.
abstract: BACKGROUND
  Modern biological science generates a vast amount of data, the analysis of which presents a major challenge to researchers. Data are commonly represented in tables stored as plain text files and require line-by-line parsing for analysis, which is time consuming and error prone. Furthermore, there is no simple means of indexing these files so that rows containing particular values can be quickly found.
  
  
  RESULTS
  We introduce a new data format and software library called wormtable, which provides efficient access to tabular data in Python. Wormtable stores data in a compact binary format, provides random access to rows, and enables sophisticated indexing on columns within these tables. Files written in existing formats can be easily converted to wormtable format, and we provide conversion utilities for the VCF and GTF formats.
  
  
  CONCLUSIONS
  Wormtable's simple API allows users to process large tables orders of magnitude more quickly than is possible when parsing text. Furthermore, the indexing facilities provide efficient access to subsets of the data along with providing useful methods of summarising columns. Since third-party libraries or custom code are no longer needed to parse complex plain text formats, analysis code can also be substantially simpler as well as being uniform across different data formats. These benefits of reduced code complexity and greatly increased performance allow users much greater freedom to explore their data.
authors.affiliation: University of Edinburgh, King's Buildings, West Mains Road, Edinburgh, EH9 3JT, UK. jerome.kelleher@ed.ac.uk.
authors.forename: Jerome
authors.initials: J
authors.lastname: Kelleher
authors.forename: Rob W
authors.initials: RW
authors.lastname: Ness
authors.forename: Daniel L
authors.initials: DL
authors.lastname: Halligan
mesh_terms: D000818:Animals; D019295:Computational Biology / Q000379:methods*; D003198:Computer Simulation; D016208:Databases, Factual; D029721:Drosophila Proteins / Q000235:genetics; D001330:Electronic Data Processing / Q000379:methods*; D015894:Genome, Human; D049750:Genome, Insect; D023281:Genomics / Q000295:instrumentation / Q000379:methods*; D006801:Humans; D046609:Libraries, Digital / Q000639:trends; D011897:Random Allocation; D057386:Search Engine; D012984:Software / Q000639:trends*
chemical_list: D029721:Drosophila Proteins