Phenex is an application for annotating character matrix files with ontology terms. Character states can be annotated using the Entity-Quality syntax for ontologically describing phenotypes. In addition, taxon entries can be annotated with identifiers from a taxonomy ontology. Phenex saves ontology annotations alongside traditional character matrix data using the new NeXML format standard for evolutionary data. Phenex builds on Phenote and OBO-Edit from the OBO project. Jim Balhoff is the lead developer of Phenex.

Download & Installation

NOTE: we are currently testing a Java web start deployment. The installation instructions below will likely be superseded by this new method. Try it here:http://phenoscape.github.io/Phenex/

System Requirements

Phenex runs on any system with Java 5 or newer (Java 5 is also called version 1.5). Java 5 comes pre-installed on Mac OS X 10.4 and later. Phenex can't be used on older releases of Mac OS X (check your version of Mac OS X by selecting "About This Mac" under the Apple menu). For Windows, you can check your version of Java, and install if necessary, at http://www.java.com/. Phenex runs on Linux - just make sure you have Java 5 installed.

Direct downloads for Phenex 1.11

Installation on Mac OS X

Double-click the downloaded file to unzip it. Copy Phenex.app anywhere you would like to install it. Double-click Phenex.app to launch the application.

Installation on Windows

On Windows you must be sure to extract the Phenex folder from the zip archive - Phenex will not function properly if run from within the zip archive. Right-click on the downloaded zip file and choose "Extract All...". Use the Extraction Wizard to copy Phenex to a folder on your desktop. You can then move the Phenex folder anywhere you like. Within the Phenex folder, double-click the file Phenex.bat to launch the application.

Installation on Linux/Unix

Unzip the downloaded archive using a command such as tar zxvf phenex-1.0-unix.tgz. Change directories into the Phenex folder and run the shell script to launch Phenex. You will need to have Java in your executable PATH.

The Phenex source includes both an Eclipse project (used for most active development) and an Ant build file (used for making releases). You can browse Phenex source code on the web.

Running Phenex

After launching Phenex, Java can sometimes be a little slow to start up. If you're running Java 6 or later, you should see a splash screen image shortly after launching. This is followed by a panel informing you that Phenex is checking for ontology updates. If you have not run Phenex before, your computer needs to be online in order for Phenex to download the required ontologies. If you have run Phenex before, Phenex will check for the availability of a newer version of each ontology and download it if necessary. It is okay to work offline if Phenex has previously had a chance to download the ontologies. Phenex performs a check for ontology updates each time it is launched.

Reporting Bugs and Feature Requests

Report any bugs and make feature requests using the Phenex issue tracker. You will need to log in with a GitHub account to submit an issue (just create an account if you don't already have one).

Documentation

Ontology configuration

By default, Phenex comes pre-configured with the ontologies used for the Phenoscape project, but it can be configured to load terms from any OBO ontology from the web or a local file. Configuration of ontologies in Phenex has two components: (1) adding term sources - URLs representing OBO files; and (2) specifying the set of terms which should be available within each kind of entry field - an entry field can allow terms from a subset of a given ontology, or from more than one ontology.

Term sources

To edit the list of terms sources, open the Ontology Sources panel by selecting View > Config > Ontology Sources from the menu. Add a new source by pressing the '+' button. Enter an HTTP or local file URL in the URL column, and an optional label of your choice in the Label column. Press "Apply" to save your list of ontology sources. You will need to relaunch Phenex in order for it to download the given files and load all the terms into its ontology session.

Entry field filters

The set of terms available in a given entry field are determined by term filters. Term filters are just saved search specifications which can be created using the Search Panel. To apply a term filter to a particular type of entry field, save it in one of the standard locations (below).

Creating a term filter

Open the Search Panel from View > Ontology > Search Panel. Configure the search to specify the needed terms - you can test the result by performing the search with the Search button. Save the filter by pressing the disk icon. An example of a term filter used for the entity field in the Phenoscape configuration is shown here.

Configuring entry fields

To configure a particular entry field, place a filter file with the appropriate name in the Filters folder within the Phenex settings folder. You may need to create the Filters folder. You will need to relaunch Phenex for the new filters to take effect. The following types of entry fields are available:

Taxa

<Phenex settings folder>/Filters/taxa.xml

Used in the Taxa panel: Valid Taxon column

Museum collections

<Phenex settings folder>/Filters/museums.xml

Used in the Specimens panel: Collection column

Entities

<Phenex settings folder>/Filters/entities.xml

Used in the Phenotypes panel: Entity column, Related Entity column

Qualities

<Phenex settings folder>/Filters/qualities.xml

Used in the Phenotypes panel: Quality column

Units

<Phenex settings folder>/Filters/units.xml

Used in the Phenotypes panel: Unit column

Relations

<Phenex settings folder>/Filters/relations.xml

Specifies the relations available when creating post-compositions

Locating the Phenex settings folder

The Phenex settings folder contains cached copies of downloaded ontology files, entry field filter files, and other settings files. Its location is dependent on the platform on which you're running Phenex.

Mac OS X:<user's home>/Library/Application Support/Phenex

In Mac OS 10.7+, this folder is hidden but can be made visible by going to Finder> Go > Go to Folder, and typing in "~/Library"

Windows: C:\Documents and Settings\<user's name>\Phenex

Unix:<user's home>/.phenex

Importing data from a NEXUS file

TODO, but briefly, use the NeXML plugin within Mesquite to export a NeXML file which Phenex can open.

Entering polymorphic or uncertain state values

The Phenex matrix editor can handle entry of polymorphic or uncertain state values within cells. In order to enter multiple states in a single cell,you must use the matrix "quick editor". Just beneath the matrix view, there is a checkbox titled "Use quick editor". After enabling this setting, when you click to edit a cell, instead of popping up a states menu, the cell will become an editable text field, which operates very much like the matrix cell editor in Mesquite. Here you can simply type the symbol of the state you want to enter. If you want to enter a polymorphism of states 0 and 1, simply enter "0&1" (no spaces). For an uncertainty, use a slash: "0/1".

Consistency Review panel

Phenex includes a Consistency Review panel which reports problematic or missing annotations. The consistency issues currently evaluated are:

Unannotated state.

Empty entity field.

Empty quality field.

Post-composition consisting of more than one differentia (may be okay).

Relational quality used without a related entity.

Related entity entered without a relational quality.

Biological process entity not used with a process quality.

Qualities descending from different attributes used in states for a given character.

Collaboration via file change detection and autosave

Phenex includes two features that are intended to facilitate multiple curators editing shared files (such as in Dropbox).

File change detection and reload: If a file changes on disk while it is being edited by Phenex, Phenex will detect the change and alert the user. The user will be given the opportunity to load the most current version of the file, so that conflicting edits are not produced. If the open file is in an edited, unsaved state, the unsaved edits will need to be discarded before reloading.

Autosave: To make it unlikely that Phenex will be holding unsaved edits at the time a file changes via Dropbox, an autosave feature is provided that immediately writes every edit to disk. This must be enabled via the menu command File > Enable Autosave. Currently the setting is not persistent; it needs to be turned on each time Phenex is launched.

Ontology Request Broker (ORB)

During the course of curation, a term may be needed which isn't available in a given ontology. Using ORB, the curator can request a provisional term from the Bioportal provisional term service.

Select ORB > Request New Term... and fill out the request dialog.

A provisional term with a temporary ID and the requested name will immediately be added to the Phenex ontology session. This term will now be available within all ontology autocomplete fields in Phenex. Provisional terms are displayed in purple within data fields.

If the provisional term is assigned a permanent ID via the provisional term management interface (not part of Phenex), when Phenex next loads any data file containing that term, it will auto-migrate data using the provisional ID to the permanent ID.

See the Ontology Request Broker documentation for more information on the overall workflow for handling provisional terms.

Troubleshooting Problems

Removing Corrupted Ontology Files

Local copies of ontology files can become corrupted, causing Phenex to display a warning about "dangling" terms on start-up. Note that the warning about danglers can also indicate a valid ontology change related to merging of terms from a recent ontology update.

To remove local copies of ontologies from your Phenex directory, delete all files within the “Ontology Cache” folder on your computer. This folder can be found within the Phenex settings folder.

Phenex will then download new copies of the ontology files on startup.