Roslin Bioinformatics - JEnsembl functionality in ArkMAP
The Biomart Web Services used by the original ArkMAP have been replaced by integration of the JEnsembl API. The current version of ArkMAP(JEnsembl), available as a Web Start download, is configured (using version 1.09 of the ensembl-config jar artifact) to connect to the current (release 62) datasources available at Ensembl or EnsemblGenomes, giving access to a wider range of Vertebrate, Plant, Fungi, Protist, Metazoan and Bacterial genomes than provided by Biomart web service.
In order to protect against possible database schema changes subsequent to Ensembl release 62, connection to future datasource release versions is prevented. The JEnsembl architecture allows for updating the ensembl-config artifact as new releases become available and any changes to the the mapping rules between release version, data schema, data queries and API objects are captured. However, the backwards compatibility of JEnsembl configuration would readily allow ArkMAP to be modified to connect to earlier known releases of Ensembl datasources (back to schema version 50), where schema to API mappings are already captured. In contrast the original ArkMAP(Biomart) application is vulnerable to any changes in the Biomart schema or web services, and can only provide data from a single current Ensembl vertebrates release.
The figures presented below capture a typical usage of ArkMAP(JEnsembl) to retrieve gene-annotated chromosome maps from Ensembl, and demonstrate use of comparative genomics functionality to retrieve gene orthologies and chromosomal regions of conserved synteny between species.
Code snips are shown to provide a flavour of the JEnsembl API usage:
ArkMAP application code is in grey;
JEnsembl API code is in black;
Figure 1: The refactored ArkMAP application uses the JEnsembl API to retrieve data from Ensembl (vertebrate) datasources or Ensembl Genomes datasources.

Figure 2: Any species discovered at the chosen datasource is available for analysis.

DBRegistry eRegistry
= new DBRegistry(DataSource.ENSEMBLDB);
Collection<DBSpecies> spp = ensRegistry.getSpecies();
DBSpecies cow = eRegistry.getSpeciesByAlias("cow");
Figure 3a, b: The gene map for an entire or partial chromosome is selected; gene maps downloaded from Ensembl datasources may be configured and zoomed like any other map in ArkMAP


DAChromosome chr1 = cow.getChromosomeByName("1");
List<DAGene> genes = chr1.getGenesOnRegion(1, 1000000);
EnsemblMap map = new EnsemblMap(chr1, 1, 1000000);
for (Mapping m : chr1.getMappings(FeatureType.gene)) {
map.addEnsemblMapping(m);
}
Figure 4a, b: Details for individual genes may be displayed, and orthologies within and between selected species discovered. This is facilitated by JEnsembl providing access to the 'compara' databases.


DAGene gene = mappingView.getMapping().getGene();
DBSpecies horse = eRegistry.getSpeciesByAlias("horse");
List<DAHomologyPairRelationship> homos
= gene.getHomologies(horse);
Figure 5: Again using JEnsembl access to the 'compara' data, any selected chromosome region may be searched for regions of conserved synteny in any available target species.

Coordinate coord
= new Coordinate(range[0].intValue(), range[1].intValue());
DBSpecies human = eRegistry.getSpeciesByAlias("human");
HashMap<DADNASequence, MappingSet> syntenies
= chr1.getRegionsOfConservedSynteny(coord, human);
for (DADNASequence seq : syntenies.keySet()) {
if (seq instanceof DAChromosome) {
Coordinate coords = syntenies.get(seq).getExtent();
EnsemblMap map = new EnsemblMap((DAChromosome) seq,
coords.getStart(), coords.getEnd());
maps.add(map);
}
}
Figure 6: The potential regions of conserved regions can be aligned in ArkMAP and re-orientated, displaying colour-coded orthology relationships.

Figure 7: Complex multiplexes alignments of regions of conserved synteny may be built up, allowing chromosomal evolution to be explored.

Figure 8: Drag-and-drop repositioning, rescaling and configurability of each map displayed in ArkMAP provides novel visualisation tool with which to explore these evolutionary patterns.


