This is a simple install script for building a standalone version of Genoscores, from source, in a user home directory.
#!/bin/bash # ####################################################################################################### # # Repeatable installation harness for Genoscores, using the dependency details # documented here: https://genoscores.cphs.mvm.ed.ac.uk/quickstart#Download-and-install-the-package # # You MUST supply the genoscores_api.tar.gz file YOURSELF. It is not available to download publicly. # # Original author: John.Snowdon@Newcastle.ac.uk # August 2024 # ####################################################################################################### # These are the only variables that need to be set per-user: # This is where genoscore and all the supporting tools (plink, bedtools, etc) will live MYPATH=$HOME/genoscore # The path to the genoscores source file, which you must supply yourself... GENOSCORES_TARBALL=$HOME/genoscores_0.93.0.9000.api.tar.gz # Set to 1 to enable, or 0 to skip a section # The first time you run the installer you will want to run all sections... BUILD_BEDTOOLS=1 BUILD_LIFTOVER=1 BUILD_PLINK=1 BUILD_RLIBS=1 BUILD_GENOSCORES=1 ############################################################################## # NOTHING IS USER-EDITABLE BELOW THIS LINE ############################################################################## ################################################ # # Set up installation tree # mkdir -p $MYPATH mkdir -p $MYPATH/bin mkdir -p $MYPATH/zip mkdir -p $MYPATH/src if [ -d $MYPATH ] then cd $MYPATH else echo "ERROR! Unable to create $MYPATH" exit 1 fi echo "Standalone Genoscores installer for Rocket HPC" echo "==============================================" echo "" echo "NOTE!!! ALL TOOLS WILL BE INSTALLED UNDER $MYPATH/bin" echo "" echo "If you want to change this location, change the variable MYPATH" echo "at the top of this script." echo "" echo "The path you set should be added to your existing PATH environment variable." echo "For example, at the end of your .bashrc file add:" echo "PATH="'$PATH'":$MYPATH/bin" echo "export PATH" echo "" echo "After this install has completed, you must then load the R module:" echo "module load MariaDB/10.6.4-GCC-11.2.0" echo "module load R/4.3.1-foss-2022b" echo "" echo "... and in an interactive R session, register genoscores as follows:" echo 'library("genoscores")' echo "initialise.genoscores()" echo "" echo "For further documentation on genoscores, see: https://genoscores.cphs.mvm.ed.ac.uk/quickstart" echo "" echo "[Press return to continue]" echo "" read ################################################# # # Download and build bedtools # if [ "$BUILD_BEDTOOLS" = "1" ] then echo "" echo "" echo "################### BEDTOOLS ########################" echo "" cd zip wget -nc https://github.com/arq5x/bedtools2/releases/download/v2.30.0/bedtools-2.30.0.tar.gz cd .. cd src tar xzf ../zip/bedtools-2.30.0.tar.gz if [ -d bedtools2 ] then cd bedtools2 make -j2 DESTDIR=$MYPATH/bin install cd .. else echo "" echo "ERROR! Unable to find bedtools source tree" exit 1 fi cd .. cd bin if [ -d usr ] then cp -v usr/local/bin/* . rm -rf usr else echo "" echo "ERROR! Unable to find bedtools install tree" exit 1 fi cd .. fi ################################################# # # Install liftover # if [ "$BUILD_LIFTOVER" = "1" ] then echo "" echo "" echo "################## LIFTOVER ##########################" echo "" cd bin wget -nc http://hgdownload.cse.ucsc.edu/admin/exe/linux.x86_64/liftOver if [ -s liftOver ] then chmod -v u+x liftOver else echo "" echo "ERROR! Unable to find downloaded liftover binary!" exit 1 fi cd .. cd zip wget -nc http://hgdownload.cse.ucsc.edu/goldenPath/hg18/liftOver/hg18ToHg19.over.chain.gz if [ -s hg18ToHg19.over.chain.gz ] then gzip -f -d hg18ToHg19.over.chain.gz else echo "" echo "ERROR! Unable to find downloaded liftover chain file!" exit 1 fi if [ -s hg18ToHg19.over.chain ] then cp -v hg18ToHg19.over.chain ../bin fi cd .. fi ################################################### # # Install plink # if [ "$BUILD_PLINK" = "1" ] then echo "" echo "" echo "################## PLINK #############################" echo "" cd zip wget -nc https://zzz.bwh.harvard.edu/plink/dist/plink-1.07-x86_64.zip cd .. if [ -s zip/plink-1.07-x86_64.zip ] then cd bin unzip ../zip/plink-1.07-x86_64.zip cp -v plink-1.07-x86_64/plink plink-1.07-x86_64/test.map plink-1.07-x86_64/test.ped . rm -rf plink-1.07-x86_64 cd .. else echo "" echo "ERROR! Unable to find downloaded zip of plink!" exit 1 fi fi ############################################## # # Install R libraries # if [ "$BUILD_RLIBS" = "1" ] then echo "" echo "" echo "################# R LIBRARIES #########################" echo "" module purge # MariaDB is needed for the R::RMariaDB library to build module load MariaDB/10.6.4-GCC-11.2.0 module load R/4.3.1-foss-2022b Rscript -e 'install.packages(c("RMariaDB", "Rcpp", "bigmemory", "corrplot", "data.table","doParallel", "foreach", "ggplot2", "gtools", "httr", "jsonlite", "RColorBrewer", "yaml", "BH", "RcppEigen"), repos = "http://cran.r-project.org")' # The current version of 'Matrix' needs R >= 4.4 ... which we don't have on Rocket # This is the last version of 'Matrix' which will compile for R <= 4.3 ... Rscript -e 'install.packages("https://cran.r-project.org/src/contrib/Archive/Matrix/Matrix_1.6-5.tar.gz", repos=NULL, type="source")' fi ############################################### # # Install genoscores package # if [ "$BUILD_GENOSCORES" = "1" ] then echo "" echo "" echo "################# GENOSCORES ###########################" echo "" if [ -s $GENOSCORES_TARBALL ] then # Load the necessary software modules module purge module load MariaDB/10.6.4-GCC-11.2.0 module load R/4.3.1-foss-2022b # Install the tarball R CMD INSTALL $GENOSCORES_TARBALL # Test we can import the library Rscript -e 'library("genoscores")' else echo "ERROR! Could not find: $GENOSCORES_TARBALL" echo "" echo "Please make sure that you have set the correct path and filename of" echo "the Genoscores install tarball in the GENOSCORES_TARBALL variable at" echo "the top of this script." exit 1 fi fi
Back to Advanced Software Topics
Table of Contents
Main Content Sections
Documentation Tools