From 9946b945d166f3076e4b18acae4ae914ca092f35 Mon Sep 17 00:00:00 2001 From: Dawn Date: Fri, 17 Jul 2026 18:25:29 +0200 Subject: [PATCH] add autoPROC pmodule Scaffold the standard 4-file Pmodule for autoPROC (Global Phasing Ltd.): build, modulefile, files/config.yaml, README.md. The PSI licence token (autoPROC/.licence) already existed and is installed into the software tree at build time. Follows the phenix archetype for the licence-gated install: the snapshot tarball cannot be wget'd (download needs credentials), so it is staged by hand in the module dir as autoPROC_snapshot_.tar.gz and unpacked into PREFIX with --strip-components=1 (xds pattern). Runtime is activated by sourcing setup.sh via the modulefile. CCP4 8.0 and XDS are wired as runtime_deps (xds from this repo; ccp4 is a site module placeholder to confirm with `module avail ccp4`). Adds a .gitignore guard so the proprietary snapshot is never committed. Not built locally - to be tested on Ra. Co-Authored-By: Claude Fable 5 --- .gitignore | 1 + autoPROC/README.md | 68 ++++++++++++++++++++++++++++++++++++++ autoPROC/build | 20 +++++++++++ autoPROC/files/config.yaml | 13 ++++++++ autoPROC/modulefile | 16 +++++++++ 5 files changed, 118 insertions(+) create mode 100644 autoPROC/README.md create mode 100755 autoPROC/build create mode 100644 autoPROC/files/config.yaml create mode 100644 autoPROC/modulefile diff --git a/.gitignore b/.gitignore index bca2cd5..3dfb13e 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ pbuild.log +autoPROC_snapshot_*.tar.gz diff --git a/autoPROC/README.md b/autoPROC/README.md new file mode 100644 index 0000000..a9be6bb --- /dev/null +++ b/autoPROC/README.md @@ -0,0 +1,68 @@ +# autoPROC + +autoPROC (Global Phasing Ltd.) is an automated pipeline for integrating and scaling +macromolecular crystallography diffraction data. It is licence-gated: the PSI licence +token is committed as `autoPROC/.licence` and installed into the software tree at build +time. CCP4 8.0 and XDS are hard runtime requirements and are pulled in as module +dependencies. + +## Build on Ra + +Step 1: login with your `-adm` account + +``` +kinit xxxx_x-adm +aklog +``` + +Step 2: load the latest Pmodules package + +``` +module use unstable +module load Pmodules/2.0.0 +``` + +Step 3: stage the licence-gated snapshot. Download it from Global Phasing (needs +credentials, so `wget` in the build script will not work) and save it in this module +directory named by its snapshot date. Do NOT commit it (it is proprietary and large; +`.gitignore` already excludes `autoPROC_snapshot_*.tar.gz`). + +``` +cd autoPROC +# e.g. save the download as autoPROC_snapshot_20240710.tar.gz here +``` + +Step 4: edit `files/config.yaml` to add the real snapshot date as the version, and +confirm the `ccp4` dependency coordinates for this cluster: + +``` +module avail ccp4 # adjust ccp4/8.0 in runtime_deps if the name/version differs +vi files/config.yaml +``` + +Step 5: build (installs to `/opt/psi/MX/autoPROC/`) + +``` +./build 20240710 +``` + +Step 6: confirm the module loads and autoPROC is licensed + +``` +module use MX unstable +module load autoPROC/20240710 +process -h +``` + +## Assumptions to verify on the first real build + +- The snapshot tarball has a single top-level directory, so `tar --strip-components=1` + puts `setup.sh` directly at `$PREFIX/setup.sh`. If the layout differs, adjust the + strip level in `build`. +- autoPROC reads its licence from the software home, i.e. `$autoPROC_home/.licence`, + which equals `$PREFIX/.licence` after the strip. `build` copies `.licence` there. +- If loading the module fails with `... : unbound variable` (setup.sh under `set -u`), + add `puts stdout "set +x nounset"` before the `source` line in `modulefile` (same fix + used for phenix). +- There is no `ccp4` module in this repo; `runtime_deps` references a site CCP4 module. + Set the exact name/version from `module avail ccp4`. diff --git a/autoPROC/build b/autoPROC/build new file mode 100755 index 0000000..566bdfc --- /dev/null +++ b/autoPROC/build @@ -0,0 +1,20 @@ +#!/usr/bin/env modbuild + + +pbuild::prep() { :; } + +pbuild::configure() { :; } + +pbuild::compile() { :; } + +pbuild::install() { + # autoPROC is licence-gated: the Global Phasing snapshot cannot be wget'd + # (download needs credentials), so stage it in this module dir first as + # autoPROC_snapshot_.tar.gz, then unpack into $PREFIX. Not committed to git. + mkdir -p "${PREFIX}" + cd "${PREFIX}" + tar -xf "${BUILDBLOCK_DIR}/autoPROC_snapshot_${V}.tar.gz" --strip-components=1 + + # Install the PSI licence token at the software home so autoPROC is activated. + cp "${BUILDBLOCK_DIR}/.licence" "${PREFIX}/.licence" +} diff --git a/autoPROC/files/config.yaml b/autoPROC/files/config.yaml new file mode 100644 index 0000000..8d8995a --- /dev/null +++ b/autoPROC/files/config.yaml @@ -0,0 +1,13 @@ +--- +format: 1 +autoPROC: + defaults: + group: MX + overlay: base + relstage: unstable + versions: + 20240710: + config: + relstage: unstable + # XDS = in-repo module; CCP4 = site module, confirm name with `module avail ccp4`. + runtime_deps: [xds/20251103, ccp4/8.0] diff --git a/autoPROC/modulefile b/autoPROC/modulefile new file mode 100644 index 0000000..6499a5c --- /dev/null +++ b/autoPROC/modulefile @@ -0,0 +1,16 @@ +#%Module1.0 + +module-whatis "autoPROC: automated data processing for macromolecular crystallography" +module-url "https://www.globalphasing.com/autoproc/" +module-license "Global Phasing Ltd. proprietary licence" +module-maintainer "MX Data " + +module-help " +autoPROC (Global Phasing Ltd.) is an automated pipeline for integrating and scaling +macromolecular crystallography diffraction data. It wraps XDS, CCP4 and other tools and +requires a valid Global Phasing licence plus CCP4 8.0 and XDS at runtime (both pulled in +as module dependencies). +" + +# autoPROC is activated by sourcing its setup script (sets autoPROC_home, PATH, etc.). +puts stdout "source $PREFIX/setup.sh;" -- 2.54.0