We use cookies to distinguish you from other users and to provide you with a better experience on our websites. Close this message to accept cookies or find out how to manage your cookie settings.
To save content items to your account,
please confirm that you agree to abide by our usage policies.
If this is the first time you use this feature, you will be asked to authorise Cambridge Core to connect with your account.
Find out more about saving content to .
To save content items to your Kindle, first ensure [email protected]
is added to your Approved Personal Document E-mail List under your Personal Document Settings
on the Manage Your Content and Devices page of your Amazon account. Then enter the ‘name’ part
of your Kindle email address below.
Find out more about saving to your Kindle.
Note you can select to save to either the @free.kindle.com or @kindle.com variations.
‘@free.kindle.com’ emails are free but can only be saved to your device when it is connected to wi-fi.
‘@kindle.com’ emails can be delivered even when you are not connected to wi-fi, but note that service fees apply.
Benefits to incorporating applications into EMBOSS
There are lots of good reasons for making the effort to incorporate third-party applications into EMBOSS. Just a few are listed below.
Distribution It’s clearly desirable to reach as many users as possible. EMBOSS has thousands of users and many sites regularly download the latest release, so any software that’s incorporated will be widely distributed.
Training cost Incorporated software is used in exactly the same way as all other EMBOSS applications. Someone familiar with EMBOSS will be able to use any application that’s been ported or wrapped. There’s no additional training requirement beyond, of course, learning about the specific methods the application implements. That is a requirement regardless of whether or not an application is in EMBOSS.
Support cost Incorporated applications will benefit from a basic level of support provided by EMBOSS through the mailing lists. The level of support depends on the circumstances. An application that’s been fully ported with the understanding of it being adopted by EMBOSS would be fully supported. At the very least a user would get a reply to any email query and forwarded to where they could get more help. This is especially valuable in cases where the original author of an application has since moved away from the institute that now maintains it.
Maintenance cost There might be savings on the maintenance costs. This again depends on the level of integration and the specific arrangements. At the very least EMBOSS would investigate any bugs and forward appropriate reports to the authors of the original software. There is an additional cost to maintain the port or wrapper as well as the original code, but this is more than offset by the benefits.
Web services, workflows and interfaces EMBOSS has been incorporated into many graphical interfaces and workflow software such as SRS, Pipeline Pilot, Taverna, wEMBOSS and Jemboss. Further, thanks to ongoing developments in SOAPLAB, it is relatively easy to deploy an EMBOSS application as a web service. If your software is incorporated then there’s little or no additional cost in setting it up in these contexts.
Database support EMBOSS supports all the common formats for input and output of sequences, sequence features and sequence alignments. Many other common data formats are supported. Any software you incorporate will be able to use these formats too. What’s more, when EMBOSS is updated to support changes to the formats, or entirely new formats, then your software will automatically benefit from these changes.
The EMBOSS C coding standards are summarised below. Mostly they concern layout of the code, some well established principles of C programming, and tips for programming EMBOSS objects (C data structures) and functions. There are a few guidelines which you should try to follow when writing code for EMBOSS.
Use of libraries
It is very wasteful to write code unnecessarily; often the functionality is available in AJAX or NUCLEUS. Check the libraries before coding and contribute any new code so that it can be incorporated into the libraries.
Every EMBOSS and EMBASSY program has an ACD (AJAX command definition) file which describes the application, its options (parameters) and command line interface. The ACD file controls the behaviour of the application at the command line, particularly, all the user input operations. It includes:
An application definition describing the application itself, for instance its name, documentation text and functional grouping.
Attributes defining exactly what options are permitted or required under different conditions, how option values may be specified on the command line and how the user is prompted for values.
A data definition for every application option. These describe the program parameters, i.e. the data the program can accept or requires to run. This includes input and output files and all other parameters.
A datatype for each application option and attributes describing the permissible type or value in detail, for example default values and whether data has to be within limits. These are used for user input validation to ensure the application parameters are set correctly.
Dependencies between application options, such as when a value is only required if another is specified, or the permitted type of value depends on the value or the presence of another. If for example the input sequence for an alignment program is DNA it should not accept a protein comparison matrix.
When an application is run, the ACD file is read and the command line processed automatically by an ACD file parser and command line processor that is internal to EMBOSS. Together these ensure that the required information is available at startup. All of the required option values are prompted for as necessary before the application starts. Input values that are incorrect or out of range are reprompted for automatically. The input values are read and held in memory, files are opened as required and so forth, so that all the required data are available when the application proper runs. An EMBOSS application cannot ask the user for more information after several hours of processing!