2.8. Maintenance

EMBOSS is constantly being improved, new features added and bugs fixed. In addition new applications are added that you might want to make use of. This section describes how to keep up-to-date.

2.8.1. Using CVS to Update

If you are using the CVS (developers) version of EMBOSS, it's advisable to update your copy of EMBOSS regularly. To update, first move to the directory you wish to update. To update the AJAX and NUCLEUS libraries and the applications in one go, this would be the second emboss directory. For example, if you checked-out EMBOSS in the directory /home/auser then you would type:

cd /home/auser/emboss/emboss

Then type the following commands (the -d and -P flags are case-sensitive):

cvs -d :pserver:cvs@cvs.open-bio.org:/home/repository/emboss login
cvs -d :pserver:cvs@cvs.open-bio.org:/home/repository/emboss update -d
cvs -d :pserver:cvs@cvs.open-bio.org:/home/repository/emboss update -P
cvs -d :pserver:cvs@cvs.open-bio.org:/home/repository/emboss logout

The first (login) command logs you on to the CVS server; you will be prompted for a password which is cvs. The second (update -d) ensures you'll pick up any new directory structures that have been added. The third (update -P) will delete any obsolete files or directory structures that have been removed. The last command (logout) logs you off the server.

Caution

Bear in mind that if you have edited any files then your edits will be merged into the version available in CVS. Therefore if you wish to conserve your edits in their original form, you should copy your files to a safe place first.

2.8.2. Bug-fix Replacement Files

As bugs are reported and fixed, files are provided to fix the latest stable distribution. Descriptions of the bug-fixes are available for download from:

ftp://emboss.open-bio.org/pub/EMBOSS/fixes/README.fixes

An excerpt is shown below:

The files in this directory are bugfix replacements for files in
the EMBOSS-6.4.0 distribution. Just drop the replacement files in
the location shown and redo the 'make install.'

Fix 1. EMBOSS-6.4.0/emboss/jaspscan.c
       EMBOSS-6.4.0/nucleus/embprop.c

26 Aug 2011: jaspscan can now scan multiple sequences.
             "digest -allpartials" now reports all C-term fragments

The bug-fix files themselves can be downloaded from:

ftp://emboss.open-bio.org/pub/EMBOSS/fixes/

Up to higher level directory
File: README.fixes      1 KB    08/27/2011      07:32:00 AM
File: embprop.c        31 KB    08/27/2011      07:32:00 AM
File: jaspscan.c       31 KB    08/27/2011      07:32:00 AM
Directory: patches              08/27/2011      07:33:00 AM

To apply a fix, just drop the replacement files into the location indicated in the file README.fixes and, for fixes to source code (.c or .h files), recompile EMBOSS using make or make install (see Section 2.7, “Installation”).

2.8.3. Patch Files

Standard UNIX 'patch' files for EMBOSS are provided and may be used to update the stable EMBOSS distribution with all the available fixes:

ftp://emboss.open-bio.org/pub/EMBOSS/fixes/patches/

Patchfile names are of the format patch-1-X.gz where X represents the last fix incorporated: so a file called patch-1-10.gz will incorporate fixes from Fix 1 to Fix 10 as given in the list of bug-fix replacement files.

Up to higher level directory
File: README.patch       1 KB  27/08/2011   10:21:00
File: patch-1-19.gz     25 KB  08/11/2011   21:23:00
Directory: nonbinary           08/27/2011   05:31:00
Directory: old                 08/27/2011   08:52:00

To update the base EMBOSS installation (where x.y.z is the version) you will need to run the UNIX commands gunzip, tar and patch:

  1. Download a fresh EMBOSS-x.y.z.tar.gz and unpack it with:

    gunzip EMBOSS-x.y.z.tar.gz
    tar -xvf EMBOSS-x.y.z.tar
  2. Download the required patch file (into /somewhere/ in this example).

  3. Type cd EMBOSS-x.y.z

  4. Type gunzip -c /somewhere/patch-1-X.gz | patch -p1

or

  1. Steps 1-3 as above

  2. Type gunzip /somewhere/patch-1-X.gz

  3. Type patch -p1 < /somewhere/patch-1-X

then configure and compile EMBOSS as normal (see Section 2.7, “Installation”).

On rare occasions a patch will be provided that contains binary information. Some operating systems (e.g. FreeBSD) do not support binary patches, and will report that the patch file is malformed. Under such circumstances a patch is also provided in the nonbinary subdirectory and you should follow the instructions there.

2.8.4. Automated Installation of EMBOSS and EMBASSY

Some EMBOSS users have written scripts to help with automatically updating EMBOSS. The following script was contributed by a user from their IRIX operating system but tailoring it to other operating systems would not be hard. We reproduce it for your inspiration with no guarantees of it working properly.

The script can be run manually (it should probably be run using source rather than executed directly) or can be launched with cron. It assumes you are installing EMBOSS outside the source directory and have write permissions to do so. EMBOSS will update EMBOSS distributed files but will not alter or overwrite your own datafiles or your emboss.default.

The script can be downloaded from http://emboss.open-bio.org/downloads/embossupdate.sh and is shown below:

    # This script should be sourced, not run.
# EMBOSS UPDATE.
# it assumes \$packages_dir/EMBOSS is a symbolic link to 
# $mirror_dir/emboss.open-bio.org/pub/EMBOSS
#

#site specific variables: season according to taste..

set mirror_dir=('/ftp/mirrors')
set packages_dir=('/site/newprog')
set emboss_config_options=\
('--prefix=/site/prog/emboss --with-pngdriver=/site/lib')

# Now the script proper

set oldpwd=`pwd`

cd $mirror_dir
echo 'updating EMBOSS'
if ( `wget -m 'ftp://emboss.open-bio.org/pub/EMBOSS' |&amp; \
  tail -1 | awk '/^Downloaded:/{print $5}'` != "0" ) then 

    cd ${packages_dir}/EMBOSS
    echo 'new EMBOSS programs found .. installing'
    set latest_emboss=`ls -t EMBOSS*|head -1`

    cd $packages_dir
    rm -Rf EMBOSS-*
    tar zxf EMBOSS/\$latest_emboss
    set emboss_dir=`ls -dt EMBOSS-*[^z]|head -1`

#the next line is necessary on our system but may not be for yours.
    setenv LD_LIBRARYN32_PATH /site/lib

    cd $emboss_dir

# If you have any site specific changes to the source code 
# that you want to include, copy them in here

    ./configure \$emboss_config_options &amp;&amp;\
    make &amp;&amp; \
    make install

#Now unpack and build EMBASSY

    mkdir embassy
    cd embassy

#Unpack and build each package one at a time

    foreach embassadir ( `ls ../../EMBOSS/*gz |grep -v E
MBOSS-` )

	tar zxf $embassadir
	set embassadir_arch=$embassadir:t
	set embassadir_root=$embassadir_arch:r

	cd $embassadir_root:r
	./configure  $emboss_config_options &amp;&amp;\
	make &amp;&amp; \
	make install

	cd ..
    end
else
    echo 'No new version of EMBOSS available'
endif

cd $oldpwd

2.8.5. Automated Database Updating

In the same way, scripts can be written to automatically update the biological databases. An example is given here for REBASE. As all the parameters for EMBOSS programs can be specified on the command line it is a simple matter to include index generation in your nightly update scripts.

The script below will look for a new version of REBASE and install it in EMBOSS using rebaseextract.

The script can be downloaded from http://emboss.open-bio.org/downloads/databaseupdate.sh and is shown below:

    # This script should be sourced, not run.
# REBASE UPDATE. Should be run just after the beginning of the month.
set mirrors_dir=('/ftp/mirrors')
set oldpwd=`pwd`

cd $mirrors_dir

if ( ` wget -m 'ftp://ftp.ebi.ac.uk/pub/databases/rebase/*' |&amp; \
  tail -1 | awk '/^Downloaded:/{print $5}'` != "0" ) then 
	cd ftp.ebi.ac.uk/pub/databases/rebase
	cp `ls -t withrefm.*.Z|head -1` withrefm.Z
	cp `ls -t proto.*.Z|head -1` proto.Z
	uncompress withrefm.Z
        uncompress proto.Z
	rebaseextract \
  ${mirrors_dir}/ftp.ebi.ac.uk/pub/databases/rebase/withrefm \
  ${mirrors_dir}/ftp.ebi.ac.uk/pub/databases/rebase/proto 
	rm -f withrefm
	rm -f proto
endif 

cd $oldpwd