Alguém pode me recomendar um bom sistema de gerenciamento de fluxo de trabalho (WMS), preferencialmente em Python? Até agora, tenho usado o GNU Make, mas apresenta uma camada de complexidade que eu quero evitar. Um bom WMS deve ter os seguintes recursos:
- integre-se facilmente com ferramentas de linha de comando e scripts Python,
- simples de usar e leve,
- lidar com dependências,
- fornecer interface de linha de comando,
- fornecer mecanismo de registro,
- (opcional) forneça a proveniência dos dados.
Sei que o WMS é muito popular em bioinformática (por exemplo, Galaxy ), mas estou procurando algo mais geral.
Respostas:
Para registros que permitam reprodutibilidade total, recomendo o pacote python Sumatra . Ele vincula muito bem o número de confirmação do controle de versão, o estado da máquina e os arquivos de saída a cada programa executado e possui uma interface da web do django para interagir com o banco de dados de informações de execução. A API python facilita muito a inclusão do logon nos meus scripts.
fonte
Há um mês, deparei-me com o site altamente recomendado de Hans-Martin v. Gaudecker, que ministra cursos como "Práticas eficazes de programação para economistas". Em seu curso de outono de 2010, ele introduziu SCons, em seu curso de outono de 2011 ele mudou para o waf , que deveria ser mais rápido que os SCons, mas ainda baseado em Python. Os slides dos dois cursos estão disponíveis para download e eu (como cientista social) os achei muito instrutivos e esclarecedores.
fonte
Dê uma olhada no VisTrails . Eu não o usei (apenas coisas homebrew por aí
make
), mas parece bem pensado, com bons documentos e tem usuários reais da NASA etc.(você está procurando ferramentas para 1-2 pessoas, 4-5 e mais ?)
Adicionado: não é bem a sua pergunta, mas acho que vale a pena repetir:
para experimentos uniformes e reprodutíveis em computador, obviamente, é necessário
Veja também software-carpentry.org : "O problema que estamos tentando resolver é que os cientistas costumam passar 40% ou mais do seu tempo lutando com o software, mas 95% ou mais deles são basicamente autodidatas".
fonte
Todos os requisitos mencionados na sua pergunta são atendidos pelo sistema de script paralelo Swift.
Passei um ano no grupo Swift como pesquisador de pós-doutorado (PhD em fluxos de trabalho científicos). Temos ajudado cientistas e pesquisadores de diferentes domínios a atender suas necessidades computacionais.
O Swift é uma estrutura de código aberto para executar fluxos de trabalho de maneira paralela. Ele é chamado de script paralelo, principalmente para destacar o fato de fornecer uma interface de script para criar fluxos de trabalho em oposição à interface de seta de caixa da GUI.
Pessoalmente, posso ajudá-lo a começar e executar seu aplicativo com o Swift. Para saber mais sobre a Swift, dê uma olhada aqui .
fonte
O Taverna é um WMS de código aberto, não Python, mas Java.
fonte
Esta página menciona alguns pacotes: https://wiki.python.org/moin/FlowBasedProgramming
Outro pacote promissor não mencionado aqui é o Snakemake.
fonte
Dexy parece que é exatamente o que você procura . Do site:
fonte
Knime ou Rapidminer provavelmente também poderiam lidar com todos os requisitos. Se eles devem estar em disputa :)
fonte