# ACEDB User Group Newsletter - May 2002

If you want to have this newsletter mailed to you or you want to make comments/suggestions about the format/content then send an email to acedb@sanger.ac.uk.

This month includes controlling the acedb server with signals, some changes to the way homologies are displayed in fmap, Acedb and the Mac, and some important bug fixes.

## General News

Sad to say we are still labouring on the SMap code which will bring a lot more power and flexibility to FMap.

## New Features

### Killing the AceDB server with SIGTERM

Server programs, especially those run in the background will normally accept certain signals as "commands" to get them to take certain actions, the de facto standard for unix includes:

- `SIGHUP`: reread server configuration file(s).
- `SIGTERM`: terminate gracefully.

The AceDB server will now respond to `SIGTERM` and shut down correctly. This is done by by setting a global flag from a server callback routine called by the acedb signal handler function. The server then checks for the global flag in the main processing loop of the socket layer, and then initiates the save and exit of the database. This seems a bit contorted but avoids any issues of trying to use issue calls that are not signal safe from a signal handler or of trying to exit perhaps half way through an interrupted partial acedb save.

Support for `SIGHUP` will be added if required.

### Some FMap changes

A number of small changes have been made to FMap:

Support for "Show_in_reverse_orientation" tag: The worm database version of the `?Sequence` class contains a `Show_in_reverse_orientation` tag which is used to indicate that the 3' sequence of an EST paired read that has been sequenced in reverse. The FMap code now looks for this tag and will reverse the strand that the sequence is shown on so that it appears downstream from its 5' pair. To take advantage of the tag you need to add this tag to the `?Sequence` class, you can put the tag anywhere in the class but in the worm version it is under the "Properties" tag:

    Properties    Pseudogene Text
                  Genomic_canonical Gene_count UNIQUE Int

                  etc.

                  Show_in_reverse_orientation   // Draw 3' reads in reverse orientation

                  etc.

Improved display of homologies with a common clone parent: Clicking on a homology box in fmap will now hilight all all the homologies in that column that have a common clone parent. In addition if you select to have the column displayed in "cluster" mode, homologies with a common parent get sorted into the same vertical alignment within the column, making them easier to see.

## Articles

### Acedb, MAC OSX and "Darwin"

(This article is courtesy of Simon Kelley srk@sanger.ac.uk)

Acedb is now available to run on Apple Macintoshes running Mac OS X. We are using the Fink packaging system to distribute Acedb for Macs. This is available from http://fink.sourceforge.net/

Acedb depends on a few other bits of software which don't come with OS X but are available from the Fink system. The main one of these is the X windows system.

To get Acedb on a Mac, first install fink by following the instructions at http://fink.sourceforge.net/download/index.php

Download the package for acedb from http://www.acedb.org/Software/Downloads

Install the extra software required by running the following command in a Terminal Window:

    fink install xfree86-base xfree86-rootless gtk+ readline

and finally install acedb by runnning this command:

    dpkg -i <path_to_acedb_package>

## Bugs Fixed

### Blixem and efetch/pfetch

Blixem now supports the use of efetch or pfetch to get its sequence entries from reference databases (e.g. EMBL). There was a bug which meant that even if the user wanted blixem to use pfetch, it would still try to use efetch for some purposes. Now blixem will use either efetch or pfetch, but not a mixture of both.

In addition, if pfetch is used, blixem will make use of the new "--client" pfetch option which gives logging information about the user/client to the pfetch server.

### Ancient freeread() bug

An ancient bug in freeread() caused escaped pseudo newlines of the form '\' followed by 'n' to be incorrectly translated to just 'n' rather than being read unaltered as '\n'. freeread() is brain dead in that it does not use the "special" stuff used by other freeNNN routines, which is the original cause of the bug, this will not be fixed as the freeNNN routines are legacy code having been replaced by the aceIn/Out package.

### Ancient acediff bug

Two bugs fixed:

cmpFileParts() was altered at some time to do error checking for EOF (which was a good idea) but in doing the check read twice as many chars as it should have because it was doing a separate getc() to test EOF from the getc() to just get the next char from the file. This caused the program to do anything from fall off the end of the file to erroneously report differences.

oneLine() did not count lines in the file it was processing correctly, this is because a) the freeread() routine it called was incorrectly translating pseudo-newlines into just 'n' (now fixed) and b) it didn't increment the line count when it encountered one of these (which in acefiles signals a multiline text entry).

### AQL obscure bug

AQL sometimes failed in obscure ways, this was because the code in aqlCreate() was missing the NULL terminator required for varargs so queries were not always interpreted correctly.

## May monthly build not available.

Apologies, once again there was no build this month due to the major SMap development work.

Last modified: Wed Dec 18 16:12:57 GMT 2002