Files
MX_Pmodule/EM/relion/build
2024-04-03 16:13:27 +02:00

95 lines
2.9 KiB
Plaintext
Executable File

#!/usr/bin/env modbuild
pbuild::add_to_group 'EM'
pbuild::use_cmake
PROFILE="no"
SP="no"
pbuild::prep() {
local BRANCH
if [[ "$V" =~ beta$ ]]; then
BRANCH="ver${V_MAJOR}.${V_MINOR}"
elif [[ "$V" =~ profile$ ]]; then
BRANCH="${V_PKG}"
PROFILE="yes"
elif [[ "$V" =~ sp$ ]]; then
BRANCH="ver${V_MAJOR}.${V_MINOR}"
SP="yes"
else
BRANCH="${V_PKG}"
fi
git clone --depth=1 -b "$BRANCH" https://github.com/3dem/relion.git "$SRC_DIR" || return $?
}
pbuild::pre_configure() {
# Section will be switched on for -profile version
#-----------------------------------------------------------
if [[ "$PROFILE" == "yes" ]]; then
pbuild::add_configure_args "-DCMAKE_BUILD_TYPE=BENCHMARKING"
fi
#------------------------------------------------------------
# Section will be switched on for single-precision version
# Safe memory usage for multibody refinements
#------------------------------------------------------------
if [[ "$SP" == "yes" ]]; then
pbuild::add_configure_args "-DDoublePrec_CPU=OFF"
fi
#------------------------------------------------------------
# The following section will only work for versions >= 5.0-beta
# -------------------------------------------------------------
if [[ "$V_MAJOR" -ge "5" ]]; then
#download blush weights
wget ftp://ftp.mrc-lmb.cam.ac.uk/pub/dari/blush_v1.0.ckpt.gz -P "$PREFIX/torch/hub/checkpoints/relion_blush" \
&& gunzip "$PREFIX/torch/hub/checkpoints/relion_blush/blush_v1.0.ckpt.gz"
mv "$PREFIX/torch/hub/checkpoints/relion_blush/blush_v1.0.ckpt" "$PREFIX/torch/hub/checkpoints/relion_blush/v1.0.ckpt"
touch "$PREFIX/torch/hub/checkpoints/relion_blush/v1.0_installed.txt"
#Set Torch Home
pbuild::add_configure_args "-DTORCH_HOME_PATH=$PREFIX/torch"
#Conda
conda env create -f "$SRC_DIR/environment.yml" -p "$PREFIX/conda_env/$P_$V"
pbuild::add_configure_args "-DPYTHON_EXE_PATH=$PREFIX/conda_env/$P_$V/bin/python"
fi
#---------------------------------------------------------------
# CMake-based build
pbuild::add_configure_args "-DFORCE_OWN_FFTW=ON"
pbuild::add_configure_args "-DFORCE_OWN_FLTK=ON"
pbuild::add_configure_args "-DFORCE_OWN_TBB=ON"
# CUDA related (set lowest CC to 6.1 for 1080 compatibility)
pbuild::add_configure_args "-DCUDA=ON"
pbuild::add_configure_args "-DCUDA_ARCH=61"
pbuild::add_configure_args "-DCudaTexture=ON"
# Since ver3.0 relion cannot have ALTCPU and CUDA activated
# at the same time. Otherwise the configuration exits with
# an error.
if [[ "$V_MAJOR" -le "3" ]]; then
pbuild::add_configure_args "-DALTCPU=ON"
fi
if [[ -n "$INTEL_VERSION" ]]; then
# Requires intel compiler
pbuild::add_configure_args "-DMKLFFT=ON"
fi
}
# vim: ts=4 sw=4 et