EXPO installation

Hardware and software environment

EXPO is built on OpenGL for three-dimensional molecular visualization and Qt 6 for the graphical user interface. It runs on the most popular 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.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

Installing from binary package

Debian and Red Hat RPM packages are available via the download page.

For Ubuntu 22.04 LTS (jammy)  install all the required dependencies:

sudo apt-get update
sudo apt-get install gfortran qt6-base-dev libopenbabel7 openmpi-bin

Run the following command to install the debian package expo_xx.yy.zz-jammy_amd64.deb

dpkg -i expo2-xx.yy.zz-jammy_amd64.deb

The name of the EXPO executable is expo.

If your operating system is not listed above and you are having trouble installing EXP02014, 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.

Compiling from source

  • Install build tools and graphic 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,  Open Babel library, Open MPI library.

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 Ubuntu 22.04 LTS (jammy) all these dependencies can be installed running the  following commands:

sudo apt-get update
sudo apt-get install cmake build-essential gfortran libgl1-mesa-dev qt6-base-dev libopenbabel-dev libopenmpi-dev

On Ubuntu 23.10 (mantic) and subsequent versions all these dependencies can be installed running the  following commands:

sudo apt-get update
sudo apt-get install cmake build-essential gfortran qt6-base-dev libopenbabel-dev libopenmpi-dev

On Fedora 40 and subsequent versions all these dependencies can be installed running the  following commands:

sudo dnf install cmake gcc-c++ gcc-gfortran qt6-qtbase-devel openbabel-devel openmpi-devel

To use the OpenMPI compiler (mpifort) and mpirun on Fedora, you need to load the OpenMPI module:

source /etc/profile.d/modules.sh
module load mpi/openmpi-x86_64

Add these lines to your $HOME/.bashrc file to avoid loading the module manually each time you start a new session. The source /etc/profile.d/modules.sh command loads the environment modules system, which is necessary for the module load command to work.

tar xvzf expo2-xx-yy-zz.tar.gz
cd expo2-xx-yy-zz

Configure EXPO using CMake with the following command:

cmake -B build -S . -DCMAKE_Fortran_COMPILER=mpifort

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
  • mpiifort for an MPI-enabled Intel Fortran compiler
  • ifort (or the specific Intel compiler executable name) for Intel Fortran compilers

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.

Compile EXPO using the following command:

cmake --build build -j4

The -j4 flag specifies the number of parallel threads to use for compilation. You can adjust this number according to your system’s capabilities.

Install EXPO using the following command:

sudo cmake --install build

This will install EXPO into the system’s default installation directory, which is typically /usr/local/ on most Linux systems.

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 -j4
cmake --install build

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

Running EXPO

Once EXPO is installed, you can run it from the command line using the following command:

expo

To run EXPO from the command line, the EXPO executable must be in your PATH environment variable. If you installed EXPO to the default location (/usr/local/), it should already be in your PATH. However, if you installed EXPO to a different location, you will need to add that directory to your PATH. You can add the following line to the shell configuration file (e.g., .bashrc for Bash), replacing <destination_directory> with the actual directory where EXPO was installed:

export PATH=<destination_directory>/bin:$PATH

This line adds the <destination_directory>/bin directory (which likely contains the EXPO executable) to your PATH.

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.