Dials #20

Closed
duan_j wants to merge 24 commits from dials into main
34 changed files with 429 additions and 101 deletions
+3
View File
@@ -1 +1,4 @@
*.tar.gz
.DS_Store
pbuild.log
autoPROC_snapshot_*.tar.gz
+2
View File
@@ -0,0 +1,2 @@
# Paul Scherrer Institute, Macromolecular Crystallography
3938465545 2992269931 2851646202 2685600639 2346109776 3745393523
+30
View File
@@ -0,0 +1,30 @@
XDS
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: go into DIALS directory, update config.yaml to add newest release version and build module with that release name
```
cd DIALS
vi files/config.yaml
./build 3.25.0
```
Step 4: confirm that the module loads as expected
PS:
Unsupported dtype issue is resolved by changing modules/dxtbx/src/dxtbx/format/FormatNXmx.py
allowing the return of also /entry/data/data to the handle:
https://github.com/dials/dials/issues/3033
+20
View File
@@ -0,0 +1,20 @@
#!/usr/bin/env modbuild
pbuild::prep() { :; }
pbuild::configure() { :; }
pbuild::compile() { :; }
pbuild::install() {
cd "${PREFIX}"
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-v3-29-0-linux-x86_64.tar.xz
rm -r dials-installer
# ln -s dials-dev20251026 dials-v3-29-0
}
+14
View File
@@ -0,0 +1,14 @@
---
format: 1
DIALS:
defaults:
group: MX
overlay: base
relstage: stable
versions:
3.25.0:
config:
relstage: unstable
3.29.0:
config:
relstage: unstable
+14
View File
@@ -0,0 +1,14 @@
#%Module1.0
module-whatis "DIALS: Diffraction Integration for Advanced Light Sources"
module-url "https://dials.github.io/"
module-license "DIALS license"
module-maintainer "Jiaxin Duan <jiaxin.duan@psi.ch>"
module-help "
X-ray crystallography for structural biology has benefited greatly from a number of advances in recent years including high performance pixel array detectors, new beamlines capable of delivering micron and sub-micron focus and new light sources such as X-FELs. The DIALS project is a collaborative endeavour to develop new diffraction integration software to meet the data analysis requirements presented by these recent advances. There are three end goals: to develop an extensible framework for the development of algorithms to analyse X-ray diffraction data; the implementation of algorithms within this framework and finally a set of user facing tools using these algorithms to allow integration of data from diffraction experiments on synchrotron and free electron sources.
License : https://dials.github.io/license.html
"
puts stdout "source $PREFIX/dials-v3-29-0/dials_env.sh;"
+7 -36
View File
@@ -1,41 +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/1.1.17 version.
Documentation for how-to-build modules can be found in: https://pmodules.gitpages.psi.ch/index.html
## Examples for Editing Readme
- [ ] [writing bulletpoints]
- [ ] [write a bulletpoint with a link](https://docs.gitlab.com/ee/user/project/merge_requests/creating_merge_requests.html)
```
This is a code block example
```
## How to use the Git-Workflow
Please follow the below steps to add content to the Repo. The main branch is a proteced branch, which is why you need/want to follow the steps below. If something is unclear, dont hesitate to ask Kate or Greta.
- [ ] [<strong>In the Terminal</strong>: git clone the repo/ git pull to ensure you have the latest changes]
- [ ] [<strong>On the Repo Webpage</strong>: cick on "Issues" (left side) and create a "New issue" ]
- [ ] [--> add a title for the issue and add a description if you want]
- [ ] [--> click on "Create Merge Request". It will autmatically refer to the issue that you openend and will close this issue if the MR is accepted. It will also delete the created branch after the MR is accepted if the box is checked (usually default)]
- [ ] [--> The merge request will be created and will be in a state "Draft"]
- [ ] [<strong>In the Terminal</strong>: git pull again, as a new branch was created with the opened Merge request]
- [ ] [--> git checkout 'new_branch_name'(you can see the name of the branch with git branch -r , starting with the number of your issue)]
- [ ] [--> git status , check you are on the new branch]
- [ ] [--> on the new branch, edit your files]
- [ ] [--> git add . (add all edited files)]
- [ ] [--> git commit -m "add commit message"]
- [ ] [--> git push (it will push to the new branch]
- [ ] [<strong>On the Repo Webpage</strong>: open the MR , and change the status to "Mark as Ready" ]
- [ ] [--> the merge request can be actively merged (can also be assigned to other people to check/approve) ]
- [ ] [--> the issue/MR and branch should be deleted on the Repo. For further work, make sure to git checkout to main/next new branch etc.. ]
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
## 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
+3 -16
View File
@@ -1,18 +1,5 @@
### Rosetta installation remarks:
# Rosetta
As of July 2024, phenix 1.21 exists, and also Rosetta 3.14. These do not work together , as phenix/1.21.1 misses a file called command_line.py , which is existent in phenix 1.20 and is required for Rosetta. Also the compilation of phenix+Rosetta fails on RH7, so def needs to be done on RH8 nodes (Ra) and Rosetta 3.14 fails during compilation. --> check for new phenix releases if the compatabilty with Rosetta latest release was tested etc .
As a result, phenix/1.20 plus Rosetta 3.13 is used. (July 2024)
The installation of Rosetta +phenix requires a fully functional new phenix installation. A phenix command is run after the installation of Rosetta that builds the interface between the two:
- Install phenix ( see phenix )
- Install Rosetta as usual (see Pmodules MX Rosetta build script)
- copy the site.settings file into the correct folder as described in "NOTE: On linux, if you are using GCC 5.1 or later (Ubuntu 16.04 or later), there is an ABI change that requires an additional flag to allow linking between our CentOS 6 binary build and Rosetta. To apply this flag, copy this site.settings file to ${PHENIX_ROSETTA_PATH}/main/source/tools/build/site.settings before running this final step" "(https://phenix-online.org/documentation/reference/rosetta_install.html)
- then run the command
rosetta.build_phenix_interface nproc=10
- run rosetta.run_tests to test it.
IMPORTANT, both phenix and rosetta need to have the same file permisssions /owner as described in the phenix readme. In both cases the recommendation is to do it as -adm account on /afs/psi.ch/group/HPCE/user/xxx and then run the installation from there (RH8 needed, RA therefore )
The Rosetta software suite includes algorithms for computational modeling and analysis of protein structures. It has enabled notable scientific advances in computational biology, including de novo protein design, enzyme design, ligand docking, and structure prediction of biological macromolecules and macromolecular complexes.
https://github.com/RosettaCommons/rosetta
+11 -11
View File
@@ -1,21 +1,21 @@
#!/usr/bin/env modbuild
pbuild::prep(){
:
}
pbuild::configure(){
pbuild::configure() {
:
}
pbuild::compile() {
:
cd "$SRC_DIR/main/source" || exit 1
./scons.py -j10 mode=release bin
}
pbuild::install() {
mkdir "$PREFIX"
cd "$PREFIX"
tar -xf "${PMODULES_DISTFILESDIR}/Rosetta-${V}.tgz" --strip-components=1
# Copy the contents of the source code into <PREFIX>
cp -r "$SRC_DIR/main/"* "$PREFIX/"
# Ensure target directory exists
mkdir -p "$PREFIX/bin"
# Copy compiled binaries to the installation directory
install -m 755 "$SRC_DIR/main/source/bin/"* "$PREFIX/bin/"
}
+30 -3
View File
@@ -1,3 +1,5 @@
---
# yamllint disable rule:line-length
format: 1
Rosetta:
defaults:
@@ -5,7 +7,32 @@ Rosetta:
overlay: base
relstage: unstable
urls:
- url: https://www.rosettacommons.org/downloads/academic/3.13/rosetta_bin_linux_3.13_bundle.tgz
name: Rosetta-${V}.tgz
- url: https://downloads.rosettacommons.org/downloads/academic/${V_PKG}/rosetta_source_${V_PKG}_bundle.tar.bz2
shasums:
rosetta_source_3.15_bundle.tar.bz2: ac4665fb0173ac1e1ed060d4a894964d14a32aba49e3ee2f3f50e83c26ba0fb1
versions:
3.13:
3.15:
variants:
- overlay: base
systems: [.*.merlin7.psi.ch]
target_cpus: [x86_64]
relstage: unstable
build_requires:
- gcc/12.3.0
- Python/3.9.21
runtime_deps:
- gcc/12.3.0
- Python/3.9.21
- overlay: base
target_cpus: [aarch64]
systems: [gpu0.*.merlin7.psi.ch]
relstage: unstable
build_requires:
- gcc/12.3.0
- Python/3.9.21
runtime_deps:
- gcc/12.3.0
- Python/3.9.21
+10 -21
View File
@@ -1,25 +1,14 @@
#%Module1.0
module-whatis "Rosetta™ is a molecular modeling software package for understanding protein structures, protein design, protein docking, protein-DNA and protein-protein interactions."
module-url "https://www.rosettacommons.org/home"
module-license "Academic License"
module-maintainer "greta.assmann@psi.ch>"
module-whatis "The Rosetta software suite includes algorithms for computational modeling and analysis of protein structures"
module-url "https://github.com/RosettaCommons/rosetta"
module-license "Rosetta Software Non-Commercial License Agreement (https://github.com/RosettaCommons/rosetta?tab=License-1-ov-file)"
module-maintainer "João Pedro Agostinho de Sousa <joao.agostinho-de-sousa@psi.ch>"
module-help "
The Rosetta software suite includes algorithms for computational modeling and analysis of protein structures. It has enabled notable scientific advances in computational biology, including de novo protein design, enzyme design, ligand docking, and structure prediction of biological macromolecules and macromolecular complexes
.
Rosetta development began in the laboratory of Dr. David Baker at the University of Washington as a structure prediction tool but since then has been adapted to solve common computational macromolecular problems.
Development of Rosetta has moved beyond the University of Washington into the members of RosettaCommons, which include government laboratories, institutes, research centers, and partner corporations.
The Rosetta community has many goals for the software, such as:
Understanding macromolecular interactions
Designing custom molecules
Developing efficient ways to search conformation and sequence space
Finding a broadly useful energy functions for various biomolecular representations
module-help "
The Rosetta software suite includes algorithms for computational modeling and
analysis of protein structures. It has enabled notable scientific advances in
computational biology, including de novo protein design, enzyme design, ligand
docking, and structure prediction of biological macromolecules and
macromolecular complexes.
"
prepend-path PHENIX_ROSETTA_PATH $PREFIX
+2
View File
@@ -1,5 +1,7 @@
### Installation remarks
March 2026: From v1.2.6 on, seem to work with phenix/1.21 versions. v1.2.8 is compiled with phenix/1.21 version and needs to be tested to see whether it works.
According to Elke de Zitter (as of Spring 2024) Xtrapol8 only runs with the phenix/1.19 version.
--> check for new releases...
+1 -1
View File
@@ -12,6 +12,6 @@ pbuild::compile() {
pbuild::install(){
mkdir "$PREFIX/bin"
cd "$PREFIX/bin"
tar -xf "${PMODULES_DISTFILESDIR}/Xtrapol8-${V_PKG}.tar.gz" --strip-components=1
tar -xf "${BUILDBLOCK_DIR}/Xtrapol8-${V_PKG}.tar.gz" --strip-components=1
}
+6 -3
View File
@@ -3,10 +3,13 @@ Xtrapol8:
defaults:
group: MX
relstage: unstable
urls:
- url: https://github.com/ElkeDeZitter/Xtrapol8/archive/refs/tags/v${V_PKG}.tar.gz
urls:
- url: https://github.com/ElkeDeZitter/Xtrapol8/archive/refs/tags/v.${V_PKG}.tar.gz
name: Xtrapol8-${V_PKG}.tar.gz
versions:
1.2.1:
config:
runtime_deps: [phenix/phenix-1.19.1-4122]
runtime_deps: [phenix/phenix-1.19.1-4122]
1.2.8:
config:
runtime_deps: [phenix/1.21.1-5286]
+5 -1
View File
@@ -3,7 +3,7 @@
module-whatis "Xtrapol8 is software for the structure determination of low-occupancy states in crystallography"
module-url "https://github.com/ElkeDeZitter/Xtrapol8"
module-license "MIT license"
module-maintainer "Greta Assmann - greta.assmann@psi.ch"
module-maintainer "Dawn Duan - jiaxin.duan@psi.ch"
module-help "
Xtrapol8 is software for the calculation of Fourier difference maps, extrapolated structure factors and estimation of the occupancy of at triggered state that occupies the crystal
@@ -15,5 +15,9 @@ An introduction into Fourier difference maps, structure factor extrapolation and
If Xtrapol8 was useful in your project, please cite us: De Zitter, E., Coquelle, N., Oeser, P., Barends, T. R. M., Colletier, J.-P., Xtrapol8 enables automatic elucidation of low-
occupancy intermediate-states in crystallographic studies, Communications Biology, 5(1):640, 2022. (https://www.nature.com/articles/s42003-022-03575-7)
urls:
- url: https://github.com/ElkeDeZitter/Xtrapol8/archive/refs/tags/v${V_PKG}.tar.gz
name: Xtrapol8-${V_PKG}.tar.gz
"
+1 -1
View File
@@ -1,2 +1,2 @@
# Paul Scherrer Institute, Macromolecular Crystallography
3938465545 2992269931 1270736646 89765919 2346109776 3745393523
3938465545 2992269931 2851646202 2685600639 2346109776 3745393523
+68
View File
@@ -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/<date>`)
```
./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`.
Executable
+20
View File
@@ -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_<version>.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"
}
+13
View File
@@ -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]
+16
View File
@@ -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 <jiaxin.duan@psi.ch>"
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;"
+25
View File
@@ -0,0 +1,25 @@
jfjviewer
Step 1: login with your -adm account
```
[smith_k@ra-l-005 xds]$ kinit smith_k-adm
[smith_k@ra-l-005 xds]$ aklog
```
Step 2: load the latest Pmodules package
```
module use unstable
module load Pmodules/1.1.20
```
Step 3: go into xds directory, update config.yaml to add newest release version and build module with that release name (e.g. below is for 20240724)
```
cd jfjviewer
vi files/config.yaml
./build 1.0.0-rc.156
```
Step 4: confirm that the module loads as expected
+14
View File
@@ -0,0 +1,14 @@
#!/usr/bin/env modbuild
pbuild::prep() { :; }
pbuild::configure() { :; }
pbuild::compile() { :; }
pbuild::install() {
mkdir "${PREFIX}/bin"
cd "${PREFIX}/bin"
tar -xvzf "${BUILDBLOCK_DIR}/jfjoch_viewer-1.0.0-rc.160-linux-cuda12.tgz" --strip-components=1
}
+18
View File
@@ -0,0 +1,18 @@
---
format: 1
jfjoch_viewer:
defaults:
group: MX
overlay: base
relstage: stable
versions:
1.0.0-rc.160:
config:
relstage: stable
build_requires: ["cuda/12.8.1"]
runtime_deps: ["cuda/12.8.1"]
1.0.0-rc.158:
config:
relstage: stable
build_requires: ["cuda/12.8.1"]
runtime_deps: ["cuda/12.8.1"]
+10
View File
@@ -0,0 +1,10 @@
#%Module
module-whatis "jfjoch viewer trying install offline processing for mx beamlines"
module-url "https://gitea.psi.ch/mx/-/packages/rpm/jfjoch-viewer"
module-license "for internal testing right now"
module-maintainer "MX Data <jiaxin.duan@psi.ch>"
module-help "testing and learning how to install"
setenv JFJOCH $PREFIX/bin
+7
View File
@@ -0,0 +1,7 @@
# Olex2
Olex2 is a free, open-source software program used for determining, visualizing, and analyzing small-molecule crystal structures. It provides a comprehensive and user-friendly graphical interface to guide users through the process of crystal structure solution, refinement, and report generation. This workflow-oriented program is designed to be useful for both experienced crystallographers and chemists who may not have specialized training.
## Installation guide
1. First, download the zip archive with the binaries. For example for version 1.5, it was download from https://secure.olex2.org/olex2-distro/1.5/olex2-linux64.zip
2. Build the module with the correct version.
Executable
+33
View File
@@ -0,0 +1,33 @@
#!/usr/bin/env modbuild
pbuild::configure(){
# Get the OS and architecture
os=$(uname -s | tr '[:upper:]' '[:lower:]')
arch=$(uname -m)
case "$arch" in
x86_64|amd64) arch="64" ;;
i386|i686) arch="32" ;;
aarch64) arch="arm64" ;;
armv7*) arch="arm" ;;
esac
ZIP="${SRC_DIR}/${P}-${os}${arch}.zip"
# Copy the zip archive from the build directory
cp -n "${BUILDBLOCK_DIR}/${P}-${os}${arch}.zip" "$ZIP"
# Extract contents directly into SRC_DIR
unzip -o -q "$ZIP" -d "${SRC_DIR}"
# Clean up the zip file
rm -f "$ZIP"
}
pbuild::compile(){
:
}
pbuild::install() {
# Move all contents of the zip archive into PREFIX
mv "${SRC_DIR}/${P}/"* "${PREFIX}/"
}
+12
View File
@@ -0,0 +1,12 @@
---
format: 1
olex2:
defaults:
group: MX
overlay: base
relstage: stable
versions:
1.5:
config:
relstage: stable
+21
View File
@@ -0,0 +1,21 @@
#%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"
module-license "https://www.olexsys.org/tags/licence/"
module-maintainer "MX Data <jiaxin.duan@psi.ch>"
module-help "
Olex2 is a free and comprehensive software package for determining,
visualizing, and analyzing small-molecule crystal structures. It features a
user-friendly, mouse-driven graphical interface to assist both chemists and
crystallographers with tasks like structure solution, refinement, and report
generation. The program seamlessly links all aspects of the crystallography
workflow into a single, intuitive package.
"
# Use software OpenGL explicitly to avoid Vulkan drivers missing error
setenv LIBGL_ALWAYS_SOFTWARE 1
# Because the executable files need to be in the top directory
prepend-path PATH $PREFIX
Binary file not shown.
+1 -1
View File
@@ -1,4 +1,4 @@
#%Module1.0
#%Module
module-whatis "Python-based Hierarchical ENvironment for Integrated Xtallography"
module-url "http://www.phenix-online.org/"
Binary file not shown.
+3 -3
View File
@@ -8,8 +8,8 @@ pbuild::configure() { :; }
pbuild::compile() { :; }
pbuild::install() {
wget --no-check-certificate https://xds.mr.mpg.de/XDS-INTEL64_Linux_x86_64.tar.gz
#wget --no-check-certificate https://xds.mr.mpg.de/XDS-gfortran_Linux_x86_64.tar.gz
mkdir -p "${PREFIX}/bin"
cd "${PREFIX}/bin"
tar -xf "${BUILDBLOCK_DIR}/XDS-INTEL64_Linux_x86_64.tar.gz" --strip-components=1
}
tar -xf "${BUILDBLOCK_DIR}/XDS-gfortran_Linux_x86_64.tar.gz" --strip-components=1
}
+6 -1
View File
@@ -6,4 +6,9 @@ xds:
overlay: base
relstage: stable
versions:
20240724:
20250523:
config:
relstage: stable
20251103:
config:
relstage: stable
+3 -3
View File
@@ -1,12 +1,12 @@
#%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/"
module-license "XDS is free of charge for non-commercial applications"
module-maintainer "MX Data <mx-software@psi.ch>"
module-maintainer "MX Data <jiaxin.duan@psi.ch>"
module-help "
XDS can process data images from CCD-, imaging-plate-, multiwire-, and pixel-detectors in a variety of formats as well as from multi-segment detectors assembled from several rectangular components in arbitrary arrangement.
"
setenv XDS $PREFIX/bin
setenv XDS $PREFIX/bin