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 EFUNC and EDATA.

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

Notes


LIBRARY DATATYPES FUNCTIONS NOTES
General data definitions Datatypes   Notes
System Specific Definitions Datatypes   Notes
General data definitions Datatypes   Notes
AJAX Command Definitions Datatypes Functions Notes
Alignments Datatypes Functions Notes
Array handling Datatypes Functions Notes
Assembly functions Datatypes Functions Notes
Assembly data Datatypes   Notes
Assembly reading Datatypes Functions Notes
Assembly writing Datatypes Functions Notes
Assembly database 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
DOM parser Datatypes Functions Notes
Domain Functions Datatypes Functions Notes
Exception handling Datatypes Functions Notes
Feature table functions Datatypes Functions Notes
Feature table data Datatypes   Notes
Features table reading Datatypes Functions Notes
Feature table writing Datatypes Functions Notes
Feature table database Datatypes Functions Notes
File handling Datatypes Functions Notes
Data file handling Datatypes Functions Notes
File i/O 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
Obo term functions Datatypes Functions Notes
Obo term data Datatypes   Notes
Obo term reading Datatypes Functions Notes
Obo term writing Datatypes Functions Notes
Obo term database Datatypes Functions Notes
Protein Databank Data Functions Datatypes Functions Notes
Protein Databank Data I/O Functions Datatypes Functions Notes
Pattern 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
Resource functions Datatypes Functions Notes
Resource data Datatypes   Notes
Resource reading Datatypes Functions Notes
Resource writing Datatypes Functions Notes
Resource database 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
SQL Datatypes Functions Notes
String manipulation Datatypes Functions Notes
System Utility Functions Datatypes Functions Notes
Tables Datatypes Functions Notes
Taxon functions Datatypes Functions Notes
Taxon data Datatypes   Notes
Taxon reading Datatypes Functions Notes
Taxon writing Datatypes Functions Notes
Taxon database Datatypes Functions Notes
Text functions Datatypes Functions Notes
Text data Datatypes   Notes
Text reading Datatypes Functions Notes
Text writing Datatypes Functions Notes
Text database Datatypes Functions Notes
Time Functions Datatypes Functions Notes
Sequence Translation Functions Datatypes Functions Notes
Phylogenetic Tree Functions Datatypes Functions Notes
Url functions Datatypes Functions Notes
Url data Datatypes   Notes
Url reading Datatypes Functions Notes
Url writing Datatypes Functions Notes
Url database Datatypes Functions Notes
Utilities Datatypes Functions Notes
Variation functions Datatypes Functions Notes
Variation data Datatypes   Notes
Variation reading Datatypes Functions Notes
Variation writing Datatypes Functions Notes
Variation database Datatypes Functions Notes
Cloning Vector Functions Datatypes Functions Notes


General data definitions


General Type Definitions

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


Master AJAX Include File


System-Specific Type Definitions


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 covers all the major data types read and written by EMBOSS applications and the internal functions needed to manage ACD file parsing, help text and conversions for other projects.


Alignments


Array handling


Assembly handling

See the links below.

Assembly data definitions

See the links below.

Assembly term reading

See the links below.

Assembly writing

See the links below.

Assembly database reading

See the links below.

FunctionsData typesDescription
ajassem ajassem Assembly general handling
  ajassemdata Assembly data types
ajassemread ajassemread Assembly reading
ajassemwrite ajassemwrite Assembly writing
ajassemdb   Assembly database access

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


DOM XML Parser Functions


Domain Functions


Exception handling

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


Feature table functions

See the links below.

Feature table data definitions

See the links below.

Feature table reading

See the links below.

Feature table writing

See the links below.

Feature table database reading

See the links below.

FunctionsData typesDescription
ajfeat ajfeat Feature table general handling
  ajfeatdata Feature table data types
ajfeatread ajfeatread Feature table reading
ajfeatwrite ajfeatwrite Feature table writing
ajfeatdb   Feature table database access

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


Data File handling


File input/output handling


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


Graphical Data Types

See descriptions of functions and 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


Obo term handling

See the links below.

Obo term data definitions

See the links below.

Obo term reading

See the links below.

Obo term writing

See the links below.

Obo term database reading

See the links below.

FunctionsData typesDescription
ajobo ajobo Obo term general handling
  ajobodata Obo term data types
ajoboread ajoboread Obo term reading
ajobowrite ajobowrite Obo term writing
ajobodb   Obo term database access

Pattern matching 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


Data resource handling

See the links below.

Data resource data definitions

See the links below.

Data resource reading

See the links below.

Data resource writing

See the links below.

Data resource database reading

See the links below.

FunctionsData typesDescription
ajresource ajresource Data resource general handling
  ajresourcedata Data resource data types
ajresourceread ajresourceread Data resource reading
ajresourcewrite ajresourcewrite Data resource writing
ajresourcedb   Data resource database access

Reference sequence handling

See the links below.

Reference sequence data definitions

See the links below.

Reference sequence reading

See the links below.

Reference sequence writing

See the links below.

Reference sequence database reading

See the links below.

FunctionsData typesDescription
ajrefseq ajrefseq Reference sequence general handling
  ajrefseqdata Reference sequence data types
ajrefseqread ajrefseqread Reference sequence reading
ajrefseqwrite ajrefseqwrite Reference sequence writing
ajrefseqdb   Reference sequence database access

Sequence data definitions

See the links below.

Sequence handling

See the links below.

Sequence ABI Trace handling

See the links below.

Sequence reading

See the links below.

Management of Sequence Types

See the links below.

Sequence writing

See the links below.

Sequence database reading

See the links below.

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

Sort Utility Functions


SQL Database Access


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.


Taxon handling

See the links below.

Taxon data definitions

See the links below.

Taxon reading

See the links below.

Taxon writing

See the links below.

Taxon database reading

See the links below.

FunctionsData typesDescription
ajtax ajtax Taxon general handling
  ajtaxdata Taxon data types
ajtaxread ajtaxread Taxon reading
ajtaxwrite ajtaxwrite Taxon writing
ajtaxdb   Taxon database access

Text handling

See the links below.

Text data definitions

See the links below.

Text reading

See the links below.

Text writing

See the links below.

Text database reading

See the links below.

FunctionsData typesDescription
ajtext ajtext Text general handling
  ajtextdata Text data types
ajtextread ajtextread Text reading
ajtextwrite ajtextwrite Text writing
ajtextdb   Text database access

Time Functions


Sequence Translation Functions


Phylogenetic Tree Functions


Url handling

See the links below.

Url data definitions

See the links below.

Url reading

See the links below.

Url writing

See the links below.

Url database reading

See the links below.

FunctionsData typesDescription
ajurl ajurl Url general handling
  ajurldata Url data types
ajurlread ajurlread Url reading
ajurlwrite ajurlwrite Url writing
ajurldb   Url database access

Utilities

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


Variation handling

See the links below.

Variation data definitions

See the links below.

Variation reading

See the links below.

Variation writing

See the links below.

Variation database reading

See the links below.

FunctionsData typesDescription
ajvar ajvar Variation general handling
  ajvardata Variation data types
ajvarread ajvarread Variation reading
ajvarwrite ajvarwrite Variation writing
ajvardb   Variation database access

Cloning Vector Functions


Xml handling

See the links below.

Xml data definitions

See the links below.

Xml reading

See the links below.

Xml writing

See the links below.

Xml database reading

See the links below.

FunctionsData typesDescription
ajxml ajxml Xml general handling
  ajxmldata Xml data types
ajxmlread ajxmlread Xml reading
ajxmlwrite ajxmlwrite Xml writing
ajxmldb   Xml database access