This document gives a basic overview of top-level packages in BEAST and their expected dependencies.

The BEAST software is organized hierarchically into java packages.
All BEAST classes exist in packages under the dr package.
Within this namespace, there are about a dozen top-level packages:

dr.app.* 
--------
Application-specific code, including main class for BEAST, BEAUti and all application specific GUI code.

dr.evolution.* 
--------------
Library of classes and routines describing all the basic objects needed in import, export and manipulation of molecular evolution data structures.
No reference to XML parsing or statistical inference procedures like MCMC.
Classes in these packages do not depend on classes in dr.inference.*, dr.evomodel.*, dr.evomodelxml or dr.geo.*.

dr.evomodel.*
-------------
Library of classes for MCMC inference on molecular evolutionary data.
These packages primarily bring together the dr.evolution.* and dr.inference.* packages.

dr.evomodelxml 
--------------
Contains XMLObjectParsers for objects in dr.evomodel.* packages.

dr.evoxml 
---------
Contains XMLObjectParsers for objects in dr.evolution.* packages.

dr.geo.* 
--------
Contains classes for geographical modeling.

dr.gui.* 
--------
Contains classes for generic GUI objects and tasks.
Classes in these packages do not depend on classes in dr.app.*, dr.inference.*, dr.evomodel.*, dr.evomodelxml or dr.geo.*.

dr.inference.* 
--------------
Contains classes for statistical inference, without specific reference to probablistic models of molecular evolution.
Classes in these packages do not depend on classes in dr.app.*, dr.evolution.*, dr.evomodel.*, dr.evomodelxml or dr.geo.*.

dr.java16compat
---------------
Provides support for java 1.6 functionality.
Should be moved to dr.util and eventually obsoleted.

dr.math.* 
---------
Basic numerical computing classes including mathematical functions and optimization algorithms.
Classes in this package do not depend on classes in any other packages in BEAST.

dr.matrix 
---------
Basic Matrix and Vector support.
Classes in this package do not depend on classes in any other packages in BEAST.

dr.stats 
--------
A couple of basic statistics classes. Depends only on dr.util package.

dr.util
-------
Basic utility classes. Depends on no other packages.

dr.xml
------
Basic XML parsing classes, without specific reference to molecular evolution.
Depends only on dr.util package.