حاسبة العدد الأكثر احتمالاً (MPN)
حوّل صفًّا من الأنابيب الإيجابية والسلبية إلى كثافة: نتيجة 5-3-1 من ثلاثة تخفيفات في كل منها 5 أنابيب تصبح عددًا أكثر احتمالًا لكل 100 مل، مع تقدير Thomas الكلاسيكي وفترة ثقة إلى جانبه. مجانية في متصفحك.
- مجاني
- يعمل في متصفحك
- دون تسجيل
- بياناتك لا تغادر جهازك
شغّل الأداة مجانًا
مثال محلول
- لكل حجم (mL)
- 100
- النمط
- 5-3-1
- إجمالي الأنابيب
- 15
- إجمالي الإيجابيات
- 9
- MPN لكل mL
- 1.0864475085
يقدّر أسلوب العدد الأكثر احتمالاً الكثافة الميكروبية الحية عندما تُحصى الكائنات بالوجود أو الغياب في أنابيب مكرّرة عبر سلسلة تخفيف، لا كمستعمرات على طبق. ما زالت مختبرات المياه وعلماء ميكروبيولوجيا الأغذية ومحللو البيئة يعتمدون على رموز وجداول MPN للقولونيات والمكورات المعوية وغيرها من المؤشرات. تقبل هذه الحاسبة كل مستوى من سلسلتكم كحجم لقاح بالميليلتر وعدد أنابيب وعدد موجبة، ثم تحل معادلة أقصى احتمال لبواسون للكثافة لكل ميليلتر من العينة الأصلية. يمكنكم إعادة تحجيم النتيجة إلى MPN لكل 100 mL أو أي حجم تقرير آخر، ومقارنتها بتقريب Thomas الكلاسيكي، وقراءة فترة ثقة تقريبية من معلومات Fisher. السلسلة المعقّمة بالكامل تُرجع كثافة صفراً؛ والسلسلة الموجبة بالكامل تُرفض لأنها غير محدودة حتى تضيفوا تخفيفاً أعلى فيه سالبات.
ما الذي يقدّره أسلوب العدد الأكثر احتمالاً
يفترض تحليل العدد الأكثر احتمالاً أن الكائنات الحية تتوزع عشوائياً في العينة وفق عملية بواسون، وأن الأنبوب يصبح موجباً متى تلقّى وحدة حية واحدة على الأقل. تحت تلك الافتراضات، احتمال أن يكون أنبوب ملقَّح بحجم v ميليلتر من العينة الأصلية موجباً يساوي واحداً ناقص e مرفوعة إلى ناقص lambda مضروبة في v، حيث lambda هي الكثافة المجهولة بوحدات كائنات لكل ميليلتر. الأنابيب المكرّرة عند عدة تخفيفات تعطي سطحاً للاحتمال ل lambda؛ والعدد الأكثر احتمالاً هو الكثافة التي تعظّم ذلك الاحتمال.
عملياً تسجّلون كم من n أنابيب نمت عند كل حجم لقاح، وتشكّلون النمط متعدد المستويات مثل خمسة-ثلاثة-واحد، ثم ترجعون إلى جدول أو تحسبون الكثافة. لا يبحث هذا المسار في جدول مطبوع: بل يحل معادلة الدرجة للوغاريتم الاحتمال بتقسيم ثنائي حتمي، فيُسمح بأعداد أنابيب اعتباطية وأحجام غير عشرية ضمن الحدود المعلنة. يطابق عقد الحالات الحدّية ممارسة المختبر في الإبلاغ عن قيم أكبر-من فقط عندما تكون السلسلة موجبة بالكامل، ويطابق عملاء الفوترة الذين يعاملون الفشل القاسي معاملة مختلفة عن حد عددي أعلى.
أين تثبت واجهة تقدير MPN قيمتها
تحتاج مختبرات التعليم ومولّدات الامتحانات إلى مَرجع حتمي يعيد منطق بواسون ل MPN دون إلزام الطلبة بحفظ جداول عشرية ثلاثية الأنابيب فقط. علماء ميكروبيولوجيا الأغذية والبيئة الذين يشغّلون أعداد مكررات غير قياسية أو أحجام لقاح غير معتادة لا يستطيعون استخدام بطاقة McCrady ثابتة ويستفيدون من حالّ أقصى احتمال مستمر. التحقق الفاشل لا يستهلك الرصيد.
اجعلوا الطلبات صغيرة وثبّتوا الكثافات المُدوَّرة في الاختبارات لتحصلوا على تقديرات MPN قابلة للتكرار للواجبات وإضافات LIMS وعُمّال الحافة دون نصب برمجيات إحصائية لمجرد سلسلة تخفيف.
حالات الاستخدام
التعليم والتصحيح الآلي للامتحانات
قيّموا عمل الطلبة على سلاسل التخفيف مقابل مَرجع MPN لأقصى احتمال حتمي يرفض بوضوح السلاسل الموجبة بالكامل غير المحدودة.
تصاميم مكررات غير قياسية
احسبوا كثافة MLE مستمرة لأعداد أنابيب وأحجام لقاح اعتباطية عندما لا تغطي جداول McCrady المطبوعة التخطيط.
الأسئلة الشائعة
ماذا تعني سلسلة pattern؟
تربط pattern أعداد الموجب بترتيب المستويات بشرطات (مثلاً 5-3-1). إنها تسمية مريحة تكافئ رمز MPN الكلاسيكي وليست مفتاح بحث في جدول.
ماذا يحدث إذا كانت كل أنابيب السلسلة إيجابية؟
تُرفض النتيجة، لأن السلسلة الإيجابية بالكامل لا حد أعلى لها. أضف تخفيفًا أعلى يترك بعض الأنابيب سلبية ثم أعد الحساب.
وماذا لو لم يصبح أي أنبوب إيجابيًا؟
تعطي السلسلة المعقمة بالكامل كثافة قدرها صفر. وهي نتيجة صحيحة للعينة والتخفيفات التي اختبرتها، وليست خطأ.
هل يمكنني التعبير عن العدد الأكثر احتمالًا لكل 100 مل؟
نعم. تُحسب الكثافة لكل مليلتر من العينة الأصلية، ويمكن تحويلها إلى عدد لكل 100 مل أو لأي حجم آخر تعتمده طريقتك في التقرير.
كيف تُقارن النتيجة بمعادلة Thomas؟
تأتي القيمة الرئيسية من حل الاحتمال الأقصى لأنابيبك. ويظهر تقريب Thomas الكلاسيكي إلى جانبها للمقارنة، مع فترة ثقة تقريبية.
أدوات ذات صلة
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
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)مثال على الطلب
{
"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": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "bio.most_probable_number",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.
الأسعار
السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.
الأخطاء
| HTTP | الرمز | المعنى |
|---|---|---|
401 | unauthorized | مفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك. |
402 | insufficient_balance | رصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة. |
404 | unknown_type | نوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب. |
429 | rate_limited | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |
ملاحظات تقنية
الوحدة النقية نفسها تشغّل ودجة المتصفح المجانية ومسار API، فلا يختلف دفتر المختبر والأتمتة حول تقدير MPN منشور.
ما الذي يقدّره أسلوب العدد الأكثر احتمالاً
عندما تكون كل الأنابيب سالبة يكون الحد الأقصى عند كثافة صفر وتُرجع API قيمة mpn_per_ml تساوي صفراً. وعندما تكون كلها موجبة يزداد الاحتمال بلا حد مع الكثافة، فلا يوجد MPN منتهٍ وتفشل المهمة ب invalid_input مطالبة بتخفيف أعلى يتضمن أنبوباً سالباً واحداً على الأقل.
عقد الإدخال والمخرجات وكيفية قراءة MPN لكل mL أو لكل 100 mL
مثال: خمسة أنابيب عند عشرة ميليلتر كلها موجبة، وخمسة عند ميليلتر واحد بثلاثة موجبة، وخمسة عند صفر فاصلة واحد ميليلتر بموجب واحد هو النمط الكلاسيكي خمسة-ثلاثة-واحد؛ كثافة MLE في حدود كائن واحد لكل ميليلتر وتُحوَّل إلى نحو مئة لكل مئة ميليلتر. اقرنوا الكثافة العددية بجدولكم التنظيمي أو مرجع الطريقة عندما تفرض مواصفة رمزاً منشوراً محدداً بدل MLE مستمر. أرسلوا جسم JSON بالحقل الإلزامي levels وهو مصفوفة من كائن واحد إلى عشرين. يحتاج كل كائن إلى volume_ml، حجم لقاح منتهٍ وموجب للعينة الأصلية لكل أنبوب بالميليلتر؛ وtubes، عدداً صحيحاً موجباً من المكررات؛ وpositive، عدداً صحيحاً غير سالب للأنابيب ذات النمو لا يتجاوز tubes. الحقل الاختياري per_volume_ml افتراضه واحد ويضرب الكثافة حتى تتمكنوا من الإبلاغ عن MPN لكل 100 mL بإرسال مئة، كما في كثير من جداول جودة المياه. الحقل الاختياري confidence_level افتراضه صفر فاصلة تسعة خمسة ويجب أن يقع في الفترة المغلقة من صفر فاصلة خمسة إلى صفر فاصلة تسعة تسعة تسعة. عند النجاح يعيد الجسم المستويات levels، وسلسلة pattern تربط أعداد الموجب بشرطات، وtotal_tubes وtotal_positive، وmpn_per_ml وmpn مُحوَّلين ب per_volume_ml، والزوج نفسه لتقريب Thomas عند تعريفه، وconfidence_level، وmethod maximum_likelihood، وصيغة قصيرة. عندما تكون معلومات Fisher موجبة تتضمن الاستجابة أيضاً ci_low_per_ml وci_high_per_ml وci_low وci_high المحوَّلين. إخفاقات التحقق تسمّي الحقل ولا تُفوتر، وتشمل levels المفقودة والأحجام غير الموجبة وpositive أكبر من tubes والسلاسل الموجبة بالكامل وconfidence_level خارج المدى.
أين تثبت واجهة تقدير MPN قيمتها
ما زالت أنظمة جودة مياه الشرب والمياه العادمة والمياه المعبأة تعبّر عن القولونيات والمكورات المعوية ك MPN لكل مئة ميليلتر؛ ويمكن لسكربتات الأتمتة إرسال أعداد الموجب الخام وتخزين mpn مع per_volume_ml المختار بدل إعادة إدخال صفوف الجدول. يمكن لمواقع المحتوى التي تستهدف حاسبة العدد الأكثر احتمالاً وكثافة ميكروبية بسلسلة تخفيف أن تقدّم ودجة متصفح مجانية يطابق حسابها واجهة API المدفوعة بايتاً ببايت على الوحدة النقية نفسها. ولأن التنفيذ parse من الطبقة A خالص، تكلف كل مكالمة ناجحة السعر الأساسي المنشور $0.002 بلا رموز نموذج ولا شبكة صادرة.
حالات التكامل
جودة المياه MPN لكل 100 mL
أدخلوا أعداد الموجب لسلاسل عشرية لأنابيب القولونيات أو المكورات المعوية واضبطوا per_volume_ml على 100 للإبلاغ عن MPN/100 mL الكلاسيكي في سجلات الامتثال.
أسئلة تقنية
كيف أحسب العدد الأكثر احتمالاً من الأنابيب الموجبة؟
أرسلوا levels مع volume_ml وtubes وpositive لكل تخفيف. تُرجع API كثافة بواسون لأقصى احتمال لكل mL وMPN محوَّلاً اختيارياً عبر per_volume_ml (استخدموا 100 ل MPN/100 mL).
ماذا لو كانت كل الأنابيب موجبة؟
تفشل المهمة ب invalid_input لأن الاحتمال بلا حد أقصى منتهٍ. أضيفوا تخفيفاً أعلى (volume_ml أصغر) يتضمن أنبوباً سالباً واحداً على الأقل.
بماذا يختلف قيمة Thomas عن mpn؟
mpn هو تقدير أقصى الاحتمال. يستخدم thomas_mpn التقريب التاريخي P على الجذر التربيعي ل (mL العينة في السوالب × mL العينة في كل الأنابيب). يُحوَّل الاثنان ب per_volume_ml عند تعريف Thomas.
كم تكلفة حاسبة العدد الأكثر احتمالاً؟
أداة المتصفح مجانية. طلبات API تستخدم رصيد KIT المدفوع مسبقاً بمبلغ $0.002 لكل استدعاء ناجح؛ الإدخال غير الصالح لا يُفوتر.