MPN-Rechner: mikrobielle Dichte aus positiven Röhrchen
Machen Sie aus einer Reihe positiver und negativer Röhrchen eine Keimdichte: Ein Ergebnis 5-3-1 aus drei Verdünnungen mit je 5 Röhrchen wird zu einer MPN pro 100 mL, daneben die klassische Thomas-Schätzung und ein Konfidenzintervall. Kostenlos in Ihrem Browser.
- Kostenlos
- Läuft in Ihrem Browser
- Ohne Anmeldung
- Ihre Daten bleiben auf Ihrem Gerät
Im Browser ausführen – kostenlos
Rechenbeispiel
- Pro Volumen (mL)
- 100
- Muster
- 5-3-1
- Röhrchen insgesamt
- 15
- Positive insgesamt
- 9
- MPN pro mL
- 1,0864475085
Das Verfahren der wahrscheinlichsten Zahl schätzt die lebensfähige mikrobielle Dichte, wenn Organismen durch An- oder Abwesenheit in Parallelröhrchen einer Verdünnungsreihe gezählt werden und nicht als Kolonien auf einer Platte. Wasserlabore, Lebensmittelmikrobiologen und Umweltanalytiker stützen sich weiterhin auf MPN-Codes und -Tabellen für Coliforme, Enterokokken und andere Indikatororganismen. Dieser Rechner nimmt jede Stufe Ihrer Reihe als Inokulumvolumen in Millilitern, Röhrchenzahl und positive Röhrchen entgegen und löst die Poisson-Maximum-Likelihood-Gleichung für die Dichte pro Milliliter Originalprobe. Sie können das Ergebnis auf MPN pro 100 mL oder ein anderes Berichtsvolumen umskalieren, es mit der klassischen Thomas-Näherung vergleichen und ein näherungsweises Konfidenzintervall aus der Fisher-Information lesen. Eine vollständig sterile Reihe liefert Dichte null; eine vollständig positive Reihe wird als unbeschränkt abgelehnt, bis Sie eine höhere Verdünnung mit Negativen ergänzen.
Was das Verfahren der wahrscheinlichsten Zahl schätzt
Die Analyse der wahrscheinlichsten Zahl setzt voraus, dass lebensfähige Organismen zufällig nach einem Poisson-Prozess in der Probe verteilt sind und ein Röhrchen positiv wird, sobald es mindestens eine lebensfähige Einheit erhält. Unter diesen Annahmen ist die Wahrscheinlichkeit, dass ein mit Volumen v Millilitern Originalprobe beimpftes Röhrchen positiv ist, eins minus e hoch minus lambda mal v, wobei lambda die unbekannte Dichte in Organismen pro Milliliter ist. Parallelröhrchen auf mehreren Verdünnungen ergeben eine Likelihood-Fläche für lambda; die wahrscheinlichste Zahl ist die Dichte, die diese Likelihood maximiert.
Praktisch notieren Sie, wie viele von n Röhrchen bei jedem Inokulumvolumen gewachsen sind, bilden das mehrstufige Muster wie fünf-drei-eins und schlagen die Dichte nach oder berechnen sie.
Wer mit MPN-Schätzungen arbeitet
Lehrlabore und Prüfungsgeneratoren brauchen ein deterministisches Orakel, das die Poisson-MPN-Logik reproduziert, ohne Studierende nur auf dreiröhrige Dezimal-Tabellen zu verpflichten. Lebensmittel- und Umweltmikrobiologen mit nichtstandardigen Parallelzahlen oder ungewöhnlichen Inokulumvolumina können keine feste McCrady-Karte nutzen und profitieren von einem kontinuierlichen Maximum-Likelihood-Löser. Fehlgeschlagene Validierung wird nicht berechnet.
Halten Sie Anfragen klein, pinnen Sie gerundete Dichten in Tests und erhalten Sie reproduzierbare MPN-Schätzungen für Hausaufgaben, LIMS-Plugins und Edge-Worker, ohne Statistiksoftware allein für eine Verdünnungsreihe aufzubauen.
Anwendungsfälle
Lehre und automatische Prüfungsbewertung
Bewerten Sie studentische Arbeit an Verdünnungsreihen gegen ein deterministisches Maximum-Likelihood-MPN-Orakel, das unbeschränkte vollpositive Reihen klar ablehnt.
Nichtstandardige Parallelansätze
Berechnen Sie kontinuierliche MLE-Dichte für beliebige Röhrchenzahlen und Inokulumvolumina, wenn gedruckte McCrady-Tabellen das Layout nicht abdecken.
Häufige Fragen
Was bedeutet die pattern-Zeichenkette?
pattern verbindet die Positivzählungen in Stufenreihenfolge mit Bindestrichen (zum Beispiel 5-3-1). Es ist ein praktisches Etikett analog zum klassischen MPN-Code, kein Tabellen-Suchschlüssel.
Was passiert, wenn alle Röhrchen der Reihe positiv sind?
Das Ergebnis wird abgelehnt, weil eine durchweg positive Reihe keine Obergrenze hat. Ergänzen Sie eine stärkere Verdünnung, bei der einige Röhrchen negativ bleiben, und rechnen Sie erneut.
Und wenn kein Röhrchen positiv wird?
Eine vollständig sterile Reihe ergibt eine Dichte von null. Das ist ein gültiges Ergebnis für die untersuchte Probe und die gewählten Verdünnungen, kein Fehler.
Kann ich die MPN pro 100 mL angeben?
Ja. Die Dichte wird pro Milliliter der Originalprobe berechnet und lässt sich auf MPN pro 100 mL oder jedes andere Berichtsvolumen Ihrer Methode umrechnen.
Wie verhält sich das Ergebnis zur Thomas-Formel?
Der Hauptwert stammt aus der Maximum-Likelihood-Lösung für Ihre Röhrchen. Die klassische Thomas-Näherung steht zum Vergleich daneben, zusammen mit einem näherungsweisen Konfidenzintervall.
Verwandte Tools
Für Entwickler — API-Zugang
Alles auf dieser Seite ist auch per API verfügbar. Dieser Abschnitt richtet sich an Teams, die es in ihre eigenen Systeme einbinden möchten; alle anderen nutzen einfach das Tool oben.
Endpunkt
Authentifizierung per Bearer-Token. Ein einziger POST stellt die Aufgabe in die Warteschlange; das Ergebnis erhalten Sie per Webhook oder über einen signierten Link.
Aufruf aus Ihrem Stack
curl -X POST https://api.kit.forhosting.com/bio/most-probable-number \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"levels":[{"volume_ml":10,"tubes":5,"positive":5},{"volume_ml":1,"tubes":5,"positive":3},{"volume_ml":0.1,"tubes":5,"positive":1}]}'const res = await fetch("https://api.kit.forhosting.com/bio/most-probable-number", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"levels": [
{
"volume_ml": 10,
"tubes": 5,
"positive": 5
},
{
"volume_ml": 1,
"tubes": 5,
"positive": 3
},
{
"volume_ml": 0.1,
"tubes": 5,
"positive": 1
}
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/bio/most-probable-number",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"levels": [
{
"volume_ml": 10,
"tubes": 5,
"positive": 5
},
{
"volume_ml": 1,
"tubes": 5,
"positive": 3
},
{
"volume_ml": 0.1,
"tubes": 5,
"positive": 1
}
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/bio/most-probable-number", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"levels":[{"volume_ml":10,"tubes":5,"positive":5},{"volume_ml":1,"tubes":5,"positive":3},{"volume_ml":0.1,"tubes":5,"positive":1}]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"levels":[{"volume_ml":10,"tubes":5,"positive":5},{"volume_ml":1,"tubes":5,"positive":3},{"volume_ml":0.1,"tubes":5,"positive":1}]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/bio/most-probable-number", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Beispiel-Anfrage
{
"levels": [
{
"volume_ml": 10,
"tubes": 5,
"positive": 5
},
{
"volume_ml": 1,
"tubes": 5,
"positive": 3
},
{
"volume_ml": 0.1,
"tubes": 5,
"positive": 1
}
]
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "bio.most_probable_number",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}Die API arbeitet asynchron: Sie erhalten sofort eine task_id. Polling ist mit 1 Anfrage pro Sekunde erlaubt.
Preis
Der Preis steht auf der Seite – keine Tokens, keine Credits. Fehlgeschlagene Aufgaben werden nicht berechnet.
Fehler
| HTTP | Code | Bedeutung |
|---|---|---|
401 | unauthorized | Der API-Schlüssel fehlt oder ist ungültig – prüfen Sie den Authorization-Header (Bearer). |
402 | insufficient_balance | Ihr Guthaben reicht für diese Aufgabe nicht aus – Aufladungen verfallen nicht. |
404 | unknown_type | Unbekannter Aufgabentyp – prüfen Sie das Feld „type“ gegen den Katalog. |
429 | rate_limited | Zu viele Anfragen – warten Sie kurz; Polling ist mit 1 Anfrage pro Sekunde erlaubt. |
Technische Hinweise
Was das Verfahren der wahrscheinlichsten Zahl schätzt
Dieser Endpoint sucht nicht in einer gedruckten Tabelle: er löst die Score-Gleichung der Log-Likelihood per deterministischer Bisektion, sodass innerhalb der genannten Grenzen beliebige Röhrchenzahlen und nicht-dezimale Volumina zulässig sind. Wenn alle Röhrchen negativ sind, liegt das Maximum bei Dichte null und die API liefert mpn_per_ml gleich null. Wenn alle positiv sind, wächst die Likelihood mit der Dichte unbegrenzt, es gibt keine endliche MPN und die Aufgabe scheitert mit invalid_input und fordert eine höhere Verdünnung mit mindestens einem negativen Röhrchen. Dieser Randfall-Vertrag entspricht der Laborpraxis, Größer-als-Werte nur bei vollständig positiver Reihe anzugeben, und Abrechnungsklienten, die harten Fehler anders behandeln als eine numerische Obergrenze.
Eingangsvertrag, Ausgaben und Lesen von MPN pro mL oder pro 100 mL
Beispiel: fünf Röhrchen bei zehn Millilitern alle positiv, fünf bei einem Milliliter mit drei Positiven und fünf bei null Komma eins Millilitern mit einem Positiven ist das klassische fünf-drei-eins-Muster; die MLE-Dichte liegt in der Größenordnung eines Organismus pro Milliliter und skaliert auf etwa hundert pro hundert Milliliter. Kombinieren Sie die numerische Dichte mit Ihrer eigenen regulatorischen Tabelle oder Methodenreferenz, wenn eine Norm einen konkreten veröffentlichten Code statt eines kontinuierlichen MLE verlangt. Senden Sie per POST einen JSON-Körper, dessen Pflichtfeld levels ein Array aus einem bis zwanzig Objekten ist. Jedes Objekt benötigt volume_ml, ein positives endliches Inokulumvolumen der Originalprobe pro Röhrchen in Millilitern; tubes, eine positive ganze Zahl an Parallelansätzen; und positive, eine nichtnegative ganze Zahl wachsender Röhrchen, die tubes nicht übersteigt. Optionales per_volume_ml ist standardmäßig eins und multipliziert die Dichte, sodass Sie MPN pro 100 mL melden können, indem Sie hundert senden, wie in vielen Wasserqualitätstabellen. Optionales confidence_level ist standardmäßig null Komma neun fünf und muss im abgeschlossenen Intervall von null Komma fünf bis null Komma neun neun neun liegen. Bei Erfolg spiegelt der Körper levels, eine pattern-Zeichenkette mit Bindestrichen zwischen den Positivzählungen, total_tubes und total_positive, mpn_per_ml und mpn skaliert mit per_volume_ml, dasselbe Paar für die Thomas-Näherung falls definiert, confidence_level, method maximum_likelihood und eine kurze Formel. Bei positiver Fisher-Information enthält die Antwort zusätzlich ci_low_per_ml, ci_high_per_ml sowie die skalierten ci_low und ci_high. Validierungsfehler benennen das Feld, werden nicht berechnet und decken fehlende levels, nichtpositive Volumina, positive größer als tubes, vollständig positive Reihen und confidence_level außerhalb des Bereichs ab.
Wo eine MPN-Schätz-API ihren Nutzen entfaltet
Qualitätssysteme für Trinkwasser, Abwasser und Flaschenwasser drücken Coliforme und Enterokokken weiterhin als MPN pro hundert Milliliter aus; Automatisierungsskripte können rohe Positivzählungen senden und mpn mit dem gewählten per_volume_ml speichern statt Tabellenzeilen neu einzutippen.
Integrationsbeispiele
Wasserqualität MPN pro 100 mL
Geben Sie Positivzählungen dezimaler Reihen für Coliform- oder Enterokokken-Röhrchen ein und setzen Sie per_volume_ml auf 100, um die klassische MPN/100 mL in Compliance-Protokollen zu melden.
Technische Fragen
Wie berechne ich die wahrscheinlichste Zahl aus positiven Röhrchen?
Senden Sie levels mit volume_ml, tubes und positive für jede Verdünnung. Die API liefert die Poisson-Maximum-Likelihood-Dichte pro mL und optional skalierte MPN über per_volume_ml (100 für MPN/100 mL).
Was passiert, wenn jedes Röhrchen positiv ist?
Die Aufgabe scheitert mit invalid_input, weil die Likelihood kein endliches Maximum hat. Fügen Sie eine höhere Verdünnung (kleineres volume_ml) mit mindestens einem negativen Röhrchen hinzu.
Wie unterscheidet sich der Thomas-Wert von mpn?
mpn ist die Maximum-Likelihood-Schätzung. thomas_mpn nutzt die historische Näherung P über die Quadratwurzel aus (Proben-mL in Negativen mal Proben-mL in allen Röhrchen). Beide werden mit per_volume_ml skaliert, wenn Thomas definiert ist.
Was kostet der Rechner der wahrscheinlichsten Zahl?
Das Browser-Werkzeug ist kostenlos. API-Anfragen nutzen vorausbezahltes KIT-Guthaben zu $0.002 pro erfolgreichem Aufruf; ungültige Eingabe wird nicht berechnet.