Skip to content

Native Installation

Robert J. Gifford edited this page Nov 21, 2024 · 5 revisions

The native GLUE set up is much more complex than with Docker, but might be preferential in some circumstances. The Native installation offers more control over the various software packages GLUE uses. The GLUE installation may take up less disk space and some GLUE operations may be faster.


Supported operating systems

You can install native GLUE on MS Windows, Linux and Mac OSX.

If you are using Windows, you must also install Cygwin, which you can download from cygwin.org.


Core prerequisite: Java

Download and install Oracle Java 1.8.0 or later, from java.com.

Make sure you can run the correct version of the "java" program from the command line:

$ java -version java version "1.8.0_45" Java(TM) SE Runtime Environment (build 1.8.0_45-b14) Java HotSpot(TM) 64-Bit Server VM (build 25.45-b02, mixed mode)


Core prerequisite: MySQL

GLUE stores all its data in a relational database system: MySQL. Download and install MySQL 5.6 or later, from mysql.com.

The GLUE uses a specific named database within MySQL and accesses this with a specific username/password. So you would normally create a username/password and named database specifically for GLUE. Example set up:

  • MySQL username: gluetools
  • MySQL password: glue12345
  • Database name: GLUE_TOOLS

You can use the following MySQL commands to set this up:

mysql> create user 'gluetools'@'localhost' identified by 'glue12345';
mysql> create database GLUE_TOOLS character set UTF8;
mysql> grant all privileges on GLUE_TOOLS.* to 'gluetools'@'localhost';

Test that the new user/password works:

$ mysql -u gluetools --password=glue12345 Welcome to the MySQL monitor. Server version: 5.6.25 MySQL Community Server (GPL)

mysql>

In this MySQL session, test that the new named database works:

mysql> use GLUE_TOOLS;

Database changed


The GLUE install directory

Your installation of GLUE will be contained within its own "install" directory. Download the GLUE install zip from the GLUE download page. Unzip the GLUE install zip file in a convenient location (e.g. /home/fred), to create a gluetools directory. Ensure that the path to the gluetools directory is stored in the environment variable GLUE_HOME. Also make sure that ${GLUE_HOME}/bin is on your bash path. This can be done for example by adding these lines to the end of your .bash_profile file (Mac / Cygwin), .profile or .bashrc file (Linux).

export GLUE_HOME=/home/fred/gluetools
export PATH=${PATH}:${GLUE_HOME}/bin

Make sure the bash script is executable:

$ chmod u+x /home/fred/gluetools/bin/gluetools.sh

The GLUE engine jar

Download the GLUE engine jar file from the GLUE download page. Place it inside the gluetools/lib directory.


The GLUE XML configuration file

GLUE reads a configuration XML file each time it runs. The role of this file is to make GLUE aware of its local installation. So, you will need to edit this file to adapt it to your local GLUE installation.

In a text editor, load the XML file gluetools/conf/gluetools-config.xml. You will need to make sure that the database section specifies the correct MySQL username, password and database name as necessary, by editing the contents of the <username>, <password> and <jdbcUrl> elements.

<gluetools>
	<database>
		<username>gluetools</username>
		<password>glue12345</password>
		<vendor>MySQL</vendor>
		<jdbcUrl>jdbc:mysql://localhost:3306/GLUE_TOOLS?characterEncoding=UTF-8</jdbcUrl>	
	</database>
	<!-- .... -->
</gluetools>	

For Windows / Cygwin, you must also add a property showing GLUE where to find the sh executable:

<gluetools>
	<!-- .... -->
	<properties>
	<!-- .... -->
		<!-- Cygwin specific config -->
		<property>
			<name>gluetools.core.cygwin.sh.executable</name>
			<value>C:\cygwin\bin\sh.exe</value>
		</property>
	<!-- .... -->
	</properties>
</gluetools>


Running the GLUE command line

GLUE has an interactive command line, this is an important tool for GLUE users. We can now test that this works by running gluetools.sh

$ gluetools.sh GLUE version 1.1.113 Mode path: / GLUE> ...

Use the quit command to leave the GLUE interpreter.


Upgrading GLUE

At some point in the future you may wish to upgrade your installation to a new version of GLUE. Normally this is done as follows:

  • Download a new version of the engine jar from the GLUE download page
  • Place the new version in the gluetools/lib directory.
  • Delete the old version from the gluetools/lib directory.

Software integration: BLAST+

GLUE uses the BLAST+ suite of programs for auto-alignment and certain other features.

Download and install BLAST+ 2.2.31 from NCBI's BLAST+ FTP page. GLUE may function correctly with later versions of BLAST+ but this has not been fully tested. In the case of Mac OSX you should use the 'universal-macosx' BLAST+ distribution.

To integrate BLAST+ into GLUE, load the XML file gluetools/conf/gluetools-config.xml in a text editor.

  • Specify the location of the blast executables blastn, tblastn and makeblastdb
  • GLUE creates BLAST databases and certain other temporary files. Specify two directories, where GLUE can store these files
<gluetools>
	<!-- .... -->
	<properties>
	<!-- .... -->
		<!-- BLAST specific config -->
		<property>
			<name>gluetools.core.programs.blast.blastn.executable</name>
			<value>/home/fred/blast/ncbi-blast-2.2.31+/bin/blastn</value>
		</property>
		<property>
			<name>gluetools.core.programs.blast.tblastn.executable</name>
			<value>/home/fred/blast/ncbi-blast-2.2.31+/bin/tblastn</value>
		</property>
		<property>
			<name>gluetools.core.programs.blast.makeblastdb.executable</name>
			<value>/home/fred/blast/ncbi-blast-2.2.31+/bin/makeblastdb</value>
		</property>
		<property>
			<name>gluetools.core.programs.blast.temp.dir</name>
			<value>/home/fred/gluetools/tmp/blastfiles</value>
		</property>
		<property>
			<name>gluetools.core.programs.blast.db.dir</name>
			<value>/home/fred/gluetools/tmp/blastdbs</value>
		</property>
		<property>
			<name>gluetools.core.programs.blast.search.threads</name>
			<value>4</value>
		</property>
	<!-- .... -->
	</properties>
</gluetools>


Software integration: MAFFT

GLUE uses MAFFT as part of its maximum likelihood genotyping procedure, and other uses are possible.

Download MAFFT from the CBRC MAFFT page and install it locally.

To integrate MAFFT into GLUE, load the XML file gluetools/conf/gluetools-config.xml in a text editor.

  • Specify the location of the MAFFT executable
  • GLUE creates temporary MAFFT files. Specify a directory where GLUE can store these files
<gluetools>
	<!-- .... -->
	<properties>
	<!-- .... -->
		<!-- MAFFT-specific config -->
		<property>
			<name>gluetools.core.programs.mafft.executable</name>
			<value>/usr/local/bin/mafft</value>
		</property>
		<property>
			<name>gluetools.core.programs.mafft.cpus</name>
			<value>4</value>
		</property>
		<property>
			<name>gluetools.core.programs.mafft.temp.dir</name>
			<value>/home/fred/gluetools/tmp/mafftfiles</value>
		</property>
	<!-- .... -->
	</properties>
</gluetools>


Software integration: RAxML

GLUE uses RAxML as part of its maximum likelihood genotyping procedure, and for general phylogenetics.

We suggest RAxML be compiled locally so that it is optimised for your hardware. Instructions can be found at the Exelixis Lab RAxML page.

To integrate RAxML into GLUE, load the XML file gluetools/conf/gluetools-config.xml in a text editor.

  • Specify the location of the RAxML executable
  • GLUE creates temporary RAxML files. Specify a directory where GLUE can store these files
<gluetools>
	<!-- .... -->
	<properties>
	<!-- .... -->
		<!-- RAxML-specific config -->
		<property>
			<name>gluetools.core.programs.raxml.raxmlhpc.executable</name>
			<value>/home/fred/RAxML/bin/raxmlHPC-PTHREADS-AVX2</value>
		</property>
		<property>
			<name>gluetools.core.programs.raxml.raxmlhpc.cpus</name>
			<value>4</value>
		</property>
		<property>
			<name>gluetools.core.programs.raxml.temp.dir</name>
			<value>/home/fred/gluetools/tmp/raxmlfiles</value>
		</property>
	<!-- .... -->
	</properties>
</gluetools>


Next steps

If you are new to GLUE we strongly recommend downloading and building the example GLUE project as a next step.


Clone this wiki locally