From 5eff01e86e20b5c530834f474be921b1f1e2dd7c Mon Sep 17 00:00:00 2001 From: Dawn Date: Fri, 17 Jul 2026 18:25:29 +0200 Subject: [PATCH 1/6] 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;" From 19db41492372b95f5335e9035c45d081df581ad4 Mon Sep 17 00:00:00 2001 From: Dawn Date: Fri, 14 Aug 2026 11:42:30 +0200 Subject: [PATCH 2/6] update gitignore --- .gitignore | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitignore b/.gitignore index 3dfb13e..6dc6a7e 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,4 @@ +*.tar.gz +.DS_Store pbuild.log autoPROC_snapshot_*.tar.gz From 1a62e9837079c825fd8df088c2dcaba5c26b4fef Mon Sep 17 00:00:00 2001 From: duan_j Date: Wed, 5 Aug 2026 09:16:14 +0200 Subject: [PATCH 3/6] update DIALS: rememebr to add support to /entry/data/data, see issue in aareproc repo --- DIALS/build | 12 ++++++------ DIALS/files/config.yaml | 3 +++ DIALS/modulefile | 2 +- 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/DIALS/build b/DIALS/build index 4a4e3ad..7964361 100644 --- a/DIALS/build +++ b/DIALS/build @@ -9,12 +9,12 @@ pbuild::compile() { :; } pbuild::install() { cd "${PREFIX}" - wget https://dials.diamond.ac.uk/diamond_builds/dials-linux-x86_64-conda3.tar.xz - tar -xJf dials-linux-x86_64-conda3.tar.xz - cd dials-installer-dev + wget https://github.com/dials/dials/releases/download/v3.29.0/dials-v3-29-0-linux-x86_64.tar.xz + tar -xJf dials-v3-29-0-linux-x86_64.tar.xz + cd dials-installer ./install --prefix=$PREFIX cd "${PREFIX}" - rm dials-linux-x86_64-conda3.tar.xz - rm -r dials-installer-dev - ln -s dials-dev20251026 dials-v3-25-0 + rm dials-v3-29-0-linux-x86_64.tar.xz + rm -r dials-installer +# ln -s dials-dev20251026 dials-v3-29-0 } diff --git a/DIALS/files/config.yaml b/DIALS/files/config.yaml index 26c034a..f685112 100644 --- a/DIALS/files/config.yaml +++ b/DIALS/files/config.yaml @@ -9,3 +9,6 @@ DIALS: 3.25.0: config: relstage: unstable + 3.29.0: + config: + relstage: unstable diff --git a/DIALS/modulefile b/DIALS/modulefile index 3cbe3fe..0d02dd9 100644 --- a/DIALS/modulefile +++ b/DIALS/modulefile @@ -11,4 +11,4 @@ X-ray crystallography for structural biology has benefited greatly from a number License : https://dials.github.io/license.html " -puts stdout "source $PREFIX/dials-v3-25-0/dials_env.sh;" +puts stdout "source $PREFIX/dials-v3-29-0/dials_env.sh;" From b5494074e01267b053e5864a91b41d79af3aabd8 Mon Sep 17 00:00:00 2001 From: duan_j Date: Wed, 12 Aug 2026 16:07:29 +0200 Subject: [PATCH 4/6] updated README.md --- README.md | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 9958053..a1a0290 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,12 @@ # MX +This project includes all MX modules in use. -This project includes all MX modules in use. All modules are build with Pmodules/2.0 version. -Documentation for how-to-build modules can be found in: https://pmodules.gitpages.psi.ch/index.html +All modules are build with modbuild/2.1.2 +Documentation for how-to-build modules can be found in: https://github.com/Pmodules/Pmodules/wiki -## PModule tips -1. Pmodules is name/version (not name/name-version) +## Module tips +1. modules is name/version (not name/name-version) 2. Solution to unbound variables: `/opt/psi/MX/phenix/phenix-1.20-4459/build/setpaths.sh: line 4: LIBTBX_BUILD_RELOCATION_HINT: unbound variable` is to add `puts stdout "set +x nounset"` before the source statement in the modulefile - +3. wait until the tutorial on 18th August 2026 From bbfb701244a340485300d40685db8ef6a1428b8d Mon Sep 17 00:00:00 2001 From: duan_j Date: Fri, 14 Aug 2026 11:37:24 +0200 Subject: [PATCH 5/6] added jfjoch_viewer rc.160, changed 1st line in modulefile from Pmodule to Module to show in the new module --- jfjoch_viewer/build | 2 +- jfjoch_viewer/files/config.yaml | 2 +- jfjoch_viewer/modulefile | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/jfjoch_viewer/build b/jfjoch_viewer/build index e196f02..1c380e6 100644 --- a/jfjoch_viewer/build +++ b/jfjoch_viewer/build @@ -10,5 +10,5 @@ pbuild::compile() { :; } pbuild::install() { mkdir "${PREFIX}/bin" cd "${PREFIX}/bin" - tar -xvzf "${BUILDBLOCK_DIR}/jfjoch_viewer-1.0.0-rc.158-linux-cuda12.tgz" --strip-components=1 + tar -xvzf "${BUILDBLOCK_DIR}/jfjoch_viewer-1.0.0-rc.160-linux-cuda12.tgz" --strip-components=1 } diff --git a/jfjoch_viewer/files/config.yaml b/jfjoch_viewer/files/config.yaml index 44d975b..c52e9c2 100644 --- a/jfjoch_viewer/files/config.yaml +++ b/jfjoch_viewer/files/config.yaml @@ -6,7 +6,7 @@ jfjoch_viewer: overlay: base relstage: stable versions: - 1.0.0-rc.156: + 1.0.0-rc.160: config: relstage: stable build_requires: ["cuda/12.8.1"] diff --git a/jfjoch_viewer/modulefile b/jfjoch_viewer/modulefile index 9d6b861..8d074e7 100644 --- a/jfjoch_viewer/modulefile +++ b/jfjoch_viewer/modulefile @@ -1,4 +1,4 @@ -#%Pmodule +#%Module module-whatis "jfjoch viewer trying install offline processing for mx beamlines" module-url "https://gitea.psi.ch/mx/-/packages/rpm/jfjoch-viewer" From f9b3121b47eae0c8016cb1a67378474462417b41 Mon Sep 17 00:00:00 2001 From: Dawn Date: Fri, 14 Aug 2026 11:45:14 +0200 Subject: [PATCH 6/6] update module header from Pmodule to Module --- olex2/modulefile | 2 +- phenix/modulefile | 2 +- xds/modulefile | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/olex2/modulefile b/olex2/modulefile index e46b9d1..729c843 100644 --- a/olex2/modulefile +++ b/olex2/modulefile @@ -1,4 +1,4 @@ -#%Pmodule +#%Module module-whatis "Olex2 is a free and comprehensive software package for determining, visualizing, and analyzing small-molecule crystal structures" module-url "https://www.olexsys.org/olex2" diff --git a/phenix/modulefile b/phenix/modulefile index fb9628b..95ec310 100644 --- a/phenix/modulefile +++ b/phenix/modulefile @@ -1,4 +1,4 @@ -#%Module1.0 +#%Module module-whatis "Python-based Hierarchical ENvironment for Integrated Xtallography" module-url "http://www.phenix-online.org/" diff --git a/xds/modulefile b/xds/modulefile index 7d7d24a..f4ab397 100644 --- a/xds/modulefile +++ b/xds/modulefile @@ -1,4 +1,4 @@ -#%Pmodule +#%Module module-whatis "X-ray Detector Software for processing single-crystal monochromatic diffraction data recorded by the rotation method" module-url "http://xds.mpimf-heidelberg.mpg.de/"