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 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.
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.
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.
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