EMBOSS Documentation for Developers

Contents


Developers' introduction

There is an introductory guide to help you in your start as an EMBOSS developer.

Example application

The first EMBOSS application written is called seqret. It is worthwhile studying this worked example of the seqret code as it illustrates nicely the basic structure of an EMBOSS application. seqret prompts the user for an input sequence and an output sequence. It reads the input sequence and writes it to the output sequence. Both can have any file name and any file format supported by EMBOSS.

AJAX Command Definition (ACD) language

Each EMBOSS application depends on a complete user interface definition that is given in an ACD (AJAX Command Definition) file. The ACD file specifies all the information the application needs. A single call a library function from within the application source code parses the definition, checks the command line, and prompts the user for any values still needed.

The ACD language covers all the major data types required by EMBOSS applications. New data types can be easily added as required.


Guide to Writing EMBOSS Applications

Step-by-step guidance through the various libraries, configuration files, style and techniques involved in programming EMBOSS applications.

EMBOSS standards

All EMBOSS code (both library and application code) should be well documented and both the code and documentation should adhere to formally-defined standards:

  • EMBOSS C programming standards
  • EMBOSS code documentation standards

    EMBOSS Software Development Course

    We run regular hands-on courses in 'Bioinformatics Software Development' using EMBOSS, usually in the training room at Hinxton Hall, Welcome Trust Genome Campus, Cambridge, UK.

    The course gives a good introduction to programming in EMBOSS. By the end of the course you will be experienced in all the steps in writing a basic bioinformatics application using the EMBOSS programming libraries.

    The full course is available on-line.


    AJAX library documentation

    AJAX is the core library used by all EMBOSS applications. It covers standard data structures, including strings, sequences, file handles, queues, hashes, heaps, lists, dictionaries, trees and dynamic arrays. It also covers standard algorithms including comparisons, pattern matching, sorting, and iterators. AJAX will also provide a set of high level graphics functions suited to the needs of sequence analysis applications.

    AJAX library documentation is available for the CVS (developers) and major releases of the stable version of the source code. From Version 4.0.0, documentation is available for minor releases too.


    NUCLEUS library documentation

    The NUCLEUS library provides higher-level functions specific to molecular sequence analysis, including sequence comparisons, translation, codon usage and annotation.

    NUCLEUS library documentation is available for the CVS (developers) and major releases of the stable version of the source code. From Version 4.0.0, documentation is available for minor releases too.


    PLplot graphics library documentation

    EMBOSS makes use of the PLPlot graphics library. The original documentation is available.

    Browse the CVS source code

    The library source code is also indexed in SRS as databases. For functions you can browse EFUNC and for datatypes you can use EDATA.

    Browse the release 6.6.0 source code

    The library source code from the last release is also indexed in SRS as databases. For functions you can browse EFUNCREL and for datatypes you can use EDATAREL.

    CVS code repository

    We use a CVS (Concurrent Version System) repository for the code that's updated every couple of hours, where developers can checkout (obtain) or update the latest version of the entire EMBOSS code. More information on using the CVS server is available.

    Application documentation

    Every EMBOSS application should be well documented. Full application documentation in a format suitable for end-user biologists is available on-line.

    Perl and other script interfaces

    At many sites, by far the most heavily-used way of running EMBOSS programs is to call them from scripts written in such languages as Csh, Tcsh, Perl, Python etc.

    This often involves simply writing the EMBOSS program command on one line and adding '-auto' to this command-line (which makes the program run without prompts, accepting the defaults for parameters and without displaying the one-line description). Or '-filter' can be added to the command-line (which makes the program read from 'stdin' and write to 'stdout' by default and adds '-auto' to the command-line for you).

    The following add explicit support for parsing the results of EMBOSS programs or for writing your own variants of EMBOSS programs using the scripts.

    Bio::Emboss

    This module allows Perl programmers to access functions of the EMBOSS package (BioPerl not required).

    BioPerl

    This is a very comprehensive bioinformatics package. Access to the EMBOSS programs is only a small part of the functionality of this package.

    BioPython

    This is a very comprehensive bioinformatics package. access to the EMBOSS programs is only a small part of the functionality of this package.


    Draft or old documents for local use only