# ACEDB User Group Newsletter - September 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.

Some small changes to AceConn, a new init flag, some query improvements, some smap stuff...some bugs....

## General News

The long and winding road, at last we make a reasonable release of acedb including a complete replacement of the sequence building code in FMap with the new SMap code.

## New Features

### AceConn Interface Change

There has been a small change to the AceConn interface, this is the C library that provides a set of basic routines for interfacing to the acedb socket server.

Initialisation and connection have now been separated which gives the application more control over when to connect to the database and also more error feedback when the crucial intial connection fails. The initialise/connect and disconnect/destroy calls are now:

    status = AceConnCreate(&connection, host, port, userid, passwd, timeout) ;

    status = AceConnConnect(connection) ;

    .... make requests to server ....

    status = AceConnDisconnect(connection) ;

    AceConnDestroy(AceConnection connection) ;

### Forced initialisation of tace/giface

When any acedb program starts up, it checks for the presence of the database/ACEDB.wrm file, it then prompts the user as to whether to reinitialise the database. This can make running tace and giface from a script a bit tedious because you have to remember to handle this possibility. You can now specify the `"-init"` command line option which means that if database/ACEDB.wrm file is not found, then the program will continue without prompting and reinitialise.

### New "dna" command options

The tace/giface "dna" command now has options for unspliced/spliced/cds dna dumping. The new command synopsis is:

    Dna [-mismatch] [-unspliced | -spliced | -cds] [[-f] out_filename] :
       Fasta dump of related dna sequences.
            -mismatch          allow mismatches in construction of dna
            -unspliced | -spliced | -cds
                               for intron/exon objects dna can be dumped for exons + introns,
                               the spliced exons or just the CDS within the spliced exons.
            [-f] out_filename  output file for dna.

### Query/TableMaker number interpretation

The query/tablemaker handling of arithmetic/algebra has been improved so that it can do interpretations of sums like: `"- -3 == 3"` and `"3 + 5 (7+2)"`. The handling of negative numbers is useful in table maker when you say `"%5"` and `"%5"` is negative.

## Articles

### SMap Model clarification

A small but important clarification has been added to the SMap model for gluing together sequences and features, it is fundamental to the SMap that each child has one and only one parent. Objects that are to be SMap'd must form strict trees, i.e. each object has a single parent (except for the top object which has no parent). Objects may, of course, have multiple children.

The part of the SMap model that must be put in the child object to point to its parent should be:

    	  SMap S_Parent UNIQUE <parent_tag> UNIQUE <parent_key>
                                   <parent_tag> UNIQUE <parent_key>

As an example the current wspec/models.wrm Sequence class includes:

    ?Sequence

              SMap S_Parent Canonical_parent UNIQUE ?Sequence XREF Genomic_non_canonical
                            Genomic_parent UNIQUE ?Sequence XREF Nongenomic
                            AGP_parent UNIQUE ?Sequence XREF AGP_fragment

This means that any one of Canonical_parent, Genomic_parent or AGP_parent could be the parent of this object.

### Dotter and Blixem binaries

The downloads page on the acedb web site now includes a separate downloads package for the belvu, dotter, and blixem binaries. These are available for Unix, Mac OSX and MS Windows.

## Bugs Fixed

### Dumping dna for genes on reverse strand

An old bug, if you used the seqdna command from giface to dump the dna for a gene on the reverse strand it dumped the dna for the forward strand instead ! This goes right back to acedb 4_7 and is now fixed.

### Bug in signal handler

The signal handler was setting the messOut context to NULL instead of the messExit context. Then when it called messExit, this caused the program to reenter GTK from the signal handler, this is almost always a disaster as it messes up the state of GTK. This is fixed now.

### max_reply in acedb server

The documentation for "max reply bytes" in the server was muddled: the client can set this to any value between 0 and the server maximum (100KB), the server will except the special value zero, meaning "no maximum", i.e. send whole of reply at once.

## Developers Corner

### Subdirectories in whelp/ and wdoc/

Since Simon improved the help browser for acedb it handles subdirectories within whelp/ and in general it would be good if we could all consider putting documents that go into whelp/ or wdoc/ into their subdirectories, particularly if you include seperate picture files that should go with the documents. This has been done for whelp/AQL and also for wdoc/SMap and wdoc/Socket_server documentation already. If you aren't sure how to add subdirectories in a CVS directory then mail me edgrif@sanger.ac.uk and I'll send you the incantations.

### Some new CVS stuff

When we all used the `"acXXXX"` scripts to access our files there was a system that warned you if someone else was already editting a file that you wanted to get out, if you carried on and got the file out then it also warned the person(s) already editting the file that you had got the file out. Note that this was just a warning, it in no way prevented you from editting the file, a courtesy email really. Rob has added code to get CVS to perform this function now rather than the `"acXXXX"` scripts.

The aquila scripts have now been placed in cvs.

### Alpha OSF v5 make

We now have a "_DEF" file for OSF v5 called ALPHA_5, Simon has pointed out that this breaks the convention that the first number refers to the acedb release. This is partly my fault, I was unaware of this convention and also it has been broken for other operating systems. If anyone feels really strongly about this I will change it to ALPHA_4_5. I have put in the compiler flags to get "level 3" warnings out which seems about right as a balance between over zealous and useful messages.

I also attempted to fix yet more #define nonsense on Alpha, they cannot make up their minds whether to define socklen_t or not...sigh.... first they don't, then they do, then they only sometimes do....

## May monthly build not available.

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

Last modified: Fri Dec 20 09:46:07 GMT 2002