The AJAX Library Documentation: CVS (developers) release

This documentation is automatically derived from the comments in the source file function headers. Function documentation and the source code are also indexed in SRS as databases EFUNCREL and EDATAREL.

The most useful libraries for new developers are given in bold italics.

Notes


LIBRARY DATATYPES FUNCTIONS NOTES
General data definitions Datatypes   Notes
AJAX Command Definitions Datatypes Functions Notes
Alignments Datatypes Functions Notes
Array handling Datatypes Functions Notes
Assert function Datatypes Functions Notes
Base Code Functions Datatypes Functions Notes
Call Registration Functions Datatypes Functions Notes
Codon Analysis Functions Datatypes Functions Notes
DNA Melting Functions Datatypes Functions Notes
Domainatrix Functions Datatypes Functions Notes
Domain Functions Datatypes Functions Notes
Exception handling Datatypes Functions Notes
Feature Table Functions Datatypes Functions Notes
Feature Table Data Datatypes   Notes
File handling Datatypes Functions Notes
Formatted output Datatypes Functions Notes
Graphical output Datatypes Functions Notes
Histogram Graphical Functions Datatypes Functions Notes
Indexing Functions Datatypes Functions Notes
Java Functions Datatypes Functions Notes
Lists Datatypes Functions Notes
Maths utilities Datatypes Functions Notes
Comparison Matrix Functions Datatypes Functions Notes
Memory allocation Datatypes Functions Notes
Message handling Datatypes Functions Notes
Names: Variables and database definitions Datatypes Functions Notes
Nexus Data Functions Datatypes Functions Notes
Protein Databank Data Functions Datatypes Functions Notes
Protein Databank Data I/O Functions Datatypes Functions Notes
Phylogenetic Data Functions Datatypes Functions Notes
Sequence Range Functions Datatypes Functions Notes
Regular expressions Datatypes Functions Notes
Feature Report Functions Datatypes Functions Notes
Sequence Datatypes Functions Notes
Sequence ABI traces Datatypes Functions Notes
Sequence data Datatypes   Notes
Sequence database Datatypes Functions Notes
Sequence reading Datatypes Functions Notes
Sequence types Datatypes Functions Notes
Sequence writing Datatypes Functions Notes
Sort Utility Functions Datatypes Functions Notes
String manipulation Datatypes Functions Notes
System Utility Functions Datatypes Functions Notes
Tables Datatypes Functions Notes
Time Functions Datatypes Functions Notes
Sequence Translation Functions Datatypes Functions Notes
Phylogenetic Tree Functions Datatypes Functions Notes
Utilities Datatypes Functions Notes
Cloning Vector Functions Datatypes Functions Notes


General data definitions

These are general data types for dates, booleans (true/false) and so on.

AJAX Command Definitions

All EMBOSS applications depend on a complete user interface definition in an ACD (AJAX Command Definition) file. The ACD file specifies all the information the application needs. A single library call parses the definition, checks the command line, and prompts the user for any values still needed.

The ACD specification is relatively simple at present, but will expand rapidly to cover all the major data types required by EMBOSS applications.


Alignments


Array handling


Assert function

These functions control provide special handling of the "assert" function using AJAX message handling.

Base Code Functions


Call Registration Functions


Codon Analysis Functions


DNA Melting Functions


Domainatrix Functions


Domain Functions


Exception handling

Exception handling follows the model in David Hanson's book
"C Interfaces and Implementations"

Feature Table Functions


File handling

AJAX provides input and output file data types with features such as lists of files to be processed and buffering of lines so that files can be read again from memory, useful for files which cannot be rewound like stdin.

Formatted output

AJAX formatting is a superset of ANSI C, with additional types for strings, booleans and dates. Output can be to a string with automatic adjustment of memory allocation. Null pointers are checked for and reported rather than causing failures (for example with %s).

Graphical output

See descriptions of
functions and data types and XML data types

Graphics in the current version use the PLplot graphics library. We continue to look for other graphics libraries available under the Library GPL and may change or allow alternatives in future.


Histogram Graphical Functions


Indexing Functions


Java Functions


Lists

Lists are tricky to handle because of the ownership of the data items. Data items are mostly of "any" data type (void* in ANSI C) which means that the list will not know how to free them.

Some lists assume the user will delete data when it is removed form the list. Others can automatically delete. See the function documentation for more information.

Separate string functions are provided because lists of strings can be very useful.


Maths utilities

Only a few utility functions are included so far. They cover rounding. Functions for sorting are planned as soon as they are needed by applications or by other library code.

Comparison Matrix Functions


Memory allocation

Only a few utility functions are included so far. They are basically malloc and friends with error messages on failure. There are also ANSI C macros to make life easier.

Message handling

The message functions names are rather confusing. There are a set of macros to make them easier to use, and typical applications will only use these and avoid the direct function calls.

Names: Variables and database definitions

AJAX checks variable names first as environment variables (on Unix) and then as definitions in either the user's ~/.embossrc file or in the site wide emboss.defaults file.

Sequence databases are defined in the same files, and handled by a related set of functions. Database definitions are very flexible, and are summarised in the database definition guide.


Nexus Data Functions


Protein Databank Data Functions


Protein Databank Data I/O Functions


Phylogenetic Data Functions


Sequence Range Functions


Regular expressions

Internal functions are documented in the following categories:

Internal data structures are documented in the PCRE Internals and PCRE Posix

AJAX regular expressions are based on the PCRE (Perl Compatible Regular Expressions) library.


Feature Report Functions


Sequence reading and writing

See the links below.

FunctionsData typesDescription
ajseq ajseq General sequence handling
  ajseqdata Sequence data types
  ajseqabi Sequence ABI trace data
ajseqdb   Sequence database access
ajseqread ajseqread Sequence reading
ajseqtype   Sequence types
ajseqwrite ajseqwrite Sequence writing

Sort Utility Functions


String manipulation

String handling is the most extensive part of the library so far. String data structures are fundamental to many of the internal routines and are the internal representation of sequence data.

System Utility Functions


Tables

Table handling was initially based on David Hanson's book
"C Interfaces and Implementations".

The hash functions and comparison functions have been revised to work better with strings. Further changes will be made in future.


Time Functions


Sequence Translation Functions


Phylogenetic Tree Functions


Utilities

Only a few utility functions are included so far. These cover aborting applications and testing for bigendian or littleendian machines.

Cloning Vector Functions