Guide to setting up a CORBA DNA sequence trace server.
=====================================================

The whole trace viewer is a client/server system built on the
OMG (http:/www.omg.org/) CORBA Object request broker system.
If you do not want a large complex client/server system, look
at the end of the README for a simple local file system
application that obviates the need for any CORBA and lets
you view your own traces in your own directories.

For the full system, you will need access to a CORBA ORB development
system to compile the small Interface Definition Language (IDL)
file which specifies the interface between client and server.
I used Object Orient Concepts Omnibroker ORB tools which are
free to academics (http:/www.ooc.com/) and have a generally
free run-time license. So your first step is to download the
latest versions of ORBacus and make sure you have a
and JDK1.1 compiler. Alternatively, Java only ORBs are free
from IONA, included in JDK1.2 and free for testing from
Visigenic. You may have to alter the server code slightly
to work with these other vendor's ORBs.

The paper reference is:
Parsons, J.D., Buehler E., and Hillier, L., (1999),
DNA Sequence Chromatogram Browsing Using JAVA and CORBA,
Genome Res., 9, 277-281

Full Client/Server CORBA trace viewing system
=============================================
Command lines may only work on csh based shells

1) Compile and install your Java1.1 and ORB tools

2) Compile the idl file to generate the server skeleton and client stubs
	(with OmniBroker, it is jidl *.idl)

3) Compile client/*.java and server/*.java
	(javac -O -d . */*.java)

4) Make a jar from all your newly compiled classes 
	(jar -cvf CorbaChromatogramApplet.jar `find embl -name '*'.class`)

5) Install the jar files and the html files somewhere on your webserver
	(including links to the ORB classes (OB.jar  for Omnibroker)
	if you want to support less capable browsers like Microsoft's
	Internet Explorer and a link to the naming service CosNaming.jar)

6) Adapt the server configuration file to the data at your site.

7) Start the C++ CORBA naming service (if not running already)
	(both C++ and Java naming services can use a defined port to allow persistence)
	My simplest example:
	( nameserv --ior > ~/public_html/IORs/naming.ior ) > & /dev/null &
7.5) or Java naming service (if not already running) be sure to put
	all the OB*.jar files individually and explicitly on your CLASSPATH first
	(java com.ooc.CosNaming.Server -i -OAport 10000 > naming.ior) >& /dev/null &

8) Start the trace server (may need customisation to work with the
	filesystem hierarchy at your site)
	Needs access to the naming service through its stringified IOR (eg.the file naming.ior)
	(Old version: Be careful where you write the object reference file to ensure
	that it is visible to applet which expects ./CorbaTraceServer.ior)

My example:
env CLASSPATH=${CLASSPATH}:/homes/jparsons/progs/corba/traces/CorbaChromatogramApplet.jar java embl.ebi.trace.TraceServer /homes/jparsons/progs/corba/traces/traces/TraceServer.config -ORBnaming `cat ~/public_html/IORs/naming.ior` > & /dev/null &

9) Try connecting to the html pages and running the applet/application

10) If everything fails, use javadoc to generate the documentation and
then contact me at jparsons@ebi.ac.uk. If you use a different naming scheme,
or file hierarchy organization from the default, you will have to extend the
Java classes to do the required computations. See the documentation for more
information.


Simple non-CORBA trace viewer
=============================

You need to compile everything except CORBA files so I use:

1) javac -d . -O `find . -name '*'.java -print | grep -v Corba`

but you could just type all the Java filenames in separately
after the -O flag. To run it, you need a gzip-compressed trace
file visible in the top directory and your CLASSPATH needs to
include ".", the current directory.

4) Java embl.ebi.trace.TraceView trace_file 

Jeremy D. Parsons

/*************************************************************************

Copyright (c) 1998, 1999 European Bioinformatics Institute, Cambridge, UK.
and Copyright (c) 1997 Eugen Buehler buehler@agave.humgen.upenn.edu


You are hereby granted permission to use, copy, modify, and distribute 
this software and its documentation for any purpose and without fee,
provided that the above copyright notices appear in all copies and that 
both the above copyright notices and this permission notice appear in 
supporting documentation, and that neither the name of the European 
Molecular Biology Laboratory nor European Bioinformatics Institute are 
used in advertising or publicity pertaining to distribution of the 
software without specific written prior permission. You HEREBY AGREE 
THAT SINCE THE FOREGOING LICENCE IS GRANTED WITHOUT CHARGE, IT IS 
REASONABLE THAT THIS SOFTWARE IS PROVIDED "AS IS" AND THAT THE 
EUROPEAN MOLECULAR BIOLOGY LABORATORY AND EUROPEAN BIOINFORMATICS 
INSTITUTE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, WITH REGARD TO 
THIS SOFTWARE, INCLUDING WITHOUT LIMITATION ALL IMPLIED WARRANTIES OF 
SATISFACTORY QUALITY OR FITNESS FOR A PARTICULAR PURPOSE, AND IN NO 
EVENT SHALL THE EUROPEAN MOLECULAR BIOLOGY LABORATORY OR EUROPEAN 
BIOINFORMATICS INSTITUTE BE LIABLE FOR ANY SPECIAL, INDIRECT OR 
CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF 
USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, TORT 
(INCLUDING NEGLIGENCE) OR STRICT LIABILITY, ARISING OUT OF OR IN 
CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

*************************************************************************/

VERSION INFORMATION
This is version 1.1
- Removed addition of path to current file when browsing local files
- Added an amplitude controller scrollbar
- Fixed other little errors ! 
