pocketz.doi.bio/docs/signalp6/05-build-notes

SignalP 6.0 — Build Notes (GitHub repo)

Cloned https://github.com/fteufel/signalp-6.0 into ~/github/sness23/signalp6/signalp-6.0/ and tried to build it (2026-07-14).

TL;DR

The GitHub repo is the research / training code + model architecture — not the runnable predictor. It builds and installs as a Python package, but it does not give you the signalp6 command or the model weights. To actually run predictions you need the licensed signalp-6-package tarball from the DTU download page (free for academics) — that download contains a different setup.py (with the CLI entry points) plus the neural-network weights.

What worked ✅

What does NOT work / is missing ❌

| Blocker | Why | |---------|-----| | No signalp6 CLI | The repo's setup.py defines no entry_points/console_scripts, and src/signalp6/__main__.py is empty. The signalp6 command is created by the DTU package, not this repo. | | No prediction driver | The code that writes prediction_results.txt / GFF3 / JSON and parses CLI args is not in this repo. The repo ships model definitions (models/bert_crf.py, models/multi_tag_crf.py) + training utils only. | | No model weights | src/signalp6/model_weights/ doesn't exist in git (weights are large + licensed, distributed separately). | | Model code won't import | import signalp6.models.multi_tag_crf → ModuleNotFoundError: No module named 'torch'. Needs torch + transformers + tokenizers. | | Pinned deps are ancient | requirements.txt pins torch==1.7.0, scikit-learn==0.23.1, tokenizers==0.9.0rc2, sklearn==0.0, typing==3.7.4.3 — 2020-era versions with no wheels for Python 3.11/3.12. Install instructions say Python ≤ 3.10. README also notes SignalP 6.0 is not compatible with PyTorch 2.0+. |

Environment used

How to get a runnable install

Option A — Standalone (needs the licensed download):

  1. Register + download signalp-6-package (pick a mode: fast/slow) from https://services.healthtech.dtu.dk/service.php?SignalP-6.0 (free for academics).
  2. Use Python 3.8–3.10 (make a conda env: conda create -n signalp6 python=3.10).
  3. pip install signalp-6-package/ then pip install "numpy<2".
  4. Copy weights: cp -r signalp-6-package/models/* $(python -c "import signalp,os;print(os.path.dirname(signalp.__file__))")/model_weights/.
  5. Run: signalp6 -ff input.fasta -org other -od out/ -fmt txt -m fast.

Option B — No install: use the web server or the BioLib mirror (https://dtu.biolib.com/SignalP-6) — good for ≤1000 sequences.

Option C — Just study/train the code: what we cloned is enough. To import the model classes, make a Python ≤3.10 env and install torch<2, transformers, tokenizers (ignore the exact pins; use compatible modern-ish versions).

Bottom line

Building the GitHub repo succeeds as a package but can't predict — it's the architecture + training code. A working SignalP 6.0 predictor requires the licensed DTU package (weights + CLI), which isn't on this machine yet. Fastest way to actually run it right now: the web server / BioLib mirror.