| Home | C. elegans | AcePerl | Gramene | Reactome | GMOD | Course | DAS | WWW |

AcePerl is an object-oriented Perl interface for the ACEDB database. It provides functionality for connecting to remote ACEDB databases, performing queries, fetching ACE objects, and updating databases. The programmer's API is compatible with the JADE Java API, and interoperable with the API used by BoulderIO.
1999 Winner of the Long Island Software Awards!
The AcePerl package contains all you need to connect to remote ACEDB servers over the network. Unlike earlier versions, you do not need to compile and link in the ACEDB libraries.
If you wish to create your own local databases, you will need the full ACEDB package. AcePerl is designed to work with ACEDB version 4.7c, which you can download from the NCBI or from the Sanger Centre. AcePerl will function with earlier versions of ACEDB, but not all of the features described in the documentation will work.
In order to take advantage of the new Ace::Sequence class, which supports distributed sequence annotations, you will need ACEDB version 4.7l (that's an "ell" not a one),available at:
Please send bug reports to lstein@cshl.org.
Detailed information on this library can be found in the AcePerl manual pages, which are part of the package.
The following short script will give you a taste for the library. It fetches and displays some information about all the authors in an ACEDB database. Notice that the API automatically turns method calls like $object->Mail into a traversal of the object tree and a retrieval of the subtree at the indicated tag. The col() method, which is used several times in the example below, fetches the column of data beneath the indicated tag. Similarly, row() can be used to fetch a row of data. pick() follows an object reference back into the database and retrieves it. (If you don't know what I'm talking about, don't worry, it's explained in detail in the man page.)
#!/usr/local/bin/perl
# This example will pull some information on various authors
# from the C. Elegans ACEDB.
use Ace;
use strict vars;
use constant HOST => $ENV{ACEDB_HOST} || 'beta.crbm.cnrs-mop.fr';
use constant PORT => $ENV{ACEDB_PORT} || 20000100;
$|=1;
print "Opening the database....";
my $db = Ace->connect(-host=>HOST,-port=>PORT)
|| die "Connection failure: ",Ace->error;
print "done.\n\n";
my @authors = $db->fetch('Author','S*');
print "There are ",scalar(@authors)," Author objects starting with the letter \"S\".\n",
"The first one's name is ",$authors[0],"\n",
"His mailing address is ",join(',',$authors[0]->Mail),"\n\n";
my @papers = $authors[0]->Paper;
print "He has published ",scalar(@papers)," papers.\n\n";
my $paper = $papers[$#papers]->fetch;
print "The title of his most recent paper is ",$paper->Title,"\n",
"The coauthors were ",join(", ",$paper->Author),"\n\n",
"Here is all the information on the first coauthor:\n",
(($paper->Author)[0]->fetch->asString);
|
Here's the output from this script:
Opening the database....done.
There are 543 Author objects starting with the letter "S".
The first one's name is Saari B
His mailing address is Department of Genetics,445 Henry Mall,Madison, WI 53706
He has published 8 papers.
The title of his most recent paper is TISSUE-SPECIFIC EXPRESSION AND
SUB-CELLULAR LOCALIZATION OF RYANODINE RECEPTOR CHANNELS IN CAENORHABDITIS ELEGANS
The coauthors were Maryon EB, Saari B, Anderson P
Here is all the information on the first coauthor:
Maryon EB Full_name Ed Maryon
Address Mail 445 Henry Mall
Laboratory of Genetics
Madison, WI 53706
E_mail maryon@ums2.macc.wisc.edu
Phone (608)262-0203
Fax (608)262-2976
Paper [wbg12.4p69]
[cgc1646]
[wbg13.4p74]
[wm93p304]
[wm95p77]
[wbg14.3p11]
[cgc2536]
[wm97ab390]
[wm97ab632]
|
Here is a small example database of movies, directors, screenwriters and actors:22 June 2007: This is not currently working.
This example database may help get you started with AcePerl. Please see the ACEDB installation notes in the documentation directory for HOWTO files.Here is the current change log:
1.90 Tue Apr 12 09:33:11 EDT 2005
1. The -fill=>1 argument now plays nicely with the caching code.
2. Cleaned debug infrastructure.
3. Fixes to make cache more robust in mod_perl environment (may not fix)
1.89 Wed Mar 9 18:25:45 EST 2005
1. Added caching code. If you fetch the same object multiple times from the database,
you will usually get the same in-memory object.
2. Now requires ace binaries 4_9s or later.
3. Requires CACHE::CACHE and WeakRef for caching.
1.87 10/3/03
1. Fixed unreadable GIF images produced by recent versions of GifAceServer.
2. Fixed Ace::Model to handle #tags properly.
1.86 5/11/03
1. Fixed Ace::Sequence, but requires Acedb server 4.9r or higher to work!
2. Changed location of regression tests.
3. Updated documentation.
1.84
1. Fixed auto_save() getting stuck on when using Ace::Local.
1.83 2/21/02
1. Added an Ace->reopen() call that will automatically freshen handles
that have timed out.
2. Added a facility to AceSubs that allows one to add fields to the
form tag generated by AceSearchTable().
1.82 Versioning confusion. Do not use.
1.81
1. Fixed bug in SiteDefs->displays() that was causing long delays
when fetching certain display lists.
1.80
1. Numerous small bug fixes.
1.77
1. AceBrowser is now part of AcePerl.
1.76
1. Changes to AceBrowser to improve AceRedirect() call and make more robust.
2. Can now redirect to other class.
3. Numerous enhancements to Ace::Graphics glyphs, including directional glyphs.
1.75
1. Added -coordinates and -getcoordinates arguments to asGif() to support scrolling
and zooming images.
1.74
1. Fixed a bad bug involving inability to index into portions of the subtree anchored by
numeric 0.
2. Added the -filled argument to autogenerated methods (big win).
1.70 3/5/2001
1. Folded AceBrowser functionality into package.
2. Added GD graphics.
1.69 10/17/2000
1. fixes to url processing
1.68 10/15/2000
1. Fixes for socket server.
2. Fixes to Ace::Sequence module to make it reliable.
1.67 9/6/2000
1. Many updates to support socket server.
2. find_many() will now be much faster for complex queries.
3. Single-argument shortcut form for connect()
4. The Ace->find_many() and Ace->models() methods, formerly deprecated,
are now no longer supported.
1.62 5/18/2000
1. **NOTE** Redid the automatic accessors. There is now always an implicit
move to the *right* of a tag when you fetch it as a method. Use
$object->Tag(0) to get the old default behavior. Be warned, you used to
have to do this to get to the object to the right of the Sequence tag
$sequence = $clone->Sequence->right
You now only have to do this:
$sequence = $clone->Sequence
2. Removed some uninitialized variable warnings from Ace::Sequence
1.60 11/01/99
1. Fixed suspended giface processes when using iterators.
2. Added explicit close() method.
1.59 9/8/99
1. Patches to Ace::Local & Ace::Object from Tim Cutts
|
| Home | C. elegans | AcePerl | Gramene | Reactome | GMOD | Course | DAS | WWW |
Last modified: Wed Feb 27 02:19:52 EST 2002