From f8b2e907e85d50cfee7b2654acb154a665852d16 Mon Sep 17 00:00:00 2001 From: Dawn Date: Tue, 1 Sep 2026 11:36:37 +0200 Subject: [PATCH] update BUSTER --- BUSTER/README.md | 65 ++++++++++++++++++++++++++++++++++++++++ BUSTER/build | 34 +++++++++++++++++++++ BUSTER/files/config.yaml | 16 ++++++++++ BUSTER/modulefile | 19 ++++++++++++ 4 files changed, 134 insertions(+) create mode 100644 BUSTER/README.md create mode 100755 BUSTER/build create mode 100644 BUSTER/files/config.yaml create mode 100644 BUSTER/modulefile diff --git a/BUSTER/README.md b/BUSTER/README.md new file mode 100644 index 0000000..4560125 --- /dev/null +++ b/BUSTER/README.md @@ -0,0 +1,65 @@ +# BUSTER + +BUSTER (Global Phasing Ltd.) — macromolecular refinement suite: +`refine`, `grade2`, `rhofit`, `buster-report`, `pipedream`, ... +Licence-gated: the PSI licence token is committed as `BUSTER/.licence` +and installed into the software tree at build time. + +- Upstream: https://www.globalphasing.com/buster/ +- Install doc followed: https://www.globalphasing.com/buster/manual/installation/CentOS7_64bit/index.html + +## Dependencies (per the GPhL doc) + +| Doc requirement | On Ra | +|---|---| +| CCP4 (all components; also provides coot for `visualise-*-coot`) | `runtime_deps: ccp4/8.0` | +| ImageMagick (buster-report) | `runtime_deps: ImageMagick/7.1.2-30` | +| PyMOL (buster-report) | `runtime_deps: pymol-open-source/3.1.0` | +| TeX/LaTeX (buster-report PDF) | system RPM — ask admins for `texlive` if missing | +| CSD-Core (Grade2, Mogul validation) | not licensed on Ra → `BDG_CSD_TOP_DIRECTORY=none` | +| autoPROC (optional, pipedream) | `module load autoPROC` by hand | + +The build writes `$PREFIX/setup_local.sh` (GPhL configure step) with +`BDG_CSD_TOP_DIRECTORY=none` and the obsolete CSD variables unset, so +Grade2 and Mogul checks are cleanly disabled. If PSI ever licenses +CSD-Core, point that variable at the CCDC top dir (must contain +`ccdc-software/`) and rebuild — or edit the installed file in place. +The doc's `BUSTER_latest` symlink is not needed: Pmodules versioning +covers it. + +## Build on Ra + +Stage the licence-gated snapshot by hand (download needs GPhL +credentials, so no `urls:`): save it in this module dir as +`BUSTER_snapshot_.tar.gz` (gitignored). Then: + +```sh +module use unstable && module load modbuild/2.1.3 +cd BUSTER +modbuild build \ + --tmpdir=/das/work/p21/p21515/.cache/Pmodules \ + --distdir=/das/work/p21/p21515/.cache/Pmodules \ + 20240710 +module use MX unstable && module load BUSTER/20240710 +``` + +## Verifying the install + +GPhL ships `checkdeps` exactly for this (~10 s; `-n` skips per-program +prompts): + +```sh +module load BUSTER/20240710 +checkdeps -n +``` + +Expected FINAL SUMMARY: SUCCESS for refine (licence), hydrogenate, +buster-report, pipedream; grade/grade2 will FAIL by design (CSD +disabled). `refine -h` should show licence info. Also run `checkdeps` +once from a normal user account to catch permission issues. + +## Adding a new version + +Stage the new `BUSTER_snapshot_.tar.gz` here, add the date under +`versions:` in `files/config.yaml`, build as above. `setup_local.sh` +carries over automatically (the build regenerates it). diff --git a/BUSTER/build b/BUSTER/build new file mode 100755 index 0000000..8bec2c7 --- /dev/null +++ b/BUSTER/build @@ -0,0 +1,34 @@ +#!/usr/bin/env modbuild + +pbuild::prep() { :; } + +pbuild::configure() { :; } + +pbuild::compile() { :; } + +pbuild::install() { + # BUSTER is licence-gated: the Global Phasing snapshot cannot be wget'd + # (download needs credentials), so stage it in this module dir first as + # BUSTER_snapshot_.tar.gz (gitignored), then unpack into $PREFIX. + # V_PKG (not V) so rebuilds as -2, -3 reuse the same staged tarball. + mkdir -p "${PREFIX}" + cd "${PREFIX}" + tar -xf "${BUILDBLOCK_DIR}/BUSTER_snapshot_${V_PKG}.tar.gz" --strip-components=1 || \ + std::die 42 "BUSTER: untar failed - is BUSTER_snapshot_${V_PKG}.tar.gz staged in ${BUILDBLOCK_DIR}?" + + # PSI licence token at the software home ($BDG_home) activates the suite + cp "${BUILDBLOCK_DIR}/.licence" "${PREFIX}/.licence" || \ + std::die 42 "BUSTER: .licence token missing from module dir" + + # GPhL configure step (doc section 6): no CSD-Core on Ra, so Grade2 and + # buster-report Mogul validation are disabled. Point BDG_CSD_TOP_DIRECTORY + # at a CCDC install top dir (contains ccdc-software/) if one ever arrives. + # The unset clears obsolete pre-May-2024 CSD variables per the doc. + cat > "${PREFIX}/setup_local.sh" <<'EOF' +export BDG_CSD_TOP_DIRECTORY=none +unset BDG_TOOL_MOGUL CSD_HOME BDG_TOOL_CSD_PYTHON_API +EOF + + [[ -r "${PREFIX}/setup.sh" ]] || \ + std::die 42 "BUSTER: setup.sh missing at PREFIX root - check tarball layout / strip level" +} diff --git a/BUSTER/files/config.yaml b/BUSTER/files/config.yaml new file mode 100644 index 0000000..243815b --- /dev/null +++ b/BUSTER/files/config.yaml @@ -0,0 +1,16 @@ +--- +format: 1 +BUSTER: + defaults: + group: MX + overlay: base + relstage: unstable + versions: + 20240710: + config: + relstage: unstable + # Per GPhL install doc: CCP4 required by all components; ImageMagick + + # PyMOL required by buster-report. TeX/LaTeX (also buster-report) is a + # system RPM, no module. ImageMagick/pymol-open-source are still + # unstable - promote them before promoting BUSTER to stable. + runtime_deps: [ccp4/8.0, ImageMagick/7.1.2-30, pymol-open-source/3.1.0] diff --git a/BUSTER/modulefile b/BUSTER/modulefile new file mode 100644 index 0000000..e2f4d88 --- /dev/null +++ b/BUSTER/modulefile @@ -0,0 +1,19 @@ +#%Module1.0 + +module-whatis "BUSTER: macromolecular refinement suite (refine, grade2, rhofit, pipedream)" +module-url "https://www.globalphasing.com/buster/" +module-license "Global Phasing Ltd. proprietary licence" +module-maintainer "MX Data " + +module-help " +BUSTER (Global Phasing Ltd.): refine, grade2, rhofit, buster-report, +pipedream and friends. CCP4, ImageMagick and PyMOL come in as module +dependencies; buster-report PDF output additionally needs system +TeX/LaTeX. Grade2/Mogul validation is disabled (no CSD-Core licence +on Ra) - use the Grade Web Server for non-confidential ligands. +For pipedream's processing step, also: module load autoPROC +" + +# BUSTER is activated by sourcing its setup script (sets BDG_home, PATH, etc.), +# which in turn sources our setup_local.sh (CSD disabled). +puts stdout "source $PREFIX/setup.sh;"