A. Setup of modules

  • Location at CSD3: /usr/local/Cluster-Apps/ceuadmin
  • Module files: /usr/local/Cluster-Config/modulefiles/ceuadmin

Recent modules

All entries are ordered chronologically.

Date Add ons Category
2022-10-21 pspp/1.6.0 Generic
2022-10-22 snptest/2.5.6 Genetics
"" qctool/2.0.8 Genetics
"" gcta/1.94.1 Genetics
"" KING/2.1.6 Genetics
"" LDstore/2.0 Genetics
"" shapeit/3 Genetics
"" vcftools/0.1.16 Genetics
"" finemap/1.4 Genetics
2022-10-23 quicktest/1.1 Genetics
"" samtools/1.11 Genetics
"" bcftools/1.12 Genetics
"" MORGAN/3.4 Genetics
"" METAL/2020-05-05r Genetics1
"" regenie/3.2.1 Genetics
"" GEMMA/0.98.5 Genetics2
"" htslib/1.12 Genetics
"" fcGENE/1.0.7 Genetics3
"" SMR/1.0.3 Genetics
"" FastQTL/2.165 Genetics
"" GitKraken/8.1.0 Generic
2022-10-24 Typora/0.11.8beta Generic
"" pandoc/2.19.2 Generic
"" citeproc/0.4.0.1 Generic
"" citeproc/0.8.0.2 Generic
2022-10-26 circos/0.69-9 Genetics
"" DjVuLibre/3.5.27.1-14 Generic
"" ghostscript/9.56.1 Generic
"" bgen/1.1.7 Genetics
2022-10-27 sqlite/3.39.4 Generic
2022-10-28 poppler/0.84.0 Generic
"" jq/1.6 Generic4
"" DosageConverter/1.0.0 Genetics
"" tidy/5.8.0 Generic
2022-10-29 ghc/8.6.5 Generic
"" pandoc-citeproc/0.17.0.2 Generic
2022-10-31 git/2.38.1 Generic
"" aria2/1.36.0 Generic
2022-11-01 alpine/2.26 Generic
"" readline/8.0 Generic
"" Cytoscape/3.9.1 Generic
"" nano/6.0 Generic
"" R/4.2.2 Generic
"" parallel/20220222 Generic
"" pdf2djvu/0.9.19 Generic
2022-11-02 lapack/3.10.1 Generic
"" GraphicsMagick/1.3.38 Generic
"" QTLtools/1.3.1-25 Genetics5
"" NLopt/2.7.1 Generic
"" blat/37x1 Genetics
"" bedtools2/2.29.2 Genetics
"" bedops/2.4.41 Genetics
2022-11-03 Beagle/3.0.4 Genetics
"" netbeans/15 Generic
"" JAGS/4.3.1 Generic
"" exiv2/0.27.5 Generic6
"" googletest/1.8.0 Generic
"" googletest/1.12.1 Generic
"" libiconv/1.17 Generic
"" ldc2/1.24.0 Generic
"" gettext/0.21 Generic
"" ssw/0.7 Generic
"" fribidi/1.0.8 Generic
"" proj/6.3.0 Generic
"" gmp/6.2.1 Generic
"" pcre2/10.30 Generic
"" zstd/1.5.2 Generic
2022-11-04 libxslt/1.1.34 Generic7
"" libssh2/1.10.0 Generic
"" libxml2/2.9.10 Generic8
"" libsodium/1.10.0 Generic
"" gdal/3.0.4 Generic9
"" expat/2.4.7 Generic10
"" docbook2X/0.8.8 Generic
"" libntlm/1.6 Generic
"" vala/0.46.5 Generic
"" gtksourceview/4.0.3 Generic
"" oniguruma/6.9.8 Generic
"" nspr/4.35 Generic
"" nettle/2.7.1 Generic
2022-11-05 trinculo/0.96 Generic
"" ruby/2.7.5 Generic11
2022-11-06 libpng/0.5.30 Generic
"" libgit2/1.1.0 Generic12
"" git-extras/6.5.0 Generic
"" trousers/0.3.14 Generic
"" libidn2/2.3.4 Generic
"" unbound/1.17.0 Generic
"" nettle/3.6.0 Generic13
"" gnutls/3.7.8 Generic14
2022-11-08 CrossMap/0.6.4 Genetics
"" SurvivalKit/6.12 Genetics
"" PRSice/2.3.3 Genetics
2022-11-09 qctool/2.2.0 Genetics
"" fossil/2.19 Generic
2022-11-10 rclone/1.53.1 Generic
"" CaVEMaN/1.01-c1815a0 Genetics
"" akt/0.3.3 Genetics
"" MsCAVIAR/0.6.4 Genetics
"" CAVIAR/2.2 Genetics
"" MONSTER/1.3 Genetics
"" osca/0.46 Genetics
"" LEMMA/1.0.4 Genetics15
"" CAVIARBF/0.2.1 Genetics
2022-11-11 PAINTOR/3.0 Genetics
"" ABCtoolbox/2.0 Generic
"" cppunit/1.15.2 Generic
2022-11-12 ccal/2.5.3 Generic
2022-11-13 axel/2.17.11 Generic16
"" axel/1.0a Generic
"" bazel/2.0.0 Generic
"" bazel/1.2.1 Generic
2022-11-14 MR-MEGA/0.2 Genetics
2022-11-16 SNP2HLA/1.0.3 Genetics
"" STAR/2.7.10b Genetics
"" Mega2/6.0.0 Genetics
2022-11-18 ffmpeg/5.1.1 Generic
2022-11-19 ensembl-vep/104 Genetics*
"" OpenMS/3.0.0-pre-develop Genetics*17
"" polyphen/2.2.2 Genetics*
"" ANNOVAR/24Oct2019 Genetics*
"" MAGENTA/vs2_July2011 Genetics*
"" GARFIELD/v2 Genetics*
"" KentUtils/2022-11-14 Genetics*
2022-11-20 Genotype-Harmonizer/1.4.25 Genetics
2022-11-21 locuszoom/1.4 Genetics*18
"" DEPICT/v1_rel194 Genetics*
"" MAGMA/1.10 Genetics*
"" Pascal/v_debut Genetics*
"" VEGAS2/2.01.17 Genetics*
"" fgwas/0.3.6 Genetics*
2022-11-24 qtcreator/2.5.2 Generic
"" rstudio/2022.07.2+576 Generic
2022-11-26 yaml-cpp/0.7.0 Generic
"" libglvnd/1.6.0 Generic
"" GreenAlgorithmsforHPC/0.2.2-beta Generic
2022-11-28 openssl/1.1.1s Generic
2022-11-29 qt/5.15.7 Generic*
2022-12-02 rstudio/1.3.1093 Generic19
2022-12-04 phenoscanner/v2 Genetics*
2022-12-07 SurvivalAnalysis/2016-05-09 Genetics
2022-12-14 node/16.14.0 Generic
2022-12-19 rstudio/2022.12.0+353 Generic
"" icu/50.2 Generic
2022-12-20 snakemake/7.19.1 Generic
2022-12-21 icu/70.1 Generic
"" libuv/1.43.0 Generic
"" libcares/1.18.1 Generic
"" brotli/1.0.9 Generic
2022-12-28 ncurses/6.3 Generic
2023-01-03 Eagle/2.4.1 Genetics
2023-01-05 GEM/1.4.5 Genetics
2023-02-01 GENEHUNTER/2.1_r6 Genetics
2023-02-26 JabRef/5.9 Generic
2023-02-27 Zotero/6.0.22 Generic
2023-03-14 regenie/3.2.5 Genetics
2023-03-22 rstudio/2023.03.0+386 Generic
2023-03-24 PoGo/1.0.0 Genetics
2023-03-31 PWCoCo/2023-03-31 Genetics20
2023-04-02 regenie/3.2.5.3 Genetics
2023-04-04 PWCoCo/1.0 Genetics
2023-04-05 PhySO/1.0-dev0 Generic
2023-04-21 ImageJ/1.53t Generic
2023-04-25 busybox/1.35.0 Generic
2023-06-02 regenie/3.2.7 Genetics21
2023-06-05 gsl/2.7.1 Generic
2023-06-06 allegre/2.0f Genetics
2023-06-14 autoconf/2.72c.24-8e728 Generic22
2023-06-16 globusconnectpersonal/3.2.2 Generic
2023-06-19 plink-ng/2.00a3.3 Genetics
2023-06-26 RHHsoftware/0.1 Genetics
2023-07-19 pdfjam/3.06 Generic
2023-07-22 rstudio/2023.06.1+524 Generic
2023-07-28 PWCoCo/1.1 Genetics
2023-08-02 regenie/3.2.9 Genetics
"" fossil/2.22 Generic
2023-08-04 quarto/1.3.450-icelake Generic23
2023-08-06 finemap/1.4.2 Genetics
2023-08-10 GreenAlgorithmsforHPC/0.3 Generic
2023-08-12 xpdf/4.04 Generic24
2023-08-22 thunderbird/115.1.1 Generic
2023-08-24 pdfjam/3.07 Generic
2023-09-03 2.0.0-pre1ge32bec Genetic25
"" spead-sheet-widget Generic
2023-09-27 ncbi-vdb/3.0.8 Genetics26
"" sra-tools/3.0.8 Genetics27
"" gatk/4.4.0.0 Genetics28
2023-09-28 openjdk/8u382-b05 Generic
"" openjdk/11.0.20+8 Generic
"" openjdk/17.0.8+7 Generic
2023-10-24 rst2pdf/0.101 Generic
"" geany/1.38 Generic
"" pango/1.41.1 Generic
"" gettext/0.20 Generic
2023-10-26 glib/2.58.3 Generic
2023-10-27 graphene/1.4.0 Generic
"" graphene/1.8.0 Generic
2023-10-24 gtk+/3.24.0 Generic
"" geany/2.0 Generic
2023-10-28 hunspell/1.7.0 Generic
"" hunspell/1.7.2 Generic
"" enchant/2.2.0 Generic
2023-10-29 gtk+/3.90.0 Generic
2023-10-31 vte/0.55.0 Generic
2023-11-05 Anaconda3/2023.09-0 Generic
2023-11-23 SciKit-LLM & OpenAI API Genetic
2023-11-24 ldsc/1.0.1 Genetics
2023-11-30 gdc/1.6.1-1.0.0 Genetics29
2023-12-13 rust/1.74.1 Generic
2023-12-20 verifyBamID/1.1.3 Genetics
2023-12-21 verifyBamID/2.0.1 Genetics30
2023-12-27 regtools/1.0.0 Genetics31
"" VarScan/2.4.6 Genetics32
2024-01-02 Mango/0.1.0 Generic
2024-01-08 picard/3.1.1 Genetics
"" plink/2.0_20240105 Genetics
2024-01-10 cmake/3.28.1 Generic
"" tatami/2.1.2 Generic33
2024-01-19 htslib/1.19 Genetics
2024-01-23 nextflow/23.10.1 Generic34
"" go/1.21.6 Generic
"" singularity/4.0.3 Generic35
"" libseccomp/2.5.5 Generic
2024-01-24 fraposa_pgsc/0.1.0 Genetics36
"" pgsc_calc/2.0.0-alpha.4 Genetics37
2024-01-27 glibc/2.18 Generic
"" glibc/2.26 Generic
"" deno/1.40.2 Generic38
"" deno/1.40.2-icelake Generic
"" quarto/1.4.549 Generic
2024-02-29 R/4.3.3 Generic39
2024-03-01 glpk/5.0 Generic
2024-03-02 glpk/4.57 Generic
2024-03-04 rstudio/2023.12.1-402 Generic
2024-03-05 GitKraken/9.12.0 Generic40
"" automake/1.16.5 Generic41
"" pspp/2.0.0 Generic
2024-03-09 Scala/3.3.3 Generic
2024-03-10 fpc/3.2.2 Generic
"" Swift/5.10 Generic
"" pulsar/1.114.0 Generic
"" VSCodium/1.87.1.24068 Generic
2024-03-27 openssl/3.2.1-icelake Generic42
"" openssh/9.7p1-icelake Generic43
2024-03-31 ensembl-vep/111-icelake Genetics44
2024-04-01 json-c/0.17-20230812-icelake Generic45
"" device-mapper/1.02.28-icelake Generic
"" LVM2/2.03.23-icelake Generic46
2024-04-02 cryptsetup/2.7.1-icelake Generic47
2024-04-05 krb5/1.21.2-icelake Generic48
"" git/1.44.0-icelake Generic49
"" openssl/1.1.1b-icelake Generic
"" libssh2/1.11.0-icelake Generic
"" libssh/0.10.6-icelake Generic
2024-04-22 peer/1.3 Generic50
2024-04-29 ImageMagick/7.1.1-31 Generic51
2024-05-15 rtmpdump/2.3 Generic52
2024-05-22 spyder/5.5.4 Generic53
2024-06-04 pwiz/3_0_24156_80747de Proteomics
2024-06-09 crux/4.2 Proteomics54
"" p7zip-zstd/17.05 Generic55
"" DIA-NN/1.8.1 Proteomics
2024-06-10 patchelf/0.18.0 Generic
"" boost/1.76.0 Generic56
"" wine/8.21 Generic57
2024-06-11 crux/4.1 Proteomics
"" pwiz/3_0_24163_9bfa69a-wine Proteomics
2024-06-13 seqkit/2.8.2 Proteomics58
"" dotnet/8.0.304 Generic
"" dotnet/6.0.423 Generic
"" FlashLFQ/1.2.6 Proteomics59
"" MetaMorpheus/1.0.5 Proteomics
2024-06-14 R/4.4.1 Generic
2024-06-25 msms/3.2rc-b163 Genetics
2024-06-30 freesurfer/7.4.1 Generic
2024-07-04 docker/24.0.5 Generic60
"" docker/27.0.3 Generic
2024-07-05 sshpass/1.10 Generic
"" podman/5.1.1 Generic61
2024-07-09 ntlm/1.6 Generic
"" alpine/2.26-icelake Generic62
"" gnutls/3.8.4-icelake Generic
"" quarto/1.6.1-icelake Generic
"" gettext/0.22.5-icelake Generic
"" nettle/3.9-icelake Generic
2024-07-11 qemu/9.0.1 Generic63
2024-07-13 msamanda/3.0.21.532 Proteomics
2024-07-16 augeas/1.14.1 Generic
"" hivex/1.3.23 Generic64
"" ocaml/4.14.2 Generic
"" findlib/1.9.6 Generic65
"" opam/2.2.0 Generic66
"" libguestfs/1.48.6 Generic67
2024-07-23 Miniconda3/22.9.0 Generic
2024-07-25 pigz/2.8 Generic

* CEU or approved users only.

Three aspects are notable,

  1. A file named NOTE indicates the original annotation.
  2. A symbolic link is generated when appropriate to simplify executable file name.
  3. The available source package is kept in the sources/ directory.

Word cloud diagrams

They are generated from script setup.sh,

Footnotes


  1. metal

    Notes on METAL 2020-05-05r

    This version has options EFFECT_PRINT_PRECISION and STDERR_PRINT_PRECISION (both with default 4) to enable many decimal places.

    The letter r as in 2020-05-05r indicates a replacement of functions in libsrc/MathStats.cpp to ensure generality – details have also been posted to the GitHub page, https://github.com/statgen/METAL/issues/24.

    FATAL ERROR -
    a too large, ITMAX too small in gamma countinued fraction (gcf)
    
    so the -1.info file could not be generated.
    

  2. gemma

    Note on compiling from source

    A considerably smaller (1,097,256 vs 22,721,624) executable, /usr/local/Cluster-Apps/ceuadmin/GEMMA/0.98.5/bin, is generated under CSD3 but the original distribution is used by default.

    module load openblas/0.2.15
    make
    

  3. fcgene

    Alternative site

    See https://github.com/dr-roshyara/fcgene 

  4. jq

    The executable points to the one available from the website.

    The bin/, include/, lib/, share/ directories are obtained from source with oniguruma also compiled independently. 

  5. qtltools

    The long version number is 1.3.1-25-g6e49f85f20. 

  6. exiv2

    This is compiled with configuration

    cmake -DCMAKE_INSTALL_PREFIX=$CEUADMIN/exiv/0.27.5 -DEXIV2_ENABLE_NLS=On -DEXIV2_ENABLE_BMFF=On -DEXIV2_BUILD_UNIT_TESTS=Off -DCMAKE_PREFIX_PATH=$HPC_WORK ..
    

    The modules ceuadmin/gettext/0.21, ceuadmin/libiconv/1.17, ceuadmin/googletest/1.8.0 are at disposal. 

  7. libxslt

    There is complaint about docbook as in expat, however there is no apparent option to control for this. 

  8. libxml2

    The packaging is not perfect and Python 2 package requires to be manually furnished,

    export PYTHONPATH=/usr/local/Cluster-Apps/ceuadmin/libxml2/2.9.10/lib/python2.7/site-packages
    ./configure --prefix=$CEUADMIN/libxml2/2.9.10
    cd libxml2-2.9.10/python
    python setup.py install --prefix=${PYTHONPATH}
    

    The module file is expicitly appended with

    module load python/2.7
    export PYTHONPATH=$root/lib/python2.7/site-packages:$PYTHONPATH
    

  9. gdal

    This involves many libraries; an expeeriment has been done as follows,

    module load gcc/6
    module load cfitsio-3.450-gcc-5.4.0-colpo6h
    module load geos-3.6.2-gcc-5.4.0-vejexvy
    module load jpeg-9b-gcc-5.4.0-7s6bvoe
    module load libgeotiff-1.4.2-gcc-5.4.0-2emzhxh
    module load libpng-1.6.29-gcc-5.4.0-3qwhidp
    module load mpich-3.2-gcc-5.4.0-idlluti
    module load netcdf/4.4.1
    module load postgresql-9.5.3-gcc-5.4.0-fxmot7h
    module load zlib/1.2.11
    module load zstd-1.3.0-intel-17.0.4-eyn6gaw
    ./configure --with-libjson-c=$HPC_WORK --with-proj=$HPC_WORK --without-sqlite3 --prefix=$HPC_WORK \
      --with-cfitsio=/usr/local/software/spack/current/opt/spack/linux-rhel7-x86_64/gcc-5.4.0/cfitsio-3.450-colpo6hwycaaind2al47yriydf4oysyx \
      --with-cpp14
    # module load json-c-0.13.1-gcc-5.4.0-ffamohj
    # module load proj-6.2.0-gcc-5.4.0-iw4jbzs
    # --with-proj=/usr/local/software/spack/spack-git/opt/spack/linux-rhel7-broadwell/gcc-5.4.0/proj-6.2.0-iw4jbzsrjirypecjm4c7bmlhdvhgwjmx \
    

  10. expat

    Due to error messages, the options are specified as follows,

    ./configure --prefix=$CEUADMIN/expat/2.4.7 --without-docbook
    

  11. ruby

    This is done as follows,

    curl -sSL https://cache.ruby-lang.org/pub/ruby/2.7/ruby-2.7.5.tar.gz -o ruby-2.7.5.tar.gz
    tar -xzf ruby-2.7.5.tar.gz
    cd ruby-2.7.5
    ./configure --prefix=$CEUADMIN/ruby/2.7.5
    make
    make install
    rvm reset
    

  12. libgit2

    It uses Python 2.7 and libssh2 (as above). The following warnings are given

    /usr/bin/ld: warning: libssl.so.10, needed by /home/jhz22/hpc-work/lib/libssh2.so, may conflict with libssl.so.1.1
    /usr/bin/ld: warning: libcrypto.so.10, needed by /home/jhz22/hpc-work/lib/libssh2.so, may conflict with libcrypto.so.1.1
    

  13. nettle

    This is required by gnutls/3.7.8, which requires ceuadmin/gmp/6.2.1 and --enable-mini-gmp.

    Alternatively, we use

    ./configure --prefix=$HPC_WORK LDFLAGS=-L$HPC_WORK/lib64 LIBS=-lhogweed --disable-openssl \
                --with-lib-path=/usr/local/Cluster-Apps/ceuadmin/gmp/6.2.1/lib \
                --with-include-path=/usr/local/Cluster-Apps/ceuadmin/gmp/6.2.1/include
    

  14. gnutls

    It requires libunistring (optionally –with-included-unistring), libidn2, libunbound, and trousers, all prepared above.

    ./configure --prefix=$HPC_WORK --with-included-unistring --with-nettle-mini --enable-ssl3-support \
                CFLAGS=-I$HPC_WORK/include LDFLAGS=-L$HPC_WORK/lib LIBS=-lhogweed LIBS=-lunbound LIBS=-ltspi \
                --enable-sha1-support --disable-guile
    

    It is necessary to edit lib/pkcs11_privkey.c to make ck_rsa_pkcs_pss_params definition explicit. Then there is error with guile so we use –disable-guile.

    Under icelake (CentOS 8), this configuration is used for gnutls/3.8.4-icelake,

    module load gettext/0.21/gcc/qnrcglqo
    configure --prefix=$CEUADMIN/gnutls/3.8.4-icelake --with-included-unistring
    make
    make install
    

  15. lemma

    The documentation indicates a requirement of gcc/9.4, boost/1.78, OpenMP/3.1 and/or Intel MKL Library 2019 Update 1 but it is possible to proceed with gcc/11, cmake-3.19.7-gcc-5.4-5gbsejo, boost-1.66.0-gcc-5.4.0-slpq3un, ceuadmin/bgen. 

  16. The following scripts avoid option --without-ssl.

     wget -qO- https://github.com/axel-download-accelerator/axel/releases/download/v2.17.11/axel-2.17.11.tar.gz | \
     tar xvfz -
     cd axel-2.17.11
    ./configure --prefix=$CEUADMIN/axel/2.17.11  LDFLAGS=-L/usr/lib64 LIBS=-lssl
    

  17. OpenMS

    When the OpenMS module is loaded, pyopenms and alphapept also become available. 

  18. locuszoom

    The version adds chromosome X data and will have options using INTERVAL data. 

  19. rstudio

    This is replacement of the module by HPC (no longer working) with the RStudio itself unchanged.

    To save space, 2023.06.1+524 is removed upon installation of 2023.12.1+402. 

  20. pwcoco

    It compiles under gcc/9. Upon release of 1.1, this snapshot is removed. 

  21. regenie

    cd ~/rds/public_databases/software/
    wget -qO- https://github.com/rgcgithub/regenie/archive/refs/tags/v3.2.7.tar.gz | \
    tar xvfz -
    cd regenie-3.2.7/
    export BGEN_PATH=~/rds/public_databases/software/bgen
    module load zlib/1.2.11
    export ZLIB_LIBRARY=/usr/local/Cluster-Apps/zlib/1.2.11
    module load gcc/6
    module load cmake-3.19.7-gcc-5.4-5gbsejo
    module load intel/mkl/mic/2018.4
    mkdir build
    cd build
    cmake ..
    make
    

  22. autoconf

    git clone git://git.sv.gnu.org/autoconf
    cd autoconf/
    ./bootstrap
    module load help2man-1.47.4-gcc-4.8.5-phopsy7
    ./configure --prefix=/home/jhz22/rds/public_databases/software
    moke
    make install
    

  23. quarto

    It requires CentOS 8 (icelake, or login-q-*); otherwise it fails with message: GLIBC_2.18 not found.

    Upon installation, we supplement jupyter (python3 -m pip install jupyter –target=${PWD}/python; set PYTHONPATH in the module) and knitr (R_LIBS is set in the module). Furthermore, to allow for generality, python and R directories are symbollically linked.

    To enable rmarkdown, we need to get around issue of no Internet on icelake with the following,

    packages <- c("base64enc","bslib","cachem","cli","digest",
                  "ellipsis","evaluate","fastmap","fontawesome","fs",
                  "glue","htmltools","jquerylib","jsonlite","knitr",
                  "lifecycle","memoise","mime","R6","rappdirs",
                  "rlang","rmarkdown","sass","stringi","stringr",
                  "tinytex","vctrs","xfun","yaml")
    download.packages(packages,".")
    install.packages(dir(pattern="tar.gz"),lib="R",repos=NULL)
    

    somewhat repetitive nonetheless successful since some are package dependencies.

    $ quarto check

    [✓] Checking versions of quarto binary dependencies...
          Pandoc version 3.1.1: OK
          Dart Sass version 1.55.0: OK
    [✓] Checking versions of quarto dependencies......OK
    [✓] Checking Quarto installation......OK
          Version: 1.3.450
          Path: /usr/local/Cluster-Apps/ceuadmin/quarto/1.3.450-icelake/bin
    
    [✓] Checking basic markdown render....OK
    
    [✓] Checking Python 3 installation....OK
          Version: 3.8.11
          Path: /usr/local/software/spack/spack-views/rhel8-icelake-20211027_2/python-3.8.11/gcc-11.2.0/pqdmnzmwkrtp4e3gjibmcxho7g6ekpat/bin/python3
          Jupyter: 5.3.1
          Kernels: python3
    
    [✓] Checking Jupyter engine render....OK
    
    [✓] Checking R installation...........OK
          Version: 4.3.1
          Path: /usr/local/Cluster-Apps/R/4.3.1-icelake/lib64/R
          LibPaths:
            - /usr/local/Cluster-Apps/ceuadmin/quarto/R
            - /usr/local/Cluster-Apps/R/4.3.1-icelake/lib64/R/library
            - /rds/project/jmmh2/rds-jmmh2-public_databases/software/R
            - /rds/project/jmmh2/rds-jmmh2-public_databases/software/R-4.3.1/library
          knitr: 1.43
          rmarkdown: 2.23
    
    [✓] Checking Knitr engine render......OK
    

  24. xpdf

    To enable display fonts as in login-e-[1-4] in /etc/xpdfrc or ~/.xpdfrc

    # SJR addition
    fontFile Times-Roman           /usr/share/fonts/urw-base35/NimbusRoman-Regular.t1
    fontFile Times-Italic          /usr/share/fonts/urw-base35/NimbusRoman-Italic.t1
    fontFile Times-Bold            /usr/share/fonts/urw-base35/NimbusRoman-Bold.t1
    fontFile Times-BoldItalic      /usr/share/fonts/urw-base35/NimbusRoman-BoldItalic.t1
    fontFile Helvetica             /usr/share/fonts/urw-base35/NimbusSans-Regular.t1
    fontFile Helvetica-Oblique     /usr/share/fonts/urw-base35/NimbusSans-Italic.t1
    fontFile Helvetica-Bold        /usr/share/fonts/urw-base35/NimbusSans-Bold.t1
    fontFile Helvetica-BoldOblique /usr/share/fonts/urw-base35/NimbusSans-BoldItalic.t1
    fontFile Courier               /usr/share/fonts/urw-base35/NimbusMonoPS-Regular.t1
    fontFile Courier-Oblique       /usr/share/fonts/urw-base35/NimbusMonoPS-Italic.t1
    fontFile Courier-Bold          /usr/share/fonts/urw-base35/NimbusMonoPS-Bold.t1
    fontFile Courier-BoldOblique   /usr/share/fonts/urw-base35/NimbusMonoPS-BoldItalic.t1
    fontFile Symbol                /usr/share/fonts/urw-base35/StandardSymbolsPS.t1
    fontFile ZapfDingbats          /usr/share/fonts/urw-base35/D050000L.t1
    

  25. pspp

    Makeinfo

    The following replacement is used.

    MAKEINFO = ${SHELL} '/rds/project/jmmh2/rds-jmmh2-public_databases/software/pspp-2.0.0-pre1ge32bec/build-aux/missing' makeinfo --force --no-validate
    

    while the rest is copied from GNU build, https://benpfaff.org/~blp/pspp-master/20230624103130/x86_64/pspp-2.0.0-pre1ge32bec-x86_64-build20230624103419.tar.gz

  26. ncbi-vdb

    The installation is preceeded with module load gcc/6 flex-2.6.4-gcc-5.4.0-2u2fgon. Although configure is provided, cmake is used instead.

    cmake -DCMAKE_PREFIX_PATH=$CEUADMIN/ncbi-vdb/3.0.8 -DCMAKE_INSTALL_PREFIX=$CEUADMIN/ncbi-vdb/3.0.8 ..
    

  27. sra-tools

    First, create a symbolic link for ncbi-vdb/3.0.8 in the parent directory.

    cmake -DVDB_LIBDIR=$CEUADMIN/ncbi-vdb/3.0.8/lib64 -DCMAKE_INSTALL_PREFIX=$CEUADMIN/sra-tools/3.0.8 ..
    

    Drop constexpr as in constexpr size_type max_size() const { return SIZE_MAX; } in line 161 of the following header file:

    /usr/local/Cluster-Apps/ceuadmin/sra-tools/3.0.8/tools/external/driver-tool/util.hpp

  28. gatk

    The Python dependencies are set up as follows,

    module load anaconda/3.2019-10
    conda env create -p /usr/local/Cluster-Apps/ceuadmin/gatk/4.4.0.0/anaconda-3.2019-10 -f gatkcondaenv.yml
    conda activate /usr/local/Cluster-Apps/ceuadmin/gatk/4.4.0.0/anaconda-3.2019-10
    

    Workflow downloads: https://github.com/gatk-workflows 

  29. gdc

    It also includes gdc_dtt-ui 1.0.0 

  30. VB2

    To build from source, module htslib-1.9-gcc-5.4.0-p2taavl is needed yet with message /usr/bin/ld: warning: libbz2.so.1.0, needed by /usr/local/software/spack/spack-0.11.2/opt/spack/linux-rhel7-x86_64/gcc-5.4.0/htslib-1.9-p2taavlu3ieppo25otjfgvfu5tysbgho/lib/libhts.so, may conflict with libbz2.so.1. In fact, 1 == 1.0 so it is ignored. 

  31. regtools

    gcc/6 is required for C++11. 

  32. varscan

    Simply call java -jar $VARSCAN_HOME/VarScan.v2.4.6.jar after module load ceuadmin/VarScan/2.4.6

  33. tatami

    The following aspects are required.

    1. module load gcc/9
    2. mkdir build && cd build
    3. cmake .. -DCMAKE_INSTALL_PREFIX=$CEUADMIN/tatami/2.1.2
    4. cmake –build . –target install

  34. nextflow

    curl -fsSL get.nextflow.io | bash
    

  35. singularity

    mconfig --prefix=$CEUADMIN/singularity/4.0.3 --without-seccomp --without-conmon --without-suid
    cd builddir & make
    

  36. fraposa

    Several packages, including poetry, poetry-plugin-export and fraposa_pgsc, will be installed as follows,

    module load ceuadmin/Anaconda3/2023.09-0
    pip install poetry
    pip3 install poetry-plugin-export
    pip install --use-feature=fast-deps .
    scripts/run_example.sh
    

    This is necessay since by default peotry install will use user's home directory. As indicated from poetry install --help:

    The install command reads the poetry.lock file from the current directory, processes it, and downloads and installs all the libraries and dependencies outlined in that file. If the file does not exist it will look for pyproject.toml and do the same. 

  37. pgsc_calc

    Application, https://pgsc-calc.readthedocs.io/en/latest/index.html

    nextflow run pgscatalog/pgsc_calc -profile test,singularity
    

    It appears quarto is called so presumably under icelake. 

  38. deno

    Web: https://anaconda.org/conda-forge/deno/files

    wget https://anaconda.org/conda-forge/deno/1.40.2/download/linux-64/deno-1.40.2-hfc7925d_0.conda -O deno.conda
    unzip deno.conda
    tar --use-compress-program=unzstd -xvf pkg-deno-1.40.2-hfc7925d_0.tar.zst
    

  39. R

    This replaces R/4.3.2. It is also R/latest. 

  40. GitKraken

    This replaces 8.1.0. 

  41. automake

    This is required by pspp 2.0.0. 

  42. openssl

    Archive, https://www.openssl.org/source/old/

    wget -qO- https://www.openssl.org/source/openssl-3.2.1.tar.gz | \
    tar xvfz -
    cd openssl-3.2.1/
    export PERL5LIB=
    ./Configure --prefix=$CEUADMIN/openssl/3.2.1-icelake
    make
    make install
    

    One can check version with openssl version. For 1.1.1b, it is the followiong,

    wget -qO- https://github.com/openssl/openssl/archive/refs/tags/OpenSSL_1_1_1b.tar.gz | \
    tar xvfz -
    cd openssl-OpenSSL_1_1_1b/
    config --prefix=$CEUADMIN/openssl/1.1.1b-icelake
    make install
    

  43. openssh

    OpenSSL is called first to use the specific openssl, e.g.,

    module load ceuadmin/openssl/3.2.1-icelake
    ./configure --prefix=$CEUADMIN/openssh/9.7p1-icelake --with-ssl-dir=$CEUADMIN/openssl/3.2.1-icelake
    make
    make install
    

    Check is made with cat config.log | grep -i openssl. However, variable EVP_PKEY_bits is nonexistent. It turns out the default ssl is fine.

    configure --prefix=$CEUADMIN/openssh/9.7p1-icelake
    make
    make install
    

    However, EVP_KDF_ctrl is missing with git. 

  44. ensembl-vep

    Note that a nextflow pipeline is now available from nextflow/. A test has been done as follows,

    export PERL5LIB=
    module load ceuadmin/libssh
    git clone https://github.com/Ensembl/ensembl-vep.git
    cd ensembl-vep
    perl INSTALL.pl -l Bio -y GRCh37 -a acfp -g all -s homo_sapiens,homo_sapiens_merged --NO_TEST -c .vep
    ./vep -i examples/homo_sapiens_GRCh38.vcf --cache .vep
    

    A log file is kept here.

    Moreover, we could also add some plugin data, https://github.com/Ensembl/VEP_plugins.

    For the nearest gene, the Set::IntervalTree is required and is furnished as follows,

    cpanm -l /usr/local/Cluster-Apps/ceuadmin/ensembl-vep/111-icelake/Bio ExtUtils::CppGuess
    cpanm -l /usr/local/Cluster-Apps/ceuadmin/ensembl-vep/111-icelake/Bio ExtUtils::CBuilder
    cpanm -l /usr/local/Cluster-Apps/ceuadmin/ensembl-vep/111-icelake/Bio Set::IntervalTree
    

    In general, with perl -MCPAN -e shell we specify

    o conf makepl_arg "PREFIX=/usr/local/Cluster-Apps/ceuadmin/ensembl-vep/111-icelake/Bio" o conf makepl_arg "INSTALL_BASE=/usr/local/Cluster-Apps/ceuadmin/ensembl-vep/111-icelake/Bio" ‘o conf commit'

    to see commit: wrote '/home/jhz22/.cpan/CPAN/MyConfig.pm'. However, this is NOT the case here.

    Our module has PERL5LIB=$root/Bio:$root/Bio/lib/perl5/x86_64-linux-thread-multi/.

    Our example data here is 442807041.vcf,

    ##fileformat=VCFv4.0
    #CHROM	POS	ID	REF	ALT	QUAL	FILTER	INFO
    2	101332618	2:101332618_C_T	T	C	.	.	.
    

    and we run script,

    vep --input_file 442807041.vcf \
        --output_file 442807041.tab --force_overwrite \
        --offline --cache --dir_cache /usr/local/Cluster-Apps/ceuadmin/ensembl-vep/111-icelake/.vep \
        --species homo_sapiens --assembly GRCh37 --pick --nearest symbol --symbol \
        --tab
    

    Further information, https://www.ensembl.org/info/docs/tools/vep/script/vep_download.html

  45. json-c

    export LD_LIBRARY_PATH=
    wget -qO- https://github.com/json-c/json-c/archive/refs/tags/json-c-0.17-20230812.tar.gz | \
    tar xvfz -
    cd json-c-0.17-20230812
    mkdir build && cd build
    cmake -DCMAKE_INSTALL_PREFIX=/usr/local/Cluster-Apps/ceuadmin/json-c/0.17-20230812-icelake ..
    ln -sf /usr/include/locale.h xlocale.h
    make -I.
    make install
    

  46. LVM2

    Only device mapper is installed, i.e.,

    make device-mapper
    make install_device-mapper
    

  47. cryptosetup

    # incomplete libssh in need of a fix
    module load cmake/3.21.3/intel/wce32356
    wget -qO- https://www.libssh.org/files/0.10/libssh-0.10.6.tar.xz | \
    tar xfJ -
    cd libssh-0.10.6
    mkdir build && cd build
    cmake -DCMAKE_INSTALL_PREFIX=$CEUADMIN/libssh/0.10.6-icelake  ..
    make
    module load ceuadmin/json-c/0.17-20230812-icelake 
    module load ceuadmin/LVM2/2.03.23-icelake
    module load ceuadmin/popt/1.19-icelake
    module load gettext/0.21/gcc/qnrcglqo
    CFLAGS="-I/usr/local/Cluster-Apps/ceuadmin/LVM2/2.03.23-icelake/include" \
    configure --prefix=$CEUADMIN/cryptsetup/2.7.1-icelake --disable-ssh-token
    

  48. krb5-icelake

    It is possible to use the default ssh.

    configure --prefix=$CEUADMIN/krb5/1.21.2-icelake
    module load gettext/0.21/gcc/qnrcglqo
    make install
    

  49. git-2.44.0-icelake

    wget -qO- https://github.com/git/git/archive/refs/tags/v2.44.0.tar.gz | \
    tar xvfz -
    cd git-2.44.0
    make configure
    configure --prefix=${CEUADMIN}/git/2.44.0-icelake
    make
    make install
    

    There remains an error message git-remote-https: symbol lookup error: /usr/lib64/libk5crypto.so.3: undefined symbol: EVP_KDF_ctrl, version OPENSSL_1_1_1b

  50. peer

    This is documented separately in the R section, https://cambridge-ceu.github.io/csd3/applications/peer.html

  51. ImageMagick

    wget -qO- https://github.com/ImageMagick/ImageMagick/archive/refs/tags/7.1.1-31.tar.gz | \
    tar xvfz -
    cd ImageMagick-7.1.1-31/
    ./configure --prefix=$CEUADMIN/ImageMagick/7.1.1-31
    make
    make install
    

  52. rtmpdump

    It is necessary for RCurl 1.98-1.14. With curl-7.63.0-gcc-5.4.0-4uswlql we could also install rtracklayer 1.64.0.

    wget -qO- https://rtmpdump.mplayerhq.hu/download/rtmpdump-2.3.tgz |\
    tar xvfz -
    cd rtmpdump-2.3
    sed -i 's|/usr/local|/usr/local/Cluster-Apps/ceuadmin/rtmpdump/2.3|' Makefile
    sed -i 's|/usr/local|/usr/local/Cluster-Apps/ceuadmin/rtmpdump/2.3|' librtmp/Makefile
    make
    make install
    Rscript -e 'install.packages("RCurl")'
    Rscript -e 'BiocManager::install("rtracklayer")'
    

  53. spyder

    cd /rds/project/jmmh2/rds-jmmh2-public_databases/software
    wget https://github.com/spyder-ide/spyder/releases/download/v5.5.4/EXPERIMENTAL-Spyder-5.5.4-Linux-x86_64.sh
    bash EXPERIMENTAL-Spyder-5.5.4-Linux-x86_64.sh
    

  54. crux

    Web: https://crux.ms/ (https://github.com/crux-toolkit)

    The binary provided requires GLIBC_2.29 which is not avaiable yet problematic with ceuadmin/glibc/2.29-icelake.

    Under CentOS 7, it cannot access https://noble.gs.washington.edu/crux-downloads/pwiz-src-3_0_24044_fd6604f.tar.bz2. Under CentOS 8 we proceed with

    git clone https://github.com/crux-toolkit && cd crux-toolkit
    export PERL5LIB=
    module load ceuadmin/openssh/9.7p1-icelake \
                ceuadmin/openssl/3.2.1-icelake \
                ceuadmin/libssh/0.10.6-icelake \
                ceuadmin/boost/1.76.0 \
                ceuadmin/krb5/1.21.2-icelake ceuadmin/p7zip-zstd/17.05
    cmake .
    make
    

    but fail due to the same reason since ld -lrt requires librt which is part of GLIBC_2.29. Nevertheless under ext/, comment the last line of build_pwiz.cmake will enable the whole process with the following errors on pwiz

    /usr/bin/ld: cannot find -lpwiz_data_msdata
    /usr/bin/ld: cannot find -lpwiz_data_msdata_mz5
    /usr/bin/ld: cannot find -lpwiz_data_msdata_mzmlb
    /usr/bin/ld: cannot find -lpwiz_data_msdata_core
    /usr/bin/ld: cannot find -lpwiz_data_identdata
    /usr/bin/ld: cannot find -lhdf5pp
    collect2: error: ld returned 1 exit status
    

    related to ProteoWizard, https://github.com/ProteoWizard/pwiz/, i.e.,

    ...failed updating 10 targets...
    ...skipped 376 targets...
    ...updated 836 targets...
    At least one pwiz target failed to build.
    

    See build/src/ProteoWizard/libraries.

    There is a FAQ section from PrteoWizard (https://raw.githubusercontent.com/ProteoWizard/pwiz/981c7c70bfed46a145931dbea4da9e2edde72cf5/scripts/autotools/FAQ),

    Standalone pwiz is available from https://proteowizard.sourceforge.io/download.html or https://github.com/ProteoWizard/pwiz and from pwiz-skyline docker: https://hub.docker.com/r/chambm/pwiz-skyline-i-agree-to-the-vendor-licenses

    docker pull chambm/pwiz-skyline-i-agree-to-the-vendor-licenses
    docker run -it --rm chambm/pwiz-skyline-i-agree-to-the-vendor-licenses wine msconvert --help
    docker run -it --rm chambm/pwiz-skyline-i-agree-to-the-vendor-licenses wine SkylineCmd --help
    docker run -it --rm -e WINEDEBUG=-all -v /your/data:/data chambm/pwiz-skyline-i-agree-to-the-vendor-licenses \
           wine msconvert /data/file.raw
    

    Syntax for the last docker command using a virtual Linux machine (not CSD3!) with file named /home/$USER/D/Downloads/szwk901104i19801xms1.raw:

    docker run -it --rm -e WINEDEBUG=-all -v /home/jhz22/D/Downloads:/data chambm/pwiz-skyline-i-agree-to-the-vendor-licenses \                                                                  
           wine msconvert /data/szwk901104i19801xms1.raw --filter "peakPicking true 1-"
    

    The screen output is as follows,

    format: mzML
        m/z: Compression-Zlib, 64-bit
        intensity: Compression-Zlib, 32-bit
        rt: Compression-Zlib, 64-bit
    ByteOrder_LittleEndian
     indexed="true"
    outputPath: .
    extension: .mzML
    contactFilename:
    runIndexSet:
    
    spectrum list filters:
      peakPicking true 1-
    
    chromatogram list filters:
    
    filenames:
      /data\szwk901104i19801xms1.raw
    
    processing file: /data\szwk901104i19801xms1.raw
    calculating source file checksums
    
    writing output file: .\szwk901104i19801xms1.mzML
    

  55. p7zip-zstd

    A simple make is sufficient but it is necessary to implement a minor revision of install.sh, line 19, so that DEST_HOME=/usr/local/Cluster-Apps/ceuadmin/p7zip-zstd/17.05

  56. boost

    module load python/3.8.11/gcc/pqdmnzmw
    wget -qO- http://sourceforge.net/projects/boost/files/boost/1.76.0/boost_1_76_0.tar.gz | \
    tar xvzf -
    cd boost_1_76_0
    ./bootstrap.sh
    ./b2 --prefix=$CEUADMIN/boost/1.76.0 install
    ./bjam --with-regex --with-filesystem --with-iostreams --with-thread --with-program_options \
            --with-serialization --with-system --with-date_time install
    export BOOST_ROOT=/usr/local/src/boost_1_76_0
    

  57. wine

    module load ceuadmin/krb5/1.21.2-icelake
    configure --prefix=${CEUADMIN}/wine/8.21 --enable-win64
    make install
    

  58. seqkit

    An attempt is made with UniProt, current_release/uniref/uniref100/, knowledgebase/genome_annotation_tracks/UP000005640_9606_beds.

    #!/usr/bin/bash
    
    export fasta=~/rds/public_databases/UniProt/uniref100.fasta.gz
    export fasta=~/rds/public_databases/UniProt/uniprot_sprot.fasta.gz
    export regions=UP000005640_9606_proteome.bed
    
    module load ceuadmin/seqkit
    seqkit subseq --bed ${regions} --seq-type protein --out-file output.fasta ${fasta}
    
    awk '{print $4}' ${regions} | sort | uniq > protein_ids.txt
    seqkit grep -f protein_ids.txt ${fasta} > output.fasta
    
    # A contrast with the genomic counterpart
    # bedtools getfasta -fo output.fasta -s -fullHeader -fi ${fasta} -bed ${regions}
    

  59. FlashLFQ

    Web: https://github.com/smith-chem-wisc/FlashLFQ/wiki/Using-the-Command-Line

    In the script below, a benchmark provided by the software available from ${FLASHLFQ_ROOT}/src/Test/SampleFiles.

    module load ceuadmin/FlashLFQ
    flashlfq --idt MaxQuant/msms.txt --rep . --ppm 5 --chg
    

    which works on MaxQuant/msms.txt and generates FlashLfqSettings.toml, QuantifiedPeaks.tsv, QuantifiedPeptides.tsv and QuantifiedProteins.tsv

  60. docker (to be amended)

    The module docker/24.0.5 enables information such as command options to be available.

    export folder=$CEUADMIN/docker/24.0.5
    mkdir -p ${folder}
    cd ${folder}
    curl -fsSL https://download.docker.com/linux/static/stable/x86_64/docker-24.0.5.tgz -o docker.tgz
    tar xzvf docker.tgz --strip 1
    export PATH=${folder}:$PATH
    export DOCKER_HOST=unix:///run/user/$(id -u)/docker.sock
    # a normal run:
    dockerd --experimental --rootless
    systemctl --user enable docker
    systemctl --user start docker
    docker run hello-world
    

    A user-based set up of the rootless mode is necessary,

    export mydocker=$CEUADMIN/docker/24.0.5
    curl -fsSL https://raw.githubusercontent.com/docker/docker/master/contrib/dockerd-rootless-setuptool.sh \
         -o $mydocker/dockerd-rootless-setuptool.sh
    chmod +x $mydocker/dockerd-rootless-setuptool.sh
    curl -fsSL https://raw.githubusercontent.com/docker/docker/master/contrib/dockerd-rootless.sh \
         -o $mydocker/24.0.5/dockerd-rootless.sh
    chmod +x $mydocker/dockerd-rootless.sh
    wget -qO- https://github.com/rootless-containers/rootlesskit/releases/download/v2.1.0/rootlesskit-x86_64.tar.gz | \
    tar xvfz -
    echo "$USER:100000:65536" > ~/.subuid
    echo "$USER:100000:65536" > ~/.subgid
    export DOCKER_ROOTLESS_SUBUID=$(cat ~/.subuid)
    export DOCKER_ROOTLESS_SUBGID=$(cat ~/.subgid)
    ${mydocker}/dockerd-rootless-setuptool.sh install
    

    The process is modified slightly for the module. The use of ~/.subuid and ~/.subgid gets around the error messages,

    ########## BEGIN ##########
    sudo sh -eux <<EOF
    # Add subuid entry for jhz22
    echo "jhz22:100000:65536" >> /etc/subuid
    # Add subgid entry for jhz22
    echo "jhz22:100000:65536" >> /etc/subgid
    EOF
    ########## END ##########
    

    One can check user and group id's with

    id -u
    id -g
    

    e.g., chmod 644 ~/.subuid ~/.subgid.

    In turned out considerably easier to get different distributions from https://download.docker.com/linux/static/stable/x86_64/

  61. podman (to be amended)

    1. podman executable
    wget -qO- https://github.com/containers/podman/releases/download/v5.1.1/podman-remote-static-linux_amd64.tar.gz | tar xvfz -
    cd bin
    ln -s podman-remote-static-linux_amd64 podman
    echo "$USER:100000:65536" > $HOME/.subuid
    echo "$USER:100000:65536" > $HOME/.subgid
    cd ..
    
    1. podman-helpers/ and containers/
    # podman-helpers
    mkdir podman-helpers && cd podman-helpers
    wget https://github.com/containers/gvisor-tap-vsock/releases/download/v0.7.3/gvproxy-linux-amd64 -O gvproxy
    chmod +x gvproxy
    wget https://github.com/containers/fuse-overlayfs/releases/download/v1.14/fuse-overlayfs-x86_64
    chmod +x fuse-overlayfs-x86_64
    curl -o slirp4netns --fail -L https://github.com/rootless-containers/slirp4netns/releases/download/v1.3.1/slirp4netns-$(uname -m)
    chmod +x slirp4netns
    cd ..
    # containers
    mkdir containers
    echo '[containers]' > containers/containers.conf
    echo '[engine]' >> containers/containers.conf
    echo 'helper_binaries_dir = "/home/jhz22/podman-helpers"' >> containers/containers.conf
    echo 'events_logger = "file"' >> containers/containers.conf
    ln -sf ${PWD}/containers $HOME/.config/containers
    # podman
    module load ceuadmin/qemu
    pkill podman
    podman system connection list
    podman machine init
    podman machine start
    podman run quay.io/podman/hello
    podman pull docker.io/library/hello-world
    podman run --rm docker.io/library/hello-world
    # additional notes
    podman machine rm podman-machine-default
    podman system connection add --default podman-machine-default ssh://core@127.0.0.1:39137/run/user/10024/podman/podman.sock
    

  62. alpine

    Module ceuadmin/alpine/2.26-icelake compiled using gcc/11.2.0/gcc/rjvgspag

  63. qemu

    This is done as follows,

    export prefix=$CEUADMIN/qemu/
    export ENV_DIR=$prefix/venv
    mkdir build && cd build
    module load python/3.8.11/gcc/pqdmnzmw
    python -m venv --system-site-packages ${ENV_DIR}
    source $prefix/venv/bin/activate
    pip install --prefix=${ENV_DIR} sphinx
    pip install --prefix=${ENV_DIR} sphinx_rtd_theme==1.1.1
    pip install --prefix=${ENV_DIR} ninja
    wget -qO- https://download.qemu.org/qemu-9.0.1.tar.xz | \
    tar vxJf -
    cd qemu-9.0.1
    module load ncurses/6.2/gcc/givuz2aq libidn2/2.3.0/gcc/ph36ygoa 
    module load gettext/0.21/gcc/qnrcglqo
    module load ceuadmin/gnutls/3.8.4-icelake ceuadmin/nettle/3.9-icelake ceuadmin/krb5/1.21.2-icelake
    export gettext=/usr/local/software/spack/spack-views/rhel8-icelake-20211027_2/gettext-0.21/gcc-11.2.0/qnrcglqov5au2zv56tumhhf4n6mds34n
    ../configure --prefix=$prefix/9.0.1\
                 --target-list=x86_64-softmmu \
                 --extra-ldflags="-L4gettext -lintl" \
                 --extra-cflags="-I$gettext/include"
    make -j4
    make install
    

    Without the --taget-list option all will be built.

    Examples

    See https://github.com/guillem-riera/podman-machine-x86_64

    export EXTRA_ARGS=${EXTRA_ARGS:-$@}
    ## Fedora CoreOS image for x86_64 (QEMU)
    export PODMAN_X86_64_MACHINE_NAME=${PODMAN_X86_64_MACHINE_NAME:-x86_64}
    export PODMAN_X86_64_MACHINE_NAME_EXISTS=$(podman machine list | grep ${PODMAN_X86_64_MACHINE_NAME} | wc -l | tr -d '[:space:]')
    export PODMAN_QEMU_IMAGE="fedora-coreos-39.20231101.3.0-qemu.x86_64.qcow2.xz"
    export DOWNLOAD_DIR=${DOWNLOAD_DIR:-.}
    if [ ${PODMAN_X86_64_MACHINE_NAME_EXISTS} -lt 1 ]; then
        curl -C- -O "https://builds.coreos.fedoraproject.org/prod/streams/stable/builds/39.20231101.3.0/x86_64/${PODMAN_QEMU_IMAGE}"
        podman machine init --image ${DOWNLOAD_DIR}/${PODMAN_QEMU_IMAGE} ${PODMAN_X86_64_MACHINE_NAME} ${EXTRA_ARGS}
    else
        echo "[Info] Machine ${PODMAN_X86_64_MACHINE_NAME} already exists. If you want to recreate it, run 'podman machine rm ${PODMAN_X86_64_MACHINE_NAME}'"
    fi
    podman machine list
    lsmod
    ## TCG (Tiny Code Generator)
    xz -d ${PODMAN_QEMU_IMAGE}
    qemu-system-x86_64 -m 2048 -cpu qemu64 -smp 2 -drive file=fedora-coreos-39.20231101.3.0-qemu.x86_64.qcow2,format=qcow2 -accel tcg
    ## Change machine settings
    ### Get the machine config file name
    machineConfigFile="$(podman machine inspect ${PODMAN_X86_64_MACHINE_NAME} | jq -r '.[].ConfigPath.Path')"
    ### https://docs.openstack.org/image-guide/obtain-images.html
    wget https://cloud-images.ubuntu.com/noble/current/noble-server-cloudimg-amd64.img
    qemu-system-x86_64 -m 2048 -cpu qemu64 -smp 2 -drive file=noble-server-cloudimg-amd64.img,format=qcow2 -accel tcg
    ### No GUI
    qemu-system-x86_64 -m 2048 -cpu qemu64 -smp 2 -drive file=fedora-coreos-39.20231101.3.0-qemu.x86_64.qcow2,format=qcow2,cache=writeback -nographic
    

    where format=raw appears considerably faster but can make the image less flexible (e.g., no snapshots). 

  64. hivex

    wget -qO- https://download.libguestfs.org/hivex/hivex-1.3.23.tar.gz | tar xfz -
    cd hivex-1.3.23
    module load ceuadmin/ocaml/4.14.2
    module load ceuadmin/ruby/2.7.5
    export PERLB5LIB=
    autoreconf -i --force
    ./generator/generator.ml
    ./configure --prefix=$CEUADMIN/hivex/1.3.23
    make
    cd perl
    perl Makefile.PL INSTALLDIRS=site INSTALL_BASE=/usr/local/Cluster-Apps/ceuadmin/hivex/1.3.23
    cd ..
    make
    make install
    

    The release version has hivex.h but GitHub releases doesn't; however since ocaml is available it can be generated from generator/generator.ml.. The INSTALL_PREFIX is replaced with INSTALL_BASE. Moreover, ocaml, Perl and ruby are enabled. Due to permission issue, Python binding is not enabled.

    /usr/bin/install: cannot create regular file '/usr/local/software/spack/spack-views/._rhel8-icelake-20211027_2/uxqqj4xcjrltatqgtuoi2hp46uabtzom/python-3.8.11/gcc-11.2.0/pqdmnzmwkrtp4e3gjibmcxho7g6ekpat/lib/python3.8/site-packages/libhivexmod.cpython-38-x86_64-linux-gnu.so': Permission denied
    

  65. findlib

    wget -qO- http://download.camlcity.org/download/findlib-1.9.6.tar.gz | tar xfz -
    cd findlib-1.9.6
    configure -bindir $CEUADMIN/findlib/1.9.6/bin -mandir $CEUADMIN/findlib/1.9.6/man
    make
    make install
    

  66. opam

    opam init
    opam switch list
    opam switch list-available
    opam switch create ocaml-4.14
    opam install -y hivex --destdir $CEUADMIN/hivex/1.3.23
    

  67. libguestfs

    wget -qO- https://download.libguestfs.org/1.52-stable/libguestfs-1.52.2.tar.gz | tar xfz -
    cd libguestfs-1.52.2
    ./configure --prefix=$CEUADMIN/libguestfs/1.48.6 \
                --with-extra="findlib=$CEUADMIN/findlib/1.9.6" \
                --with-extra="hivex=$CEUADMIN/hivex/1.3.23"
    

    It appears export LIBGUESTFS_BACKEND=direct is working.