EXPO installation

Hardware and software environment

EXPO is built on OpenGL for three-dimensional molecular visualization and on Qt 6 for the graphical user interface. It runs on the most widely used operating systems, including Windows, macOS, and several Linux distributions.

Installation on Windows

The 64-bit version of EXPO is available for Windows and has been tested on Windows 10 and 11.

  1. Download the installer expo-xx.yy.zz_install.exe from: http://www.ba.ic.cnr.it/softwareic/expo/expo-download/
  2. Double-click the downloaded file and follow the on-screen instructions to complete the installation.
  3. Once installed, you can launch EXPO by double-clicking its desktop icon (or from the Start Menu).

How to Install Expo on macOS from a DMG Package
  1. Download the DMG file
    You can download the latest version of Expo from the official website: https://www.ba.ic.cnr.it/softwareic/expo/expo-download/
    The DMG was prepared on macOS Monterey, but it also works on later versions.
  2. Open the DMG
    Locate the downloaded expo-xx.yy.zz-arm64.dmg file (usually in your Downloads folder) and double-click it to open. A new window will appear showing the application icon.
  3. Drag and Drop
    Drag the Expo icon into the Applications folder shortcut inside the window. This copies the application to your system’s Applications directory.
  4. Eject the DMG
    Once the copy is complete, right-click the mounted Expo volume on the desktop and select Eject, or drag it to the Trash.
  5. Launch the Application
    Open Finder → Applications, locate Expo, and double-click to launch it.

    • On the first launch, macOS may display a warning that Expo is from an unidentified developer. If this happens, right-click (or Control-click) the Expo icon, select Open, and then confirm.
    • After this initial confirmation, Expo will open normally in the future.
How to Install Expo on Linux platforms

On Linux, EXPO can be installed in two ways: from a pre-built Debian package (.deb) or by compiling from source (.tar.gz). Both packages are available from the download page

Option A – Install from Debian package (.deb)

Pre-built .deb packages are the easiest way to install EXPO on Debian, Ubuntu, and their derivatives. The
package installs Expo system-wide to /usr.

  • Install runtime dependencies

On Debian / Ubuntu, install the required runtime dependencies with:

sudo apt-get update
sudo apt-get install gfortran libqt6core6 libqt6gui6 libqt6widgets6 \
    libqt6opengl6 libqt6openglwidgets6 libqt6printsupport6 \
    libqt6network6 libopenbabel7 openmpi-bin libfftw3-double3

On Fedora:

sudo dnf install gcc-gfortran qt6-qtbase openbabel-libs openmpi fftw-libs-double

On RHEL / CentOS / Rocky Linux:

# Enable EPEL first
sudo dnf install epel-release

sudo dnf install gcc-gfortran qt6-qtbase openbabel-libs openmpi fftw-libs-double

Note: A native .rpm package is not available at this time. On Fedora, RHEL, CentOS and Rocky Linux you can install from source (see Option B below).

  • Download and install the package

Download the appropriate .deb file for your architecture from the download page.

Install the package with:

sudo dpkg -i expo-*.deb

If dpkg reports missing dependencies, fix them with:

sudo apt-get install -f

Alternatively, you can install in a single step using apt:

sudo apt install ./expo-*.deb

Launch EXPO from the terminal:

expo

The executable is installed to /usr/bin/expo and should already be on your PATH.

The name of the EXPO executable is expo.

If your operating system is not listed above and you are having trouble installing EXPO, contact us.

EXPO can be launched by

1. Double click the icon of the EXPO icon

2. Type the expo command. Read the section command line usage for more details.

To remove EXPO installed via the Debian package, run:

sudo apt-get remove expo2

Option B – Compiling from source (.tar.gz)

Building from source gives you full control over compiler choice and optimisation flags. EXPO uses CMake as its build system.

  • Install build tools and development packages

Most Linux distributions come with the core set of development tools already installed but if not, you will need to install the following packages via the appropriate package manager: cmake, C++ and Fortran compilers, Qt6, Open Babel library, Open MPI library, FFTW library.

A Fortran compiler compliant with Fortran 95 standard is required: EXPO has been written and tested using the Intel Fortran Compilers (ifort, mpiifort) but if the IFORT is not available, GNU Fortran (gfortran, mpifort) could be also used.

On Debian / Ubuntu, install all build dependencies with:

sudo apt-get update
sudo apt-get install cmake build-essential pkg-config gfortran \
    qt6-base-dev libopenbabel-dev libopenmpi-dev libfftw3-dev

On Fedora:

sudo dnf groupinstall "Development Tools"
sudo dnf install cmake gcc-gfortran pkgconfig \
    qt6-qtbase-devel openbabel-devel openmpi-devel fftw-devel

After installing openmpi-devel on Fedora, you may need to load the MPI module before building: module load mpi/openmpi-x86_64

On RHEL / CentOS / Rocky Linux:

# Enable EPEL and CRB/PowerTools repositories first
sudo dnf install epel-release
sudo dnf config-manager --set-enabled crb   # RHEL 9 / Rocky 9

sudo dnf groupinstall "Development Tools"
sudo dnf install cmake gcc-gfortran pkgconfig \
    qt6-qtbase-devel openbabel-devel openmpi-devel fftw-devel
  • Quick install with install.sh

The source archive includes a convenience script, install.sh, that automates the configure → build → install workflow. By default it uses mpifort as the Fortran compiler and installs the program to /opt/expo-xx.yy.zz.

Download the file expo-xx.yy.zz.tar.gz from https://www.ba.ic.cnr.it/softwareic/expo/expo-download/

Navigate to the directory where you downloaded the tarball, extract it and run the install script:

tar xzf expo2-*.tar.gz
cd expo2-*
chmod +x install.sh
./install.sh

The script will prompt for your password when it reaches the sudo cmake –install step.

To use a different Fortran compiler, pass it as the first argument:

./install.sh gfortran     # GNU Fortran
./install.sh ifort        # Intel classic
./install.sh ifx          # Intel oneAPI
./install.sh mpiifort     # Intel MPI wrapper

After a successful build, the executable is located at /opt/expo-xx.yy.zz/bin/expo, where xx.yy.zz should be replaced with the version number of the downloaded release. Add it to your PATH:

export PATH=/opt/expo-xx.yy.zz/bin:$PATH

To make this permanent, append the line to your ~/.bashrc or ~/.profile.

The script performs three steps automatically: 1) Configures the build with CMake (Release mode),
2) Compiles using all available CPU cores, 3) Installs to /opt/expo-xx.yy.zz via sudo.

  • Manual build with CMake

If you prefer full control, you can run the CMake commands yourself:

# 1. Extract and enter source directory
tar xzf expo2-*.tar.gz
cd expo2-*

# 2. Configure (choose your Fortran compiler)
cmake -B build -S . -DCMAKE_Fortran_COMPILER=mpifort -DCMAKE_BUILD_TYPE=Release

# 3. Build (use parallel jobs for speed)
cmake --build build -j$(nproc)

# 4. Install (requires root privileges)
sudo cmake --install build

The -j$(nproc) flag uses all available CPU cores for compilation. You can replace it with a specific number (e.g. -j4) according to your system’s capabilities.

By default, EXPO installs to /opt/expo-<version>.

You can specify the Fortran compiler during configuration using the -DCMAKE_Fortran_COMPILER option.
Replace mpifort with the desired compiler name:

  • gfortran for the GNU Fortran compiler
  • mpifort for the MPI-enabled GNU Fortran compiler
  • ifort for the Intel classic Fortran compiler
  • ifx for the Intel oneAPI Fortran compiler
  • mpiifort for the MPI-enabled Intel Fortran compiler

Download and install Intel Fortran compilers from the Intel oneAPI website if you choose to use them: https://www.intel.com/content/www/us/en/developer/tools/oneapi/toolkits.html.

Optional Installation with Custom Prefix:

To install EXPO to a non-standard location, use the -DCMAKE_INSTALL_PREFIX option during the CMake
configuration step:

cmake -B build -S . -DCMAKE_Fortran_COMPILER=mpifort -DCMAKE_INSTALL_PREFIX=/your/custom/installation/path
cmake --build build -j$(nproc)
sudo cmake --install build

This will install EXPO to the specified /your/custom/installation/path directory.

Third-party software requirements
On Linux and macOS, running DICVOL or McMaille during the indexing procedure requires Wine to be installed.
Instructions for installing Wine from a binary package are available at the following link: https://gitlab.winehq.org/wine/wine/-/wikis/Download
Command-line Usage of Expo

When typing the `expo` command, you can supply different types of input files.

To run Expo with an input file and produce an output file:

expo merca.exp merca.out

This command starts Expo running the expo input file merca.exp and generates the output file merca.out.

The output file may be omitted:

expo merca.exp

Or you can simply type:

expo

In addition, Expo can read crystal structures from different file types (e.g. *.cif) . For example, to open a CIF file at startup:

expo paracetamol_best1.cif   

You can provide a powder diffraction data file (e.g. `*.xy`, `*.dat`):

expo merca.xy

Expo can also be launched from the command line with additional options:

  • --version → prints information about the current version and build of the software.
  • --nogui → runs EXPO without starting the graphical interface.
    • Example:
      expo merca.exp --nogui
  • --auto → runs EXPO with the graphical interface, but the program starts and exits automatically, without requiring user interaction.

To display a brief help message showing the main command-line options, use:

expo --help

If you are using the MPI compiled version of expo read the section dedicated to the parallel execution.

Running examples

Test structures can be found in the folder examples. On Windows, this folder is typically located in C:\Users\username\share\expo\examples. On Linux, it is usually located in:  installation_dir/share/expo/examples (e.g., /usr/local/share/expo/examples). To run the program, select a test structure via the menu File > Load Examples

Click the icon on the toolbar to perform the steps of structure solution.

Three test structures are provided and described in the Tutorials section.