#!/bin/bash # ============================================================================== # Auto-installation for abCTSeg for Linux and Mac machines. # This setup script is adapted from DOSMA: # https://github.com/ad12/DOSMA # ============================================================================== BIN_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )" ANACONDA_KEYWORD="anaconda" ANACONDA_DOWNLOAD_URL="https://www.anaconda.com/distribution/" MINICONDA_KEYWORD="miniconda" # FIXME: Update the name. ABCT_ENV_NAME="c2c_env" hasAnaconda=0 updateEnv=0 updatePath=1 pythonVersion="3.9" cudaVersion="" while [[ $# -gt 0 ]]; do key="$1" case $key in -h|--help) echo "Batch evaluation with ss_recon" echo "" echo "Usage:" echo " --python Python version" echo " -f, --force Force environment update" exit ;; --python) pythonVersion=$2 shift # past argument shift # past value ;; --cuda) cudaVersion=$2 shift # past argument shift # past value ;; -f|--force) updateEnv=1 shift # past argument ;; *) echo "Unknown option: $key" exit 1 ;; esac done # Initial setup source ~/.bashrc currDir=`pwd` if echo $PATH | grep -q $ANACONDA_KEYWORD; then hasAnaconda=1 echo "Conda found in path" fi if echo $PATH | grep -q $MINICONDA_KEYWORD; then hasAnaconda=1 echo "Miniconda found in path" fi if [[ $hasAnaconda -eq 0 ]]; then echo "Anaconda/Miniconda not installed - install from $ANACONDA_DOWNLOAD_URL" openURL $ANACONDA_DOWNLOAD_URL exit 125 fi # Hacky way of finding the conda base directory condaPath=`which conda` condaPath=`dirname ${condaPath}` condaPath=`dirname ${condaPath}` # Source conda source $condaPath/etc/profile.d/conda.sh # Check if OS is supported if [[ "$OSTYPE" != "linux-gnu" && "$OSTYPE" != "darwin"* ]]; then echo "Only Linux and MacOS are supported" exit 125 fi # Create Anaconda environment (dosma_env) if [[ `conda env list | grep $ABCT_ENV_NAME` ]]; then if [[ ${updateEnv} -eq 0 ]]; then echo "Environment '${ABCT_ENV_NAME}' is installed. Run 'conda activate ${ABCT_ENV_NAME}' to get started." exit 0 else conda env remove -n $ABCT_ENV_NAME conda create -y -n $ABCT_ENV_NAME python=3.9 fi else conda create -y -n $ABCT_ENV_NAME python=3.9 fi conda activate $ABCT_ENV_NAME # Install tensorflow and keras # https://www.tensorflow.org/install/source#gpu # pip install tensorflow # Install pytorch # FIXME: PyTorch has to be installed with pip to respect setup.py files from nn UNet # pip3 install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cpu # if [[ "$OSTYPE" == "darwin"* ]]; then # # Mac # if [[ $cudaVersion != "" ]]; then # # CPU # echo "Cannot install PyTorch with CUDA support on Mac" # exit 1 # fi # conda install -y pytorch torchvision torchaudio -c pytorch # else # # Linux # if [[ $cudaVersion == "" ]]; then # cudatoolkit="cpuonly" # else # cudatoolkit="cudatoolkit=${cudaVersion}" # fi # conda install -y pytorch==1.12.1 torchvision==0.13.1 torchaudio==0.12.1 $cudatoolkit -c pytorch # fi # Install detectron2 # FIXME: Remove dependency on detectron2 #pip3 install detectron2 -f https://dl.fbaipublicfiles.com/detectron2/wheels/cpu/torch1.10/index.html # Install totalSegmentor # FIXME: Add this to the setup.py file # pip3 install git+https://github.com/StanfordMIMI/TotalSegmentator.git # cd $currDir/.. # echo $currDir # exit 1 pip install -e . --no-cache-dir echo "" echo "" echo "Run 'conda activate ${ABCT_ENV_NAME}' to get started."