IUBio GIL .. BIOSCI/Bionet News .. Biosequences .. Software .. FTP

icon flyNapp

a FlyBase network application

version 0.7e, alpha
October 1997

written by don gilbert
email: flynapp@bio.indiana.edu

FlyNapp is an application for viewing and searching Drosophila data through FlyBase services. This is a preliminary version. This document lacks many details of the application functions. FlyNapp is available at

Please read the help document and "readme" file for details on how to fetch and install the application on your computer.

Developers will find the source code in the iubio:/molbio/java/source folders. These files are not needed for running the program. FlyNapp is built on a Java application framework for biosciences, which may make it easier to develop new applications.


Feedback wanted
Fetching and Installing
Installing MacOS, MSWindows, Unix and others
Updates and source Internet links
Front window, Opening files, Saving documents
Browse window, Query dialog, Vocabulary, Gene map, Gene map controls, Stock manager, Body Parts browser, Parts map editor

Feedback wanted

Here are a few questions you can provide feedback on --

Which current functions should get the most development effort to make them usable by the public?
The query dialog, the body parts browser, and the gene map seem to be most useful just now.

Are there functions that can be added that would aid flybase's editors and curators?

Which current application bugs are most annoying?

There are system-specific bugs, e.g., parts editor on Xwindows. Let me know which functions you would use that are failing now, and on what platform -- though at this stage it will be hard for you to tell if something just hasn't been written in yet, or if it is supposed to work but is failing due to technical flaws.

The app name may well change -- what is a better one? 'Fly Nap' is a commercial fly knock-out chemical; will that confuse anyone? I hope the nap part won't prove a forecast; one of the reasons behind this app is to provide faster data access by splitting local and network functions smartly. The idea is to store frequently used, primary bits of data locally that are a drag to fetch repeatedly over networks, and to update this data from the network host as needed to keep it current.

This program is built on an application framework written in Java that I am using for various other programs as well (SeqPup, Phylodendron, loopDloop, others planned). It shares about 60% or more common code w/ other apps. I think the framework is a useful one for rapid application development, and would be happy to help any others in flybase (or out) use it for developing other tools.

Fetching and Installing

Perhaps the most annoying problem to me with this software is the complexity of fetching and installing it. If you use Netscape or other Java enabled Internet browsers, you can use a Java applet just by clicking your way to a WWW page that has one embedded. This software is more complex than is suitable for an applet; for one thing it reads and writes files on your computer like any average program, but which applets cannot yet do. I believe that over the coming year, advances in Java technology will make this fetch/install problem all but disappear.


The current state of Java applications on computer systems means that you will need to fetch a Java runtime system as well as the files for this specific application. If you have other Java applications on your computer (not applets that run within an http browser like Netscape), you may already have the Java runtime system needed.

FlyNapp is available over the Internet at


The essential files and folders that make up this application are
For Macintosh and MSWindows users, you will find a (large) package that includes all files needed for this application and the Java runtime system. Though this runs to about 5 megabytes for the Macintosh version, the bulk of this code is the runtime system that may well be used for other Java applications.

Macintosh users will find these files in the archive file flynapp.hqx. MSWindows users will find program files in the archive file flynapp.zip. Unix and others will find just the program files in the archive file flynapp.tar.gz. You likely will need to fetch (see below) and install the Java runtime for your system. Newer operating systems (MacOS 8, Warp, Solaris 2.6) include java runtime systems; though you may want to update them to current versions.

As I've learned with other multi-platform applications that I make available to the bioscience community, there are difficulties involved in the time it takes me to update multiple archives for different computer systesm. The simplest way for me to distribute and update this software is to provide it as separate files, e.g., the pictures and documents and p-code files, and to update each one individually as needed. For example, I update this document after I've already produced some of the archive files. So I will also provide the most current version of this software in its un-archived form. You may find the most current versions by looking in the all systems/ folder. Within that, the folder called local/ has those items specific to each computer system. With a bit more programming effort, I hope to have the application do some of its own updating as needed (see below Updates).

This current release is based on the Java Developer Kit 1.0.2. To run it, you should have installed the runtime compatible with JKD1.0.2. This can be found through Javasoft, and at various mirror sites around the world.

For Java runtimes for various operating systems, see

A newer Java version, 1.1, became available in 1997. I will provide an update to this program with this new Java version, perhaps by the start of 1998. For now, Java version 1.0.2/1.0.3 runtimes are needed to run the application.


The program is installed as follows. On all systems, the following files specific to the application should be in one folder:
fb/ folder

Then the Java runtime system accessory files need to be placed as per your computer system.

Installing for MacOS

There are various Java runtime systems available for Macintosh. For development, I use one from Metrowerks. But for general use, the Macintosh Runtime Java (MRJ) produced by Apple Computer is the easiest, and in many ways the best. It still has some annoying bugs, as do all Java runtime systems.

1. Keep in the same folder whereever you prefer, the application flyNapp, the flyNapp.jcode Java class archive, and the fb folder.

2. Use the MRJ installer from Apple Computer to install this Java runtime software. If you have MacOS 8, this is included as part of the OS. However, at the first release of MacOS 8, the MRJ included is an early, slower version. You should upgrade to the MRJ 1.5 release.

3. Put the contents of "->System/Extensions" into System Folder:Extensions:

DClap-MRJ-68K.shlb (for 68K macs)
DClap-MRJ-PPC.shlb (for PowerPC macs)
These extensions enable the link from this app to Netscape and other Internet software.

4.Install the Internet Config application, if you don't have it. MacOS 8 includes this program. This free, widely used program enables links among Internet aware applications. This application uses it to call others like Netscape to open network links and the help document.

Installing for MSWindows

The file names used are long file names. It has only been tested with MSWin32 (Win95/NT), and may not work with Win3. When you unzip the archive file, use a current unzipper that preserves long file names.

1. Keep in the same folder whereever you prefer, the program batch file FLYNAPP.BAT, the flyNapp.jcode Java class archive, and the fb folder.

2. Install a Java Runtime system for MS Windows. Install it in a standard location, which will be entered in the SEQPUP.BAT file. A recommended Java runtime is found at http://www.javasoft.com/products/jdk/1.0.2/installation-win32-x86.html You may want to install this in the same folder as you store SeqPup (and other java applications). Or you may want to install this in a general MSWindows folder, perhaps C:\WINDOWS\JAVA. I don't know of a prefered location yet on MS Window systems for Java runtime files. You will need to edit the batch file (step 3) to account for this location.

3. Edit the FLYNAPP.BAT file to make the path names match the file locations on your computer.

          set base=\temp\java
          set appclass=%BASE%\flynapp\flyNapp.jcode
          set java=%BASE%\java

These three lines should be matched to folders on your system. The base path locates Java runtime and the SeqPup data files. If you want, these can be in separate folders; in that case, remove the BASE specifier for appclass and java path settings.

The distribution zip archive containes application files in the path \TEMP\JAVA\flynapp\ and Java runtime files in the path \TEMP\JAVA\java\. If you unzip it with those names preserved, then you shoud be able to run the program from the batch file FLYNAPP.BAT.

For the application to link properly to Netscape or other Internet browser, you may need to edit the preferences file. You can do this from within the application; see the Options/Edit Framework ... Menu. Or you can edit the file dclap.ini which will be created in the \java\ folder. In either case, you want to enter the variable name user.openurl= then the full path to your browser to be sure that it works properly. This path may well be the same on your system as mine, which is as follows. Note the quote marks (due to space in name) and the double backslashes \\ which are required to insert one \.

user.openurl="C:\\Program Files\\Netscape\\Navigator\\Program\\netscape.exe"

If you use the Edit prefs menu, after editing close the window. You should be prompted to save changes; do so.

Installing for Unix and others

Besides the application files, you will need a Java runtime system for your operating system. Some of these are listed at http://www.javasoft.com/products/jdk/jdk ports.html.

For Sun Solaris computers (SPARC and Intel):

For IBM Warp on Intel, IBM AIX, and MS Windows 3.1 computers:

For DEC Digital Unix computers:

For various Linux on Intel systems:

For Silicon Graphics IRIX computers:
SGI has hidden their Java runtime version 1.0.2. Sorry.
contact SGI for more details at http://www.sgi.com/

Whatever runtime system you install, it must be called with the SeqPup.zip file. See the file flynapp which is a small shell script to do this on Unix. Edit that to suit your system needs.

You need to define the user.openurl= variable to find your Netscape or equivalent. You can do this from within the application; see the Options/Edit basic prefs... Menu. Or edit the file ~/.dclaprc directly to enter such a line. The variable line for my unix system is


Also, you might instead use a shell script (like the "netscape.sh" included). If you rename that to netscape, edit it to suit, and put in the folder with SeqPup.zip file, it may take the place of editing the preference file.

Currently Java 1.0.3 does not understand printing (a slight oversight due to the Xwindow history of Java). The current Print command just sends postscript of a drawing to the user.print file.


Program help is available from this document. Typically the program documentation that I write gets done last and doesn't receive the effort that it deserves (because typically I haven't enough time to finish the software either, which is written in my spare, unpaid time). The help that I can offer to individual questions may be very limited. But please do send your questions and comments by e-mail to the address "software@bio.indiana.edu", and these will be taken into account for future updates.

Updates and source Internet links

This software is testing use of Java network methods to offer easy access to software source and updates. There are two hyperlink "buttons" on the main splash-screen. These connect by Internet to the home archive for the software. The Updates button (on the "version" label) will check whether the software version you have is out-of-date.

Both of these options, and the help command, link through an accessory program for opening URLs (Internet universal resource locators). Typically this accessory will be Netscape or the like software. In order to use this accessory program properly, it must be configured on your computer.

For Macintosh users, this involves installing Internet Config, a small free program used by many other Internet applications. Internet Config must be installed on your system, and you need to configure it to specify Helpers for at least the following protocols: ftp, file, http, mailto.
These helpers may all be Netscape.

For Unix users, this involves setting the preference called "user.openurl" to the proper path to reach Netscape or other Internet applications. See also the small shell script that can be used to customize this function.

For MsWindows users, this also involves setting the preference called "user.openurl" to the proper path to reach Netscape or other Internet applications.


This program is designed to work as a standard application on your computer. It has a menu of primary commands, including File, Editing, Options and Windows.

Front window

The opening window, titled "About FlyNapp", includes short-cut hyperlink buttons. If you click on one of the icons...

If you click on the Help button, the help document (this) will be displayed (if configured properly). If you click on the source or version buttons, those Internet links will be opened (see below).

Opening files

Saving documents

The initial release supports Postscript and PICT output formats. It lacks a data format that would let you save and re-read the drawing, however. PICT format is a compact vector drawing format that many drawing applications will read and allow you to further edit the drawing. For PICT output on a Macintosh, the current release does not set the file type as PICT. See the accessory PICT-Typer Mac program to do this.

Lots more goes here...

Most of the functions of this application are under development and will change, or possibly disappear. New functions may be added, or the app may be split into separate apps.

browseBrowse window

This is a very simple interface to FlyBase network server; a quick way to get to the major flybase sections or do a simple query. I don't have any specific plans to further develop this tool.

queryQuery dialog

This is a prototype query that will allow better use of the flybase data fields, and provide users more explicit options on what kind of search can be done for what field. For instance, a date field would let users enter only dates; a controlled-vocabulary field would offer users the choice of appropriate terms, etc. The current query does nothing yet. The genes item is the closest to what I think the best final version would look be. This is not yet functional in large part because new server query software isn't ready. This query dialog is not tied to any specific server software (though the app internals will need to know the query handshake). We plan now to do the server end w/ SRS, but likewise Sybase, WAIS or whatever can be used.


This is a nearly current controlled vocabulary listing. It includes drop buttons to hide parts of hierarchy and search options. For the drop buttons, use shift-mouse to open/close all items under a hierarchy term. It is still awkward in its functioning. I hope evenutally it will be a way to make it easy for both users and fb editors and curators to look up terms. There is now a program tie from this list to the Parts map editor, so one can drag and drop a term selected here to a body part. There will eventually be a tie from here to a Query dialog for various searches of controlled vocab fields. Also in the back of my mind is that any queries for body parts terms should link in ways to both the vocabulary list and the body parts image browser to help users find what body part term they really mean to search for.

genemapGene map

This is a gene map display showing all mapped items from flybase genes, aberrations and clones data sections. It is basically the same as the version I wrote a year back (February 1996) and needs much updating. Eventually it will offer more user-customizing, printing & saving to picture files. Though now it reads local data (fb/maps), it will eventually use both local & network data checks - local for speed & caching; network for updating as needed.

mapcontrolsGene map controls

This is a dialog of controls for the gene map display. It may change substantially.

stockmgrStock manager

This item is too undeveloped yet to bear looking at. I hope it will develop into a simple but usable fly stock data manager for local labs, that will also have smart links to the flybase server for checking genotype & stock nomenclature.

bodypartsBody Parts browser

This is a way to see what Drosophila body parts are named. It is similar in concept to a hypertext browser (like Mosaic et.al or Apple's Hypercard). It displays images, in jpeg or gif formats, but not formatted text. The images have associated mapped regions on them (like the Mosaic style imagemaps). These mapped regions can have names that are displayed, and can link by a mouse click to some other image, a network URL, or a program action. The main "About FlyNapp" window is similarly one of these hypercard like images with links to program functions. The tool is designed in a flexible, easily extended fashion. One can add new images by linking to the primary or subsidiary image. Use the Parts map editor for this, although anything that produces NCSA Imagemap standard map files will work, with some hand-editting of the link text.

Parts map editor

has all the basic tools I think that you need, including a polygon tool, for defining shapes on an image and annotating them w/ names and network links. It has zoom, and is almost smart enough
to save any work you do (it prompts to save most of the time I hope :)

The current vocabulary list does have hierarchical drop-down tabs, but is a bit baulky/awkward still. You can however, select a cv term and drag/drop it onto a body part image selection to name that part.

I've recreated the images for flynapp from the Bryant group. These are now jpeg format, and I think they look better (less broken) than the gif format you saw a while back. I made them what I think is a good size for using this as a body part lookup (small enough to be quick to display, large enough to see parts), but feel free to substitute other pictures or sizes. The way the body image part of flynapp works now is that one primary image is known by name to the program (fb/body/partsmap.jgp). Any and all added images are linked to it using the parts editor of flynapp. That editor creates data files (e.g., fb/body/partsmap.jpg.map) that tell where to find new images, and what marked regions and names exist on an image.

As of 12Feb97 release, the XWindow version of parts map editor does not work, though the body parts browser does.

Send comments to us at archive@iubioarchive.bio.net