Questão:
Solucionadores de HMM genéricos em bioinformática?
Daniel Standage
2017-06-02 12:13:13 UTC
view on stackexchange narkive permalink

Modelos ocultos de Markov (HMMs) são usados ​​extensivamente em bioinformática e foram adaptados para previsão de genes, classificação de famílias de proteínas e uma variedade de outros problemas. Na verdade, o tratado de Durbin, Eddy e colegas é um dos volumes definidores neste campo.

Embora os detalhes de cada uma dessas diferentes aplicações de HMMs sejam diferentes, o núcleo matemático o modelo permanece inalterado e existem algoritmos eficientes para calcular a probabilidade da sequência observada dado o modelo, ou (talvez mais útil) a sequência oculta mais provável dada a sequência de estados observados.

Assim, parece plausível que poderia haver uma biblioteca de software genérica para resolver HMMs. Até onde sei, esse não é o caso, e a maioria dos bioinformáticos acaba escrevendo HMMs do zero. Talvez haja uma boa razão para isso? (Além do fato óbvio de que já é difícil, quase impossível, conseguir financiamento para construir e fornecer suporte de longo prazo para software de ciência de código aberto. As pressões acadêmicas incentivam a construção de uma nova ferramenta sobre a qual você pode publicar um artigo muito mais do que construir e estendendo as ferramentas existentes.)

Existe alguma biblioteca genérica do solver HMM? Em caso afirmativo, isso seria tentador o suficiente para os bioinformáticos usarem em vez de escrever seus próprios do zero?

Você faz parecer que “escrever HMMs do zero” é um grande esforço. ;-) Dito isso, é claro que faz sentido ter implementações existentes dos algoritmos relevantes.
Trzy respostas:
#1
+6
Lucas van Dijk
2017-06-02 18:16:01 UTC
view on stackexchange narkive permalink

Eu também recomendaria dar uma olhada em romã, um bom pacote Python para modelos gráficos probabilísticos. Inclui solucionadores de HMMs e muito mais. Por baixo do capô, ele usa código Cythonised, então também é bastante rápido.

#2
+4
Konrad Rudolph
2017-06-02 15:59:48 UTC
view on stackexchange narkive permalink

Certamente, existem bibliotecas de software para trabalhar com HMMs. Para uma implementação de propósito geral em C ++, dê uma olhada nos algoritmos SeqAn HMM.

Para seus propósitos, ou seja, “computar… a sequência oculta mais provável dada a sequência observada declara ”, você invocaria viterbiAlgorithm com sua sequência observada e o gráfico HMM.

Mais fundamentalmente, acho que a maioria das implementações maduras existentes são provavelmente encontradas no domínio do processamento de sinal , que os usa há mais tempo do que a biologia e onde a maior parte da teoria subjacente foi desenvolvida.

#3
+4
Matt Bashton
2017-06-04 18:31:13 UTC
view on stackexchange narkive permalink

Se bem me lembro, o Dynamite de Ewan Birney (um compilador-compilador) apresentado no ISMB 1997 tinha essa funcionalidade, também há algum código aqui no GitHub https://github.com/birney/wise3 que pelo menos menciona Dynamite. Suspeito que Ewan está muito ocupado ultimamente para trabalhar nisso, embora ele tenha tweetado sobre soprar poeira de seu antigo Dynamite, desculpe o código do Dynamite: https://twitter.com/ewanbirney/status/788121636973142016



Estas perguntas e respostas foram traduzidas automaticamente do idioma inglês.O conteúdo original está disponível em stackexchange, que agradecemos pela licença cc by-sa 3.0 sob a qual é distribuído.
Loading...