Foldseek
Foldseek enables fast and sensitive comparisons of large sets of protein structures. It describes structures with a structural alphabet (3Di) and searches and clusters them with MMseqs2-based algorithms. On Roihu it is provided as a GPU-accelerated build for the GH200 GPU nodes.
License
Free to use and open source under GNU GPLv3.
Available
- Roihu-GPU: 10-941cd33, via the
bio-appsmodule.
Foldseek runs on the Roihu GPU (GH200) nodes. Log in to roihu-gpu.csc.fi and load the
modules there so you get the GPU build.
Usage
Foldseek is part of the bio-apps collection on Roihu. Load the bio-apps module tree and then the Foldseek module:
Search a set of query structures (PDB or mmCIF files) against a set of target structures:
Cluster a set of structures:
Databases
CSC provides shared, prebuilt Foldseek databases on Roihu, and the foldseek
module sets the environment variable $FOLDSEEK_DB to their location (under
/dataset/project_2020345/foldseek). Give the path to a database as the search
target:
| Database | Source (foldseek databases name) |
Padded copy for GPU search |
|---|---|---|
afdb |
Alphafold/UniProt | afdb_pad |
afdb50 |
Alphafold/UniProt50 | afdb50_pad |
afdb_proteome |
Alphafold/Proteome | afdb_proteome_pad |
afdb_swissprot |
Alphafold/Swiss-Prot | afdb_swissprot_pad |
esmatlas30 |
ESMAtlas30 | esmatlas30_pad |
pdb |
PDB | pdb_pad |
cath50 |
CATH50 | cath50_pad |
bfmd |
BFMD | bfmd_pad |
bfvd |
BFVD | bfvd_pad |
The ProstT5 model is also provided, so you can search with amino acid sequences (FASTA) instead of structures:
foldseek easy-search queries.fasta $FOLDSEEK_DB/pdb results.m8 tmp --prostt5-model $FOLDSEEK_DB/prostt5
To use another database, foldseek databases downloads prebuilt databases. Run it
without arguments to list all available databases. Download large databases to
your project's /scratch:
foldseek databases only downloads and unpacks prebuilt files, so you can run it on
the login node.
GPU-accelerated search
Add --gpu 1 to run a search on the GPU. A GPU search needs a padded target
database. Use the padded copies of the shared databases (names ending in _pad):
foldseek easy-search queries/ $FOLDSEEK_DB/afdb_swissprot_pad results.m8 tmp --gpu 1 --prefilter-mode 1
GPU searches must run on a GPU node. Use a batch job on a GPU partition (see the
example batch script) for searches against the large
databases. For short tests, you can also start an interactive session with
sinteractive on roihu-gpu.csc.fi,
but interactive sessions will get a GPU slice with only 12 GiB of GPU memory once
slicing is configured, so use a small database such as afdb_swissprot_pad there.
For your own databases, make a padded copy with makepaddedseqdb:
Example batch script
#!/bin/bash
#SBATCH --job-name=foldseek
#SBATCH --account=<project>
#SBATCH --output=output_%j.txt
#SBATCH --error=errors_%j.txt
#SBATCH --partition=gpumedium
#SBATCH --time=04:00:00
#SBATCH --nodes=1
#SBATCH --ntasks=1
#SBATCH --cpus-per-task=72
#SBATCH --gres=gpu:gh200:1
module load bio-apps/v202603
module load foldseek/10-941cd33
foldseek easy-search queries/ $FOLDSEEK_DB/afdb_swissprot_pad results.m8 tmp --gpu 1 --prefilter-mode 1 \
--threads $SLURM_CPUS_PER_TASK
Replace <project> with your CSC project (for example project_2001234). See
creating a batch job script for Roihu
for more about batch jobs, and the
GPU partitions for the available GPU
resources.