Skip to main content

orange-plsda-addon

PLS-DA & OPLS-DA für Orange3 — Leistungsstarke Klassifikations-Widgets für die multivariate Analyse (Chemometrie, Biomarker-Findung).

  • PLS-DA (Partial Least Squares Discriminant Analysis) — Klassifikation mittels PLSRegression mit One-hot-kodiertem Ziel
  • OPLS-DA (Orthogonal PLS-DA, Trygg & Wold 2002) — trennt prädiktive von orthogonaler (klassen-unabhängiger) Variation

Beide Widgets erscheinen in Orange unter der Kategorie PLS-DA, direkt neben dem eingebauten PLS-R.


⚡ Automatischer Installer (empfohlen)

Dieses Paket ist Teil des WellerLab-Monorepos (github.com/philippweller/WellerLab). Der gemeinsame Installer orange-install.py (auf Repo-Ebene) findet Oranges eigenes Python automatisch und installiert das Paket korrekt (macOS / Windows / Linux). Kein manuelles Pfad-Raten mehr:

# PLS-DA installieren:
python orange-install.py plsda

# NMR-Add-on installieren:
python orange-install.py nmr

# nur zeigen, welches Python erkannt wurde:
python orange-install.py --show

# bestehende Installation prüfen:
python orange-install.py --check plsda

Läuft mit jedem Python (nur Standardbibliothek). Klappt die Auto-Erkennung ausnahmsweise nicht:

python orange-install.py --python /pfad/zum/orange/python

▶️ Direkt ausführen ohne Clone (das Add-on wird trotzdem via GitHub installiert):

curl -fsSL https://raw.githubusercontent.com/philippweller/WellerLab/main/orange-install.py -o orange-install.py && python3 orange-install.py plsda

Das Tool bedient auch den Windows---no-user-Fall automatisch, sodass das Add-on in Oranges eigene site-packages landet statt in die unsichtbare User-Site.


📋 Voraussetzungen

Voraussetzung Hinweis
Orange3 ≥ 3.40 installiert Unter Hilfe → Über die Version prüfen
Internet-Zugriff auf GitHub zum Herunterladen des Repos

⚠️ Wichtig: Es muss immer Oranges eigenes Python verwendet werden, nicht /usr/bin/python3! Sonst wird das Add-on in der falschen Python-Umgebung installiert und Orange findet es nicht.


🔍 Oranges eingebettetes Python finden (wichtig!)

Der Pfad zu Oranges Python hängt von der Orange-Version ab. Je nachdem ob Orange mit Python 3.11 oder 3.12 gebaut wurde, heißt das Binary python3, python3.11 oder python3.12.

Sichere Methode — das echte Python-Binary lokalisieren:

ls /Applications/Orange.app/Contents/Frameworks/Python.framework/Versions/
# zeigt z.B.:  3.12   und   Current -> 3.12

# Dann das echte Binary finden:
find /Applications/Orange.app -name "python3*" -type f 2>/dev/null | grep -i bin

Typische gültige Pfade (je nach Version):

Orange mit Python-Binary
Python 3.11 .../Versions/Current/bin/python3
Python 3.11 (nur versioniert) .../Versions/Current/bin/python3.11
Python 3.12 .../Versions/Current/bin/python3.12
Intel-Mac mit 3.12 .../Versions/Current/bin/python3.12-intel64

Current ist ein Symlink zur installierten Version (Current -> 3.12), funktioniert also in allen Fällen. Ersetze in den Befehlen unten ORANGEPY durch den gefundenen Pfad.


🚀 Installation (Schritt für Schritt)

macOS (Orange.app als .app installiert)

Schritt 1 — Oranges eingebettetes Python prüfen:

Öffne einen Terminal und führe aus (nutze den Pfad aus dem Abschnitt Oranges eingebettetes Python finden; je nach Orange-Version heißt das Binary python3, python3.11 oder python3.12):

/Applications/Orange.app/Contents/Frameworks/Python.framework/Versions/Current/bin/python3.12 --version

Es sollte eine Python-3.x-Version ausgeben. Notiere dir diesen Pfad — er wird in den nächsten Schritten gebraucht (im Folgenden abgekürzt als ORANGEPY).

Schritt 2 — Add-on von GitHub installieren:

ORANGEPY=/Applications/Orange.app/Contents/Frameworks/Python.framework/Versions/Current/bin/python3.12
$ORANGEPY -m pip install git+https://github.com/philippweller/WellerLab.git@main#subdirectory=orange-plsda-addon

Schritt 3 — Installation prüfen (optional, empfohlen):

$ORANGEPY -c "from orangeplsda import PLSDALearner; print('OK')"

Wenn OK erscheint, ist das Paket korrekt installiert.

Schritt 4 — In Orange öffnen:

Orange starten. Die Widgets PLS-DA und OPLS-DA erscheinen in der Widget-Leiste unter PLS-DA. Du musst Orange nicht neu starten — es reicht, das Canvas-Fenster erneut zu öffnen.


Windows (Orange über den "Orange Command Prompt")

Schritt 1 — Orange Command Prompt öffnen:

Startmenü → Orange → Orange Command Prompt (bzw. Qt Console).

Schritt 2 — Installieren:

python -m pip install git+https://github.com/philippweller/WellerLab.git@main#subdirectory=orange-plsda-addon

Schritt 3 — Prüfen:

python -c "from orangeplsda import PLSDALearner; print('OK')"

Schritt 4 — Orange öffnen und unter PLS-DA nachschauen.


Linux / Conda / Venv

Schritt 1 — Umgebung aktivieren:

conda activate orange    # oder: source .venv/bin/activate

Schritt 2 — Installieren:

pip install git+https://github.com/philippweller/WellerLab.git@main#subdirectory=orange-plsda-addon

Schritt 3 — Prüfen:

python -c "from orangeplsda import PLSDALearner; print('OK')"

Schritt 4 — Orange starten und das Widget suchen.


🔄 Updates einspielen (bei neuen Versionen)

Auf jedem Rechner, auf dem das Add-on installiert ist:

Schritt 1 — aktuelle Version installieren (Überschreibt die alte):

# macOS
$ORANGEPY -m pip install --upgrade --force-reinstall git+https://github.com/philippweller/WellerLab.git@main#subdirectory=orange-plsda-addon
# Windows / Linux / Conda
python -m pip install --upgrade --force-reinstall git+https://github.com/philippweller/WellerLab.git@main#subdirectory=orange-plsda-addon

Schritt 2 — Orange neu starten, damit die neuen Widget-Versionen geladen werden.

Hinweis: --force-reinstall wird empfohlen, da Orange die Widgets beim Canvas-Öffnen zwischenspeichert.


🗑️ Deinstallation

# macOS
$ORANGEPY -m pip uninstall orangeplsda -y
# Windows / Linux / Conda
python -m pip uninstall orangeplsda -y

Danach Orange neu starten — die Widgets sind verschwunden.


🧪 Kurzer Funktionstest (Entwickler)

Mit Oranges Python auf einem der mitgelieferten Datensätze:

python -c "
from Orange.data import Table
from Orange.base import Model
from orangeplsda import PLSDALearner
from orangeplsda.oplsda_learner import OPLSDALearner
for L, kw in [(PLSDALearner, dict(n_components=2)),
              (OPLSDALearner, dict(n_components=1, n_ortho=1))]:
    t = Table('iris'); m = L(**kw)(t)
    p, pr = m(t, ret=Model.ValueProbs)
    print(L.__name__, round(float((p == t.Y.flatten()).mean()), 3), pr.shape)
"

Erwartete Ausgabe (beispielhaft, kann leicht abweichen):

PLSDALearner 0.813 (150, 3)
OPLSDALearner 0.8 (150, 3)

🛠️ Fehlerbehebung

Problem Lösung
"python3 ist nicht vorhanden" / Datei nicht gefunden Das Binary heißt je nach Orange-Version python3, python3.11 oder python3.12 (z.B. Orange mit Python 3.12). Mit find /Applications/Orange.app -name "python3*" -type f den echten Namen ermitteln.
from orangeplsda import ... schlägt fehl Du hast /usr/bin/python3 statt Oranges Python benutzt. Siehe Schritt 1 oben.
Widget erscheint nicht in Orange Gelöschte *.egg-info/__pycache__ prüfen; Orange vollständig neu starten; pip show orangeplsda ausführen.
Host key verification failed beim pip install Läuft nur bei einem gepushten SSH-Workflow, nicht bei git+https://. Nutze die https-URL.
alte Version bleibt pip install --force-reinstall verwenden (siehe Updates).

📦 Entwicklung / Repo lokal ausprobieren

git clone git@github.com:philippweller/orange-plsda-addon.git
cd orange-plsda-addon
# Editable-Install mit Oranges Python:
$ORANGEPY -m pip install -e .

📄 Lizenz

MIT © Philipp Weller

Metadata

Release files for orangeplsda 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for orangeplsda 0.1.0
File Size Uploaded
orangeplsda-0.1.0.tar.gz 17.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for orangeplsda 0.1.0
File Interpreter ABI Platform
orangeplsda-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 34.7 kB

Release files / orangeplsda-0.1.0.tar.gz

Download URL orangeplsda-0.1.0.tar.gz
Size 17.2 kB
Tags Source
SHA-256 checksum
How to use checksums
9891a1e7c8f873684fa2aaffd345ac04bf0dd5a33a1698dd261c258fadfe5288
BLAKE2b-256 checksum
How to use checksums
d265247154eb1bfb7442bff64e5df1d5aea890971ec3d7abc2d1ed906bbfbac2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.11.8

Release files / orangeplsda-0.1.0-py3-none-any.whl

Download URL orangeplsda-0.1.0-py3-none-any.whl
Size 17.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c45deaa328fccea3fd1b4a9e449d30f98de135b070fe4fc13aedbb93544ccdff
BLAKE2b-256 checksum
How to use checksums
8d38d4007b34bcb61457efed3490470e3c1ff5c289da52c659d400668fa70b6c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.11.8

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page