Jalview Source Documentation

# Jalview Source Documentation

The file structure of the Jalview Source tree is as follows:

- README - basic info for getting started with the source tree.
- LICENCE - the GPL Licence
- RELEASE - contains the name of the tag for the latest 'official' Jalview release associated with the source.
- build.xml - ant build for jalview - the 'help' task gives information about each task, and there's lots of comments too.
- src - all jalview source packages, including any specially adapted code from other GPL programs. See Jalview Development for more info.
- lib - All the libraries that Jalview depends on. Every jar file in this directory should be added to the classpath when building or running the jalview application.
- appletlib - Any libraries that are specifically required for compiling and/or running the jalviewLite applet (e.g. an applet build of Jmol).
- help - the jalview JavaHelp documents
  - help.hs - the main index page. This is generated by the jhindexer program run by the 'buildindices' task in build.xml
  - help.jhm - helpTOC map - an XML document listing simple names for each html page that is linked to in the help contents structure.
  - helpTOC.xml - the table of contents presented to the user when the help is opened.
  - icons - widgets needed for the help system GUI
  - html - the help documentation. It loosely follows the following structure:
    - calculations - pages concerning the calculations menu
    - webServices - pages describing web services
    - colourSchemes - the ways amino acids can be coloured and the user interface for defining them
    - editing - mechanisms and interfaces for editing alignments
    - features - used to be the sequence features documentation, but now contains all sorts of jalview 'features'.
    - io - getting data in and out of jalview
    - menus - all the menus in Jalview (and the applet)
    - misc - useful info
    - By convention, we try to maintain the whatsNew.html document with each release and complete the releases.html matrix to detail what has changed from one version to another.
    - keys.html contains all the keystrokes in Jalview - please keep this up to date.
- resources - files needed at run-time for jalview execution.
  - images - icons used by jalview
  - log4j and commons-logging.properties - configure default appenders and logging for Jalview, castor.
  - embl_mapping.xml - castor mapping file for the EMBL XML Schema.
  .
  - uniprot_mapping.xml - castor mapping file for the Uniprot XML Schema.
- schemas - XML schema definitions used or understood by Jalview.
  Jalview uses castor to bind java to XML - either using mapping files hand-crafted from a schema in this directory, or from java objects generated from the schema and an associated set of properties.
  See the castorbinding task in the ant build.xml file for more info.
  - Jalview Project Archive XML Version 1
    vamsasJvV1.xsd
    jalviewJvV1.xsd
    jalview.nodesc.properties - sourcegenerator properties file
  - jalview Project Archive XML Version 2
    Jalview works out which version a project is by first trying to parse XML with these schema definitions, and then if there are problems, falls back to the V1 schema classes.
    - vamsas.xsd
      jalview.xsd
      jalview.properties - sourcegenerator properties file
  - JalviewUserColours.xsd is used by both V1 and V2 project XML definitions. This schema is also used to store user colour schemes externally from the project file.
- utils - various resources needed when building or deploying jalview.
  - InstallAnywhere
    - Jalview.iap_xml is the InstallAnywhere XML project used to create the Jalview InstallAnywhere distribution.
    - All the other files are bundled into this for installer displays. The README_IA appears in the installation directory.
  - jalopy
    This is a legacy directory - we intended to use jalopy for standardising the jalview source formatting, but found it had a number of bugs.
  - axis-ant.jar - tasks for constructing client skeletons from WSDL documents.
  - roxes-ant-tasks-1.2-2004-01-30.jar - conditionals and other useful ant tasks.
  - castor-*-codegen.jar and castor-*-anttask.jar - codegenerator task and library for regenerating the Java classes from schemas. It is important to update these and rebuild the source if the version of castor that Jalview uses is updated.
  - gff2annot.pl - useful script to translate gff to jalview features file format - although its not needed since Jalview can parse GFF natively (normally at least).
  - jhall.jar, jhindexer.jar - the java help system and indexer code to build the jalview help in the help directory.
  - proguard.jar - obfuscator used when creating jalviewApplet.jar. See the build.xml file and the building jalview documentation.
- installAnywhere - where the installAnywhere build is generated
- keys - you might not have this - see building for info on how to create it.
- dist - where the Jars and JNLP file for the java webstart distribution is generated, and where a copy of the examples directory is created complete with jalviewApplet.jar and the contents of appletlib/*.jar.
- examples - a set of example jalview projects and web pages demonstrating the jalviewLite applet. This is essentially mirrors the www.jalview.org/examples directory on Jalview's website.
- nbbuild.xml - custom config used by the vanilla netbeans project in nbproject
- nbproject - vanilla netbeans project
- JalviewApplet.jpx, JalviewX.jpx - old JBuilder project files
- .project - eclipse .project definition