Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 15 additions & 2 deletions HISTORY.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,19 @@
# History

1.2.4 (2026-04-24)
1.3.0 (2026-07-02)
------------------
* Adds multi-GPU support - use `--gpus` (e.g. `--gpus 0,2`) to specify which CUDA device indices `phold` and Foldseek-GPU should use. Defaults to all visible CUDA GPUs. Has no effect on MPS/XPU systems
* Adds Intel XPU (Arc/Data Center GPU Max) support for ProstT5 prediction - thanks @linsalrob. See the [installation documentation](https://phold.readthedocs.io/en/latest/install/) for details
* Internal migration of `phold`'s analytical/IO code from `pandas` to `polars`, improving performance especially for large datasets
* Numerous internal performance improvements (faster masking, Foldseek database creation, sub-database and per-contig function count output writing, and faster `phold` startup via streamlined imports)
* Fixes bugs where NCBI GenBank input containing a pseudogene CDS (no translation) or a CDS with no product would cause `phold run`/`compare` to crash #132
* Fixes `phold plot` bug affecting genomes with CRISPR repeats and tmRNA features
* `--restart` is more robust to interruption (fixes potential intermediate OOM issues and ensures the ProstT5 3Di prediction loop can safely resume)
* Fixes intermittent `phold install` database download issues (adds a timeout, fixes handling of incomplete downloads, fixes database move on some filesystems)
* Adds defensiveness around external tool (Foldseek) failures with clearer error messages
* Adds a golden-output regression test suite so future code changes are automatically checked in CI against reference annotation outputs

1.2.5 (2026-04-24)
------------------
* Support `mps` (MacOS) with `phold autotune`

Expand Down Expand Up @@ -124,4 +137,4 @@ Breaking CLI parameter changes
0.1.0 (2024-03-05)
------------------

* Initial beta release
* Initial beta release
4 changes: 4 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -122,6 +122,10 @@ conda install -c conda-forge -c bioconda phold

If you are have a different non-NVIDIA GPU, or have trouble with `pytorch`, see [this link](https://pytorch.org) for more instructions. If you have an older version of CUDA installed, then you might find [this link useful](https://pytorch.org/get-started/previous-versions/).

If you have an Intel machine with an XPU, see the separate [Intel XPU installation instructions](https://phold.readthedocs.io/en/latest/install/#intel-xpu).

If you have multiple NVIDIA GPUs available, you can specify which to use with `--gpus` (e.g. `--gpus 0,2`) with `phold run`, `predict`, `proteins-predict` and `--foldseek_gpu` compatible commands. By default, all visible CUDA GPUs will be used.

Once `phold` is installed, to download and install the database run:

```bash
Expand Down
27 changes: 27 additions & 0 deletions docs/run.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,8 @@ For `phold proteins-predict` and `phold proteins-compare`, the input will be a F

`predict` uses the [ProstT5](https://github.com/mheinzinger/ProstT5) protein language model to translate protein amino acid sequences to the 3Di token alphabet used by [foldseek](https://github.com/steineggerlab/foldseek). This module is greatly accelerated if you have a GPU available and is recommended.

If you have multiple NVIDIA GPUs, you can restrict which are used for ProstT5 with `--gpus` (e.g. `--gpus 0,2`). By default all visible CUDA GPUs are used. This has no effect on MPS (Apple Silicon) or Intel XPU systems.

```bash
Usage: phold predict [OPTIONS]

Expand All @@ -48,6 +50,10 @@ Options:
autotuning will add rather than save runtime.
--batch_size INTEGER batch size for ProstT5. [default: 1]
--cpu Use cpus only.
--gpus TEXT Comma-separated CUDA device indices to use
(e.g. "0,2"). Default: all visible CUDA GPUs.
Overridden by --cpu. Has no effect on MPS /
XPU systems.
--omit_probs Do not output per residue 3Di probabilities
from ProstT5. Mean per protein 3Di
probabilities will always be output.
Expand Down Expand Up @@ -81,6 +87,8 @@ Alternatively, if you have provided pre-generated .pdb format protein structures

`phold compare` does not use a GPU by default. However, if you have one available, you can utilise Foldseek-GPU acceleration using `--foldseek_gpu`. Note that you need to make sure your also run `phold install` with `--foldseek_gpu` prior. Regardless of whether you use `--foldseek_gpu` or not, it is recommended to use as many CPU threads with `-t` as you can (as the GPU only accelerates Foldseek's prefilter, not the alignment step).

If you have multiple NVIDIA GPUs, you can restrict which are used for Foldseek-GPU with `--gpus` (e.g. `--gpus 0,2`). By default all visible CUDA GPUs are used.

Example usage of `phold compare` following `phold predict`

```bash
Expand Down Expand Up @@ -127,6 +135,10 @@ Options:
found in the input GenBank file. Helpful if
you have a directory with lots of .pdb files
and want to annotate only e.g. 1 phage.
--gpus TEXT Comma-separated CUDA device indices for
Foldseek-GPU (e.g. "0,2"). Default: all
visible CUDA GPUs. Only meaningful with
--foldseek_gpu.
-o, --output PATH Output directory [default: output_phold]
-t, --threads INTEGER Number of threads [default: 1]
-p, --prefix TEXT Prefix for output files [default: phold]
Expand Down Expand Up @@ -191,6 +203,10 @@ Options:
autotuning will add rather than save runtime.
--batch_size INTEGER batch size for ProstT5. [default: 1]
--cpu Use cpus only.
--gpus TEXT Comma-separated CUDA device indices to use
(e.g. "0,2"). Default: all visible CUDA GPUs.
Overridden by --cpu. Has no effect on MPS /
XPU systems.
--omit_probs Do not output per residue 3Di probabilities
from ProstT5. Mean per protein 3Di
probabilities will always be output.
Expand Down Expand Up @@ -265,6 +281,10 @@ Options:
autotuning will add rather than save runtime.
--batch_size INTEGER batch size for ProstT5. [default: 1]
--cpu Use cpus only.
--gpus TEXT Comma-separated CUDA device indices to use
(e.g. "0,2"). Default: all visible CUDA GPUs.
Overridden by --cpu. Has no effect on MPS /
XPU systems.
--omit_probs Do not output per residue 3Di probabilities
from ProstT5. Mean per protein 3Di
probabilities will always be output.
Expand Down Expand Up @@ -318,6 +338,10 @@ Options:
found in the input GenBank file. Helpful if
you have a directory with lots of .pdb files
and want to annotate only e.g. 1 phage.
--gpus TEXT Comma-separated CUDA device indices for
Foldseek-GPU (e.g. "0,2"). Default: all
visible CUDA GPUs. Only meaningful with
--foldseek_gpu.
-o, --output PATH Output directory [default: output_phold]
-t, --threads INTEGER Number of threads [default: 1]
-p, --prefix TEXT Prefix for output files [default: phold]
Expand Down Expand Up @@ -518,6 +542,9 @@ Options:
want to use the default sample of 5000 Phold DB
proteins
--cpu Use cpus only.
--gpus TEXT Comma-separated CUDA device indices (e.g. "0,2").
Default: lowest visible CUDA GPU. Overridden by
--cpu.
-t, --threads INTEGER Number of threads [default: 1]
-d, --database TEXT Specific path to installed phold database
--min_batch INTEGER Minimum batch size to test [default: 1]
Expand Down
1 change: 1 addition & 0 deletions mkdocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ nav:
- Citation: citation.md
- RUNNING:
- Install: install.md
- Install (Intel XPU): install_intel_xpu.md
- Usage: run.md
- Output: output.md
- TUTORIAL:
Expand Down
Loading