Edit · 05 Build Notes ← View page Saving needs a token. Log in or register to get one. Edits are public and licensed CC-BY-SA-4.0. # 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):** 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**. Save Cancel Preview · live