Some notes on the GEMS (Genetically Evolving Models in Science) project code.
The software for this project has been developed using Common Lisp, with some supporting analysis carried out in other systems.
The project code is organised into two packages:
- (require :gems)
-
provides the basic functionality. For convenience, the package is internally organised into sub-packages:
builder
,gems-logger
,gpstats
,mini-gp
andsyntax-tree
. It requiresalexandria
. - (require :gems/tk)
-
includes the basic functionality in
gems
, and adds support for constructing graphical interfaces. It requiresltk
andltk-plotchart
.
To get started:
-
Download and Install the software.
-
To get started, work through the "tutorial" examples in gems-examples along with the tutorial slides from the workshop.
-
Further examples are included, based on publications, and may be used to develop further models.
The GEMS software and associated documentation is open-source software licensed under The MIT Licence and available from https://codeberg.org/gems.
Download and Install
Details
Download and unzip the latest release.
Portacle |
If you are using portacle, then copy the folder into "portacle/projects". Remove any other "gems" folders. |
Standard ASDF |
Make the "src" folder available to the asdf system (depending on your installation and setup, this is done by copying or linking "src" to the appropriate folder: e.g. on Linux, "~/common-lisp/", or on Windows, "/Users/YOURNAME/common-lisp/"). |
For convenience, the "src" folder contains copies of required and optional libraries available separately from the project, but you may delete these if you have installed them separately:
-
alexandria
- useful utility functions -
confusion-matrix
- for some statistical operations -
ltk
- for writing graphical interfaces -
ltk-plotchart
- for plotting various graphs and charts
The "examples" and "operators" folders should be copied to where you want to use GEMS. The text version of these notes is available in the "documentation" folder.
To use GEMS/Tk, you need to install the Tcl/Tk environment and the tklib extension library. How to do this varies with operating system.
See tcltk binaries - distributions including tklib can be found here.
- on Linux/Mac OS X
-
The tk
wish
program is often already installed, but otherwise both tk and tklib can be obtained using your usual package manager.
For example, in Ubuntu:
> sudo apt install tk > sudo apt install tklib
- on Windows 10 64 bit
-
-
Download and install Active Tcl (you will be asked to create an account before downloading it).
-
Download and unzip tklib-0.7.zip. Double-click "installer.tcl" to install the library.
-
All source code is available at https://codeberg.org/gems/. Information on installing the GEMS system and its dependencies is available in the separate repositories.
In a REPL:
* (asdf:test-system :gems)
Software Tools
The project implementation:
-
uses SBCL as our primary Common Lisp platform
-
has a git repository
Lisp resources:
-
Common-Lisp.net, home of everything related to Lisp, especially libraries
-
Cookbook, useful snippets of Lisp code, especially see:
-
Files, file and directory handling through the built-in uiop library
-
-
Portacle, a Lisp IDE
-
Practical Common Lisp, by Peter Seibel, a free Lisp book
-
Reference, Common Lisp Hyperspec - the official Lisp reference
Links to selected libraries (some may need separate installation):
-
alexandria - utility library
-
confusion-matrix - for calculating experimental statistics like precision or f-measure
-
lhstats - general purpose statistics library
-
ltk-plotchart, used through LTk to create simple GUIs
-
uiop - built-in library, contains many useful utility functions