Calculadora NMP (MPN): densidade microbiana por tubos positivos
Transforme uma fileira de tubos positivos e negativos em uma densidade: um resultado 5-3-1 de três diluições com 5 tubos cada vira um NMP por 100 mL, ao lado da estimativa clássica de Thomas e de um intervalo de confiança. Grátis no seu navegador.
- Grátis
- Funciona no seu navegador
- Sem cadastro
- Seus dados não saem do seu aparelho
Executar grátis
Exemplo resolvido
- Por volume (mL)
- 100
- Padrão
- 5-3-1
- Total de tubos
- 15
- Total de positivos
- 9
- NMP por mL
- 1,0864475085
O método do número mais provável estima a densidade microbiana viável quando os organismos são contados por presença ou ausência em tubos réplica ao longo de uma série de diluições, e não como colônias em placa. Laboratórios de água, microbiologistas de alimentos e analistas ambientais ainda usam códigos e tabelas NMP para coliformes, enterococos e outros indicadores. Esta calculadora aceita cada nível da sua série como volume de inóculo em mililitros, número de tubos e tubos positivos, e resolve a equação de máxima verossimilhança de Poisson para a densidade por mililitro da amostra original. Você pode reescalar o resultado para NMP por 100 mL ou outro volume de relatório, comparar com a aproximação clássica de Thomas e ler um intervalo de confiança aproximado por informação de Fisher. Uma série totalmente estéril devolve densidade zero; uma série totalmente positiva é rejeitada como não limitada até que você adicione uma diluição superior com negativos.
O que o método do número mais provável estima
A análise do número mais provável assume que os organismos viáveis se distribuem aleatoriamente na amostra segundo um processo de Poisson e que um tubo se torna positivo sempre que recebe pelo menos uma unidade viável. Nessas condições, a probabilidade de um tubo inoculado com volume v mililitros de amostra original ser positivo é um menos e elevado a menos lambda vezes v, em que lambda é a densidade desconhecida em organismos por mililitro.
Tubos réplica em várias diluições geram uma superfície de verossimilhança para lambda; o número mais provável é a densidade que maximiza essa verossimilhança. Na prática você anota quantos dos n tubos cresceram em cada volume de inóculo, forma o padrão multinível como cinco-três-um e consulta ou calcula a densidade. Esse contrato de borda coincide com a prática laboratorial de informar valores maiores-que só quando a série é totalmente positiva e com clientes de faturamento que tratam falha dura de forma distinta de um limite numérico superior.
Quem usa a estimativa do número mais provável
Laboratórios de ensino e geradores de exames precisam de um oráculo determinístico que reproduza a lógica Poisson do NMP sem forçar a memorizar só tabelas decimais de três tubos. Microbiologistas de alimentos e ambientais com contagens de réplica não padrão ou volumes de inóculo incomuns não podem usar um cartão McCrady fixo e se beneficiam de um solver contínuo de máxima verossimilhança. Validação falha não consome saldo.
Mantenha as requisições pequenas, fixe densidades arredondadas nos testes e obtenha NMP reproduzíveis para tarefas, plugins LIMS e edge workers sem montar software estatístico só por uma série de diluições.
Casos de uso
Ensino e correção automática de exames
Avalie o trabalho do aluno sobre séries de diluição com um oráculo NMP de máxima verossimilhança determinístico que rejeita com clareza séries totalmente positivas não limitadas.
Desenhos de réplica não padrão
Calcule a densidade MLE contínua para contagens de tubos e volumes de inóculo arbitrários quando as tabelas McCrady impressas não cobrem o layout.
Perguntas frequentes
O que significa a string pattern?
pattern une as contagens positivas na ordem dos níveis com hífens (por exemplo 5-3-1). É um rótulo de conveniência equivalente ao código NMP clássico, não uma chave de busca em tabela.
O que acontece se todos os tubos da série derem positivo?
O resultado é recusado, porque uma série toda positiva não tem limite superior. Acrescente uma diluição maior que deixe alguns tubos negativos e calcule de novo.
E se nenhum tubo der positivo?
Uma série totalmente estéril retorna densidade zero. É um resultado válido para a amostra e as diluições analisadas, não um erro.
Posso informar o NMP por 100 mL?
Sim. A densidade é calculada por mililitro da amostra original e pode ser reescalada para NMP por 100 mL ou qualquer outro volume de laudo que o seu método use.
Como o resultado se compara com a fórmula de Thomas?
O número principal vem da solução de máxima verossimilhança para os seus tubos. A aproximação clássica de Thomas aparece ao lado para comparação, junto com um intervalo de confiança aproximado.
Ferramentas relacionadas
Para desenvolvedores — acesso via API
Tudo nesta página está disponível via API. Esta seção é para equipes que querem integrar a ferramenta aos próprios sistemas; quem não precisa disso pode simplesmente usar a ferramenta acima.
Endpoint
Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.
Chame do seu código
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)Exemplo de requisição
{
"levels": [
{
"volume_ml": 10,
"tubes": 5,
"positive": 5
},
{
"volume_ml": 1,
"tubes": 5,
"positive": 3
},
{
"volume_ml": 0.1,
"tubes": 5,
"positive": 1
}
]
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "bio.most_probable_number",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}A API é assíncrona: cada chamada devolve um task_id na hora. Se preferir polling, consulte o status a até 1 requisição por segundo.
Preço
Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.
Erros
| HTTP | Código | O que significa |
|---|---|---|
401 | unauthorized | Token ausente ou inválido. Confira o header Authorization. |
402 | insufficient_balance | Saldo insuficiente para esta tarefa. Faça uma recarga e tente de novo. |
404 | unknown_type | Esse tipo de tarefa não existe. Confira o campo type no catálogo. |
429 | rate_limited | Muitas requisições em pouco tempo. Espere um instante e tente de novo. |
Notas técnicas
O que o método do número mais provável estima
Este endpoint não busca numa tabela impressa: resolve a equação de escore do log-verossimilhança por bisseção determinística, permitindo contagens de tubos arbitrárias e volumes não decimais dentro dos limites indicados. Quando todos os tubos são negativos o máximo está na densidade zero e a API devolve mpn_per_ml igual a zero. Quando todos são positivos a verossimilhança cresce sem limite com a densidade, não há NMP finito e a tarefa falha com invalid_input pedindo uma diluição superior com pelo menos um tubo negativo.
Contrato de entrada, saídas e como ler NMP por mL ou por 100 mL
Exemplo: cinco tubos a dez mililitros todos positivos, cinco a um mililitro com três positivos e cinco a zero vírgula um mililitro com um positivo é o padrão clássico cinco-três-um; a densidade MLE fica na ordem de um organismo por mililitro e escala para cerca de cem por cem mililitros. Combine a densidade numérica com a sua própria tabela regulatória ou método de referência quando uma norma exigir um código publicado específico em vez de um MLE contínuo. Envie por POST um corpo JSON cujo campo obrigatório levels é um array de um a vinte objetos. Cada objeto precisa de volume_ml, um volume de inóculo finito e positivo da amostra original por tubo em mililitros; tubes, um inteiro positivo de réplicas; e positive, um inteiro não negativo de tubos com crescimento que não exceda tubes. O opcional per_volume_ml vale um por padrão e multiplica a densidade para que você possa informar NMP por 100 mL enviando cem, como em muitas tabelas de qualidade da água. O opcional confidence_level vale zero vírgula nove cinco por padrão e deve situar-se no intervalo fechado de zero vírgula cinco a zero vírgula nove nove nove. Em caso de sucesso o corpo ecoa levels, uma string pattern que une as contagens positivas com hífens, total_tubes e total_positive, mpn_per_ml e mpn escalado por per_volume_ml, o mesmo par para a aproximação de Thomas quando definida, confidence_level, method maximum_likelihood e uma fórmula breve. Quando a informação de Fisher é positiva a resposta também inclui ci_low_per_ml, ci_high_per_ml e os ci_low e ci_high escalados. Falhas de validação nomeiam o campo, não são faturadas e cobrem levels ausentes, volumes não positivos, positive maior que tubes, séries totalmente positivas e confidence_level fora da faixa.
Onde uma API de estimativa NMP agrega valor
Sistemas de qualidade de água potável, residual e engarrafada ainda expressam coliformes e enterococos como NMP por cem mililitros; scripts de automação podem enviar as contagens positivas brutas e gravar mpn com o per_volume_ml escolhido em vez de reescrever linhas de tabela.
Casos de integração
Qualidade da água NMP por 100 mL
Informe contagens positivas de séries decimais para tubos de coliformes ou enterococos e defina per_volume_ml como 100 para reportar o NMP/100 mL clássico em registros de conformidade.
Perguntas técnicas
Como calculo o número mais provável a partir de tubos positivos?
Envie levels com volume_ml, tubes e positive para cada diluição. A API devolve a densidade Poisson de máxima verossimilhança por mL e o NMP escalado opcional via per_volume_ml (use 100 para NMP/100 mL).
E se todos os tubos forem positivos?
A tarefa falha com invalid_input porque a verossimilhança não tem máximo finito. Adicione uma diluição superior (volume_ml menor) que inclua pelo menos um tubo negativo.
Em que o valor Thomas difere de mpn?
mpn é a estimativa de máxima verossimilhança. thomas_mpn usa a aproximação histórica P sobre a raiz quadrada de (mL de amostra em negativos vezes mL de amostra em todos os tubos). Ambos são escalados por per_volume_ml quando Thomas está definido.
Quanto custa a calculadora do número mais provável?
A ferramenta do navegador é gratuita. Solicitações API usam saldo pré-pago KIT a US$ 0,002 por chamada bem-sucedida; entrada inválida não é faturada.