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 ✅
git clone→ clean.- Built a wheel in an isolated venv (Python 3.11):
pip wheel --no-deps ./signalp-6.0→signalp6-1.0-py3-none-any.whl(49 KB). pip install --no-deps ./signalp-6.0→ Successfully installed signalp6-1.0.python -c "import signalp6"→ OK (__version__ = 1.0).
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
- Host Python: 3.11.6 (conda
paperz); only 3.11/3.12 interpreters available (no 3.10/3.8). - Isolated venv at
~/github/sness23/signalp6/.venv.
How to get a runnable install
Option A — Standalone (needs the licensed download):
- Register + download
signalp-6-package(pick a mode: fast/slow) from https://services.healthtech.dtu.dk/service.php?SignalP-6.0 (free for academics). - Use Python 3.8–3.10 (make a conda env:
conda create -n signalp6 python=3.10). pip install signalp-6-package/thenpip install "numpy<2".- Copy weights:
cp -r signalp-6-package/models/* $(python -c "import signalp,os;print(os.path.dirname(signalp.__file__))")/model_weights/. - 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.