Downloading and installing LINC

You can choose between the manual installation of all software required by LINC or the use of pre-compiled Docker images. The latter option is highly recommended.

Docker installation

To make use of the included container capabilities of LINC you need to install Docker on your system. Instructions on how you can install Docker on your system can be found here:

If installing Docker on your system is not possible you can also use Singularity (version 3.1 or later) or udocker. For running LINC using Singularity or uDocker follow the instructions on the page how to run the pipeline.


Due to a bug Debian/Ubuntu packages of Singularity version 3.9.9 will not run with LINC.

Getting LINC workflow description

Next you will need to download the LINC workflow description files written in the Common Workflow Language (CWL). They can be retrieved with:

$ git clone <install_dir>

To start the pipeline you also need to install an interpreter for the CWL description files. The most common ones are cwltool and toil:

$ python3 -m pip install cwltool cwl-runner toil[cwl]

It is recommended to install cwltool or toil in a conda or virtual environment. You do not need to run LINC inside a container environment. cwltool or toil will call the container for you if necessary. Please make sure that your cwltool version is at least 3.1.20220406080846 or later. Once you have installed cwltool or toil locally on your system, LINC will automatically pull the right Docker/Singularity image for you once you start the pipeline for the first time.


The LINC Docker/Singularity image also provides an installation of cwltool and toil for your convenience if you want to avoid installing cwltool or toil on your system. You will find more details how to run LINC within an image on the page how to run the pipeline.

Manual installation


Skip this section if you want to run LINC using software containers.

For installing LINC a Debian-based operating system is recommended (e.g. Ubuntu 22.04). In order to compile the required packages for running LINC you may need to install the following packages:

$ apt-get update && \
$ apt-get install -y bison build-essential casacore-data casacore-dev cmake flex gfortran git \
                      libblas-dev libboost-date-time-dev libboost-filesystem-dev libboost-numpy-dev \
                      libboost-program-options-dev libboost-python-dev libboost-system-dev libboost-test-dev \
                      libcfitsio-dev libfftw3-dev libgsl-dev libgtkmm-3.0-dev libhdf5-serial-dev liblapack-dev \
                      liblua5.3-dev libncurses5-dev libpng-dev libpython3-dev pkg-config python3 python3-casacore \
                      python3-numpy python3-pip wcslib-dev wget

In order to run LINC you need to get the following packages onto your system:

$ apt-get install -y  casacore-tools gdb libatkmm-1.6-1v5 libblas3 libboost-filesystem1.74.0 libboost-program-options1.74.0 libboost-python1.74.0 libcairomm-1.0-1v5 \
                      libcasa-casa6 libcasa-fits6 libcasa-measures6 libcasa-ms6 libcasa-python3-6 libcasa-scimath6 libcasa-tables6 libcfitsio9 \
                      libfftw3-double3 libfftw3-single3 libgfortran5 libglib2.0-0 libglibmm-2.4-1v5 libgomp1 libgsl27 \
                      libgtkmm-3.0-1v5 libhdf5-103-1 libhdf5-cpp-103-1 liblapack3 liblua5.3-0 libpangomm-1.4-1v5 libpng16-16 libpython3.10 \
                      libsigc++-2.0-0v5 libstdc++6 nodejs python3 python3-casacore python3-distutils rsync wget

Then you need to install the following software:

Additionally, extra casacore tables are needed:

$ wget -q -O /WSRT_Measures.ztar
$ cd /var/lib/casacore/data
$ tar xfz /WSRT_Measures.ztar
$ rm /WSRT_Measures.ztar

To install the LINC software package call:

$ pip3 install --upgrade pip && \
$ git clone <LINC_dir> && \
$ cd <LINC_dir> && \
$ git checkout <LINC_version> && \
$ git pull && \
$ pip3 install --upgrade $PWD && \
$ cd .. && \
$ rm -rfv <LINC_dir>

where <LINC-dir> is the name of the temporary LINC source directory from where you build the package and <LINC_version> the version number you aim to install. You will find the workflow description files in /usr/local/share/linc/workflows if not specified elsewhere.

Those are written in the Common Workflow Language (CWL).