seg_membrane_chord_score — EMPROOF suspect op

• Datenarten: labels2d × image2d → table

• Aufruf: import fullseye as fs; fs.ledger.seg_membrane_chord_score(labels, membrane, tau: 'float' = 0.2, band: 'int' = 4, min_area: 'int' = 1500, min_segment: 'int' = 20, normalize: 'bool' = True, ignore_zero: 'bool' = True, max_points: 'int' = 400, min_hole: 'int' = 4) -> 'dict' (die Implementierung direkt: import emproof; emproof.seg_membrane_chord_score(labels, membrane, tau: 'float' = 0.2, band: 'int' = 4, min_area: 'int' = 1500, min_segment: 'int' = 20, normalize: 'bool' = True, ignore_zero: 'bool' = True, max_points: 'int' = 400, min_hole: 'int' = 4) -> 'dict'; aus dem Register: opsemproof.get("seg_membrane_chord_score"))

• GPU: nein (nur CPU-Referenzimplementierung)

Verwendung

Verdacht auf Verschmelzung: Länge der Membran-"Sehne", die das Innere eines Labels durchquert / Durchmesser des Labels. Eine Zeile pro Label (Zusammenhangskomponente).

Vorgehensweise: Machen Sie Pixel mit einer Membranreaktion > „Tau“ innerhalb der Komponente (innerhalb „Band“ px von der Grenze) in 8 verbundene Komponenten. Für jede Membrankomponente, die größer oder gleich „min_segment“ px ist, verdicken Sie sie um 3 px zur Grenzseite („Abstand ≤ Band + 3“). Die Sehnenlänge ist der Abstand zwischen den beiden am weitesten entfernten Pixeln, die berührt werden können. Punktzahl = maximale Akkordlänge / Quadratfuß (Fläche). Eine Membran, die zwei Grenzen verbindet (= Grenze zwischen zwei eingefügten Zellen) hat einen Wert von ≈ 1 und Fragmente, die die Grenze nicht berühren, sind 0 oder klein. Membrankomponente mit Löchern (min_hole Loch größer als px = geschlossener Ring = Mitochondrien/Vesikel) wird von String-Kandidaten ausgeschlossen --- An zwei Punkten auf der Grenze Da die sich berührenden Ringe dieselben „zwei entfernten Punkte“ wie die Saiten haben, teilen wir sie zunächst nach dem Vorhandensein oder Fehlen von Löchern auf. Die bogenförmig geschnittene Membran ist Dies kann nicht ausgeschlossen werden (der Hauptgrund dafür, dass die AUC in realen Daten nicht 1 erreicht).

CREMI-Probe A (12 Querschnitte von 512², Prototyp), künstliche Fusionskomponente im Vergleich zu anderen: AUC 0,83 (Tau 0,2).

Spalten: „label“ / „component“ / „area“ / „score“ / „chord_px“ / „n_segments“ / „cy“ / „cx“. (Bewertung in absteigender Reihenfolge). Komponenten kleiner als „min_area“ werden nicht gezählt (kleine Fragmentakkorde werden immer höher herauskommen, da sie dem Durchmesser entsprechen).

>>> table = seg_membrane_chord_score(labels, seg_membrane_response(raw))

>>> table["label"][:5], table["score"][:5] # Am verdächtigsten

Ausführlicher Anwendungsleitfaden

• Leitfaden zur Familie emproof

Referenzen (Beispieldaten, Literatur)

• Katalog der Beispieldaten (Download-URLs / Lizenzen) — 2-D nutzt skimage.data (BSD/Public Domain) plus synthetische Bilder, 3-D nennt Download-URLs echter Datenquellen (Stanford, PDS, …).

• Herkunft und Literatur der Operatoren — die Quellen der Forschung/Verfahren, auf denen diese Operatorfamilie beruht.

• Der kanonische Algorithmus (Autor, Jahr) und seine Anwendungen stehen im Familienleitfaden oben.

Ausführbare Beispiele (verifizierte Samples, die diesen Operator wirklich aufrufen)

• poc_em_second_opinion — py -3.11 examples/poc_em_second_opinion.py

Typkompatible Folge-Operatoren (nehmen table als Eingabe)

seg_synapse_partners · seg_wiring_variation · seg_synapse_nri · seg_wiring_exposure

Gleiche Kategorie (suspect)

seg_boundary_membrane_gap


*Provenance: emproof.py — EMPROOF Operator-Registry. Diese Notiz wird von tools/opdocs.py md erzeugt (nicht von Hand bearbeiten).*

© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.