From 05653093ff45f90637e0104d04ad6882b6a366c9 Mon Sep 17 00:00:00 2001 From: Spencer Bliven Date: Wed, 12 Oct 2022 16:20:40 +0200 Subject: [PATCH] New module: PEET --- EM/PEET/README.md | 27 ++++++++++++++++++++ EM/PEET/build | 41 ++++++++++++++++++++++++++++++ EM/PEET/files/_config.yaml.disable | 8 ++++++ EM/PEET/files/variants | 1 + EM/PEET/modulefile | 30 ++++++++++++++++++++++ 5 files changed, 107 insertions(+) create mode 100644 EM/PEET/README.md create mode 100755 EM/PEET/build create mode 100644 EM/PEET/files/_config.yaml.disable create mode 100644 EM/PEET/files/variants create mode 100644 EM/PEET/modulefile diff --git a/EM/PEET/README.md b/EM/PEET/README.md new file mode 100644 index 0000000..9828d75 --- /dev/null +++ b/EM/PEET/README.md @@ -0,0 +1,27 @@ +# PEET + +[Particle Estimateion for Electron Tomography](https://bio3d.colorado.edu/PEET/) + +## Installation + +PEET is shipped as a self-expanding installation script. Run `./build` to +install. + +An experimental config.yaml files is included using Pmodules/1.1.10 syntax. +This should probably not be used until yaml support in modbuild stabilizes. + +## Testing + +- `calcFSC` should print the version number + +## Build notes + +Building was successful with Pmodules 1.1.8 but not 1.1.9 or 1.1.10. + +Linking the binary is a bit of a pain. It requires gcc to be loaded to provide +relatively recent versions of libstdc++.so.6. I didn't fine what exact version +Matlab MCR expects, but 9.5.0 seemed to work. MCR is linked dynamically at +runtime through LD_LIBRARY_PATH. This is not set in the modulefile as expected, +but rather in wrapper scripts which source particle.cfg. Sed commands in +pbuild::install update this file so that it reads the loaded modules correctly. + diff --git a/EM/PEET/build b/EM/PEET/build new file mode 100755 index 0000000..27d7f66 --- /dev/null +++ b/EM/PEET/build @@ -0,0 +1,41 @@ +#!/usr/bin/env modbuild + +pbuild::add_to_group 'EM' + + +pbuild::prep() { + dst="$PMODULES_DISTFILESDIR/Particle_${V_PKG}_linux.sh" + if [ -f "$dst" ]; then + echo "Found cached $dst" >&2 + else + ${curl:-curl} \ + --location \ + --fail \ + --output "$dst" \ + "https://bio3d.colorado.edu/ftp/PEET/linux/Particle_${V_PKG}_linux.sh" + fi + } + +pbuild::configure() { + : +} + +pbuild::compile() { + : +} + +pbuild::install() { + mkdir -p "$PREFIX/etc/profile.d" + # Installs into $PREFIX/Particle + sh "$PMODULES_DISTFILESDIR/Particle_${V_PKG}_linux.sh" \ + --yes \ + --dir "$PREFIX" \ + --script "$PREFIX/etc/profile.d" + + # Fix paths + sed -ri 's,/usr/local/Particle(Runtime)?,$PEET_HOME,g' $PREFIX/Particle/*.{csh,sh,cfg} $PREFIX/etc/profile.d/Particle.{c,}sh + sed -ri 's,MCR_ROOT=.*,MCR_ROOT=$MATLAB_DIR,g' $PREFIX/Particle/*.cfg + + mv $PREFIX/Particle/* $PREFIX/ + rm -r $PREFIX/Particle +} diff --git a/EM/PEET/files/_config.yaml.disable b/EM/PEET/files/_config.yaml.disable new file mode 100644 index 0000000..64da532 --- /dev/null +++ b/EM/PEET/files/_config.yaml.disable @@ -0,0 +1,8 @@ +overlay: base +relstage: stable +group: EM +shasums: + PEET/1.15.1a: de4e9104f90b9379502a34b58be33eafd5514d554002a94efe2adba6f44785e6 + +PEET/1.15.1a: + - relstage: unstable diff --git a/EM/PEET/files/variants b/EM/PEET/files/variants new file mode 100644 index 0000000..202e7b9 --- /dev/null +++ b/EM/PEET/files/variants @@ -0,0 +1 @@ +PEET/1.15.1a unstable gcc/9.5.0 matlab/2020b diff --git a/EM/PEET/modulefile b/EM/PEET/modulefile new file mode 100644 index 0000000..7510133 --- /dev/null +++ b/EM/PEET/modulefile @@ -0,0 +1,30 @@ +#%Module1.0 + +module-whatis "PEET (Particle Estimation for Electron Tomography) is an open-source package for aligning and averaging particles in 3-D subvolumes extracted from tomograms." +module-url "https://bio3d.colorado.edu/PEET/" +module-license "GPLv2 license" +module-maintainer "Spencer Bliven " + +module-help " +PEET (Particle Estimation for Electron Tomography) is an open-source package +for aligning and averaging particles in 3-D subvolumes extracted from +tomograms. It seeks the optimal alignment of each particle against a +reference volume through several iterations. If PEET and IMOD are both +installed, most PEET operations are available from the eTomo graphical +user interface in IMOD. PEET uses the parallel processing framework +within IMOD, so that the lengthy computations can be distributed to +multiple cores on one computer, to a set of linked workstations, or to +a cluster. PEET is written in Matlab and a compiled version is +distributed along with the Matlab runtime environment needed to run it. + +> Nicastro D, Schwartz C, Pierson J, Gaudette R, Porter ME and McIntosh JR + (2006), \"The molecular architecture of axonemes revealed by cryoelectron + tomography.\", Science. Vol. 313(5789), pp. 944-948. + DOI:10.1126/science.1128618 +> Heumann JM, Hoenger A and Mastronarde DN (2011), \"Clustering and variance + maps for cryo-electron tomography using wedge-masked differences.\", J Struct + Biol. Vol. 175(3), pp. 288-299. DOI:10.1016/j.jsb.2011.05.011 +" + +setenv PARTICLE_DIR "$PREFIX" +