All Projects → 3dem → Relion

3dem / Relion

Licence: other
Image-processing software for cryo-electron microscopy

Projects that are alternatives of or similar to Relion

Parenchyma
An extensible HPC framework for CUDA, OpenCL and native CPU.
Stars: ✭ 71 (-67.58%)
Mutual labels:  nvidia, cuda, hpc
Nuxhash
A NiceHash cryptocurrency mining client for Linux.
Stars: ✭ 150 (-31.51%)
Mutual labels:  nvidia, gui
Opencoarrays
A parallel application binary interface for Fortran 2018 compilers.
Stars: ✭ 151 (-31.05%)
Mutual labels:  hpc, high-performance-computing
Nicehashquickminer
Super simple & easy Windows 10 cryptocurrency miner made by NiceHash.
Stars: ✭ 211 (-3.65%)
Mutual labels:  nvidia, cuda
Nsimd
Agenium Scale vectorization library for CPUs and GPUs
Stars: ✭ 138 (-36.99%)
Mutual labels:  cuda, hpc
Volumetric Path Tracer
☁️ Volumetric path tracer using cuda
Stars: ✭ 145 (-33.79%)
Mutual labels:  nvidia, cuda
Xmrminer
🐜 A CUDA based miner for Monero
Stars: ✭ 158 (-27.85%)
Mutual labels:  nvidia, cuda
Batchtools
Tools for computation on batch systems
Stars: ✭ 127 (-42.01%)
Mutual labels:  hpc, high-performance-computing
Gmonitor
gmonitor is a GPU monitor (Nvidia only at the moment)
Stars: ✭ 169 (-22.83%)
Mutual labels:  nvidia, cuda
Cuml
cuML - RAPIDS Machine Learning Library
Stars: ✭ 2,504 (+1043.38%)
Mutual labels:  nvidia, cuda
Macos Egpu Cuda Guide
Set up CUDA for machine learning (and gaming) on macOS using a NVIDIA eGPU
Stars: ✭ 187 (-14.61%)
Mutual labels:  nvidia, cuda
Claymore
Stars: ✭ 135 (-38.36%)
Mutual labels:  cuda, high-performance-computing
Dash
DASH, the C++ Template Library for Distributed Data Structures with Support for Hierarchical Locality for HPC and Data-Driven Science
Stars: ✭ 134 (-38.81%)
Mutual labels:  hpc, high-performance-computing
Ginkgo
Numerical linear algebra software package
Stars: ✭ 149 (-31.96%)
Mutual labels:  cuda, hpc
Libcudacxx
The C++ Standard Library for your entire system.
Stars: ✭ 1,861 (+749.77%)
Mutual labels:  nvidia, cuda
Degate
Open source software for chip reverse engineering.
Stars: ✭ 156 (-28.77%)
Mutual labels:  image-processing, gui
Pine
🌲 Aimbot powered by real-time object detection with neural networks, GPU accelerated with Nvidia. Optimized for use with CS:GO.
Stars: ✭ 202 (-7.76%)
Mutual labels:  nvidia, cuda
Futhark
💥💻💥 A data-parallel functional programming language
Stars: ✭ 1,641 (+649.32%)
Mutual labels:  cuda, hpc
Onemkl
oneAPI Math Kernel Library (oneMKL) Interfaces
Stars: ✭ 122 (-44.29%)
Mutual labels:  cuda, hpc
Sporco
Sparse Optimisation Research Code
Stars: ✭ 164 (-25.11%)
Mutual labels:  optimization-algorithms, cuda

RELION 3.1.1

RELION (for REgularised LIkelihood OptimisatioN) is a stand-alone computer program for Maximum A Posteriori refinement of (multiple) 3D reconstructions or 2D class averages in cryo-electron microscopy. It is developed in the research group of Sjors Scheres at the MRC Laboratory of Molecular Biology.

The underlying theory of MAP refinement is given in a scientific publication. If RELION is useful in your work, please cite this paper.

The more comprehensive documentation of RELION is stored on the Wiki

For EER data processing, please read instructions in our wiki carefully.

Installation

More extensive options and configurations are available here, but the outlines to clone and install relion for typical use are made easy through cmake.

On Debian or Ubuntu machines, installing cmake, the compiler, and additional dependencies (mpi, fftw) is as easy as:

sudo apt install cmake git build-essential mpi-default-bin mpi-default-dev libfftw3-dev libtiff-dev

On other systems it is typically just as easy, you simply have to modify "apt" to the appropriate package manager (e.g. yum).

Once git and cmake are installed, relion can be easily installed through:

git clone https://github.com/3dem/relion.git
cd relion
git checkout master
mkdir build
cd build
cmake ..
make

By performing git checkout ver3.1 instead of git checkout master, you can access the latest (developmental) updates for RELION 3.1.x. The code there is not tested as throughfully as that in the master branch and not generally recommended.

The binaries will be produced in the build/bin directory. If you want to copy binaries into somewhere else, run cmake with -DCMAKE_INSTALL_PREFIX=/where/to/install/ and perform make install as the final step. Do not specify the build directory itself as CMAKE_INSTALL_PREFIX! This will not work.

Also note that the MPI library used for compilation must be the one you intend to use RELION with. Compiling RELION with one version of MPI and running the resulting binary with mpirun from another version can cause crash. See our wiki below for details.

In any case, you have to make sure your PATH environmental variable points to the directory containing relion binaries. Launching RELION as /path/to/relion is NOT a right way; this starts the right GUI, but the GUI might invoke other versions of RELION in the PATH.

If FLTK related errors are reported, please add -DFORCE_OWN_FLTK=ON to cmake. For FFTW related errors, try -DFORCE_OWN_FFTW=ON.

RELION also requires libtiff. Most Linux distributions have packages like libtiff-dev or libtiff-devel. Note that you need a developer package. You need version 4.0.x to read BigTIFF files. If you installed libtiff in a non-standard location, specify the location by -DTIFF_INCLUDE_DIR=/path/to/include -DTIFF_LIBRARY=/path/to/libtiff.so.5.

See our wiki for more options, troubleshooting and useful environmental variables (especially in HPC clusters).

Updating

RELION is intermittently updated, with both minor and major features. To update an existing installation, simply use the following commands

cd relion
git pull
cd build
make
make install # Only when you have specified CMAKE_INSTALL_PREFIX in the cmake step

If something went wrong, remove the build directory and try again from cmake.

Options for accelerated versions

Parts of the cryo-EM processing pipeline can be very computationally demanding, and in some cases special hardware can be used to make these faster. There are two such cases at the moment;

  • GPU acceleration: RELION only supports CUDA-capable GPUs of compute capabilty 3.5 or higher.
  • Vectorized CPU code path: RELION only supports GCC and ICC 2018.3 or later.

Note that you cannot have both acceleration in the same binary at the moment.

There are more benefits than speed; the accelearated versions also have a decreased memory footprint. Details about how to enable either of these options is listed below.

GPU-acceleration

Tools that are GPU-accelerated:

  • relion_refine (i.e. Class2D, Class3D, Refine3D, Multibody refinement)
  • relion_autopick

Classification without alignment is not accelerated.

When CUDA SDK is available, GPU support is automatically compiled.

Use

If you run relion_refine with a the "--gpu" flag, you will run the accelerated CUDA version of the kernels. If you leave out the "--gpu" flag, it will run the original CPU version.

CPU-acceleration

Tools that are CPU-accelerated (vectorized):

  • relion_refine (i.e. Class2D, Class3D, Refine3D, Multibody refinement)

Classification without alignment is not accelerated.

To build with support for CPU-accelerated kernels in addition to the original CPU version, build by setting ALTCPU=ON

cd build
rm -r *
cmake -DALTCPU=ON ..
make
make install

This will require the Intel TBB (Threading Building Blocks) library. RELION will look for TBB, and fetch and install it when it is missing on your system. You can force this behaviour (and make sure you are using the latest version) by adding:

-DFORCE_OWN_TBB=ON

In addition, you can make use the Intel Math Kernel Library (Intel MKL). This is optional (but will scale better with increased threads). Add this by:

-DMKLFFT=ON

Use

If you run relion_refine with a the "--cpu" flag, you will run the accelerated version. If you leave it the original CPU version will be run. You should use this flag if you can, unless you want to verify old runs or behaviour.

For details on how to compile with Intel compilers and optimal runtime configulations, please look at our wiki.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].