Skip to content
Demonstration code for paper submission to the Bio-ontologies SIG Phenotype Day at ISMB 2014.
Shell Scala
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


Demonstration code for paper submission to the Bio-ontologies SIG Phenotype Day at ISMB 2014:

Presence-absence reasoning for evolutionary phenotypes
James P. Balhoff, T. Alexander Dececchi, Paula M. Mabee, and Hilmar Lapp

The paper explains the reasoning process used to infer presence and absence of anatomical structures within the Phenoscape Knowledgebase. The process involves generation and addition of supplemental axioms, as well as reasoning workarounds for classifying absences using the ELK reasoner.

As an application example the paper describes automated generation of a character matrix of presence/absence information from an example KB composed of data from a single study.

The code in this project implements a simple workflow which builds the Knowledgebase, performs the presence-absence matrix query, and prints some summary information.


You can run the example by downloading and executing the script This requires a Unix environment (e.g. Mac OS X or Linux) with Java 7 and a large amount of memory (we tested successfully with 30 GB).

By default, this script downloads a pre-built and pre-packaged Java jar which includes all dependencies, and it will run with the dataset reported in the paper.

The defaults can be changed by passing command line argument to the script. Use --dataset=<dataset-URL> to use another dataset (as URL to a NeXML-formatted file), or provide it as the last command line argument. The Phenoscape data repository on Github contains many more NeXML files (.xml) with EQ phenotype annotations for published matrices. To change the default heap memory allocation for Java (30G) use --memory=<mem>.

Running from source

To trigger a build from source instead of with the prebuilt JAR, pass --from-source to on the command line. This requires a Maven installation, and checking out the source code using Git:

$ git clone

You then run --from-source from within the source directory. This will generate two jar files within the target folder (which will be created): one containing code for this project, the other ("one-jar") containing this code as well as all dependencies. The build process will download these dependencies, so an active internet connection is required.

You can’t perform that action at this time.