Czy ktoś może mi polecić dobry system zarządzania przepływem pracy (WMS), najlepiej w języku Python? Do tej pory korzystałem z GNU Make, ale wprowadza warstwę złożoności, której chcę uniknąć. Dobry WMS powinien mieć następujące funkcje:
- łatwa integracja z narzędziami wiersza poleceń i skryptami Python,
- prosty w użyciu i lekki,
- radzić sobie z zależnościami,
- zapewnić interfejs wiersza poleceń,
- zapewnić mechanizm rejestrowania,
- (opcjonalnie) podaj źródło danych.
Wiem, że WMS są bardzo popularne w bioinformatyce (na przykład Galaxy ), ale szukam czegoś bardziej ogólnego.
Odpowiedzi:
Do rejestrowania, które pozwala na pełną odtwarzalność, bardzo polecam pakiet pytatowy Sumatra . Ładnie łączy numer zatwierdzenia kontroli wersji, stan komputera i pliki wyjściowe z każdym uruchomionym programem oraz ma interfejs sieciowy django do interakcji z bazą danych informacji o uruchomieniu. Interfejs API Pythona ułatwia włączenie logowania do moich skryptów.
źródło
Jakiś miesiąc temu natknąłem się na wysoce polecaną stronę internetową Hansa-Martina przeciwko Gaudeckerowi, który prowadzi takie kursy jak „Skuteczne praktyki programowania dla ekonomistów”. Na swoim kursie z jesieni 2010 roku przedstawił SCons, na kursie z jesieni 2011 przeszedł na waf , który ma być szybszy niż SCons, ale nadal oparty na Pythonie. Slajdy z obu kursów są dostępne do pobrania, a ja (jako socjolog) uznałem je za bardzo pouczające i pouczające.
źródło
Spójrz na VisTrails . Nie korzystałem z niego (tylko w domu
make
), ale wygląda dobrze przemyślany, z dobrym dokumentem i ma prawdziwych użytkowników w NASA itp.(Czy szukasz narzędzi dla 1-2 osób, 4-5, więcej ?)
Dodano: niezupełnie twoje pytanie, ale myślę, że warto je powtórzyć:
do jednolitych, powtarzalnych eksperymentów komputerowych oczywiście trzeba
Zobacz także software-carpentry.org : „Problem, który próbujemy rozwiązać, polega na tym, że naukowcy często spędzają 40% lub więcej czasu na zmaganiach z oprogramowaniem, ale 95% lub więcej z nich jest samoukami”.
źródło
Wszystkie wymagania wymienione w pytaniu są spełnione przez system równoległych skryptów Swift.
Spędziłem rok w grupie Swift jako badacz z tytułem doktora (doktor naukowego przepływu pracy). Pomagamy naukowcom i badaczom z różnych dziedzin w zaspokajaniu ich potrzeb obliczeniowych.
Swift to platforma typu open source do równoległego uruchamiania przepływów pracy. Nazywa się to skryptami równoległymi, głównie w celu podkreślenia faktu, że zapewnia interfejs skryptowy do tworzenia przepływów pracy, w przeciwieństwie do interfejsu GUI ze strzałką.
Mogę osobiście pomóc w rozpoczęciu pracy z aplikacją Swift. Aby dowiedzieć się więcej o Swift, zajrzyj tutaj .
źródło
Taverna to open source WMS, nie Python, ale Java.
źródło
Ta strona wymienia niektóre pakiety: https://wiki.python.org/moin/FlowBasedProgramming
Kolejnym obiecującym pakietem nie wymienionym tutaj jest Snakemake.
źródło
Dexy brzmi, jakby to było dokładnie to, po czym się znajdujesz. Ze strony:
źródło
Knime lub Rapidminer prawdopodobnie poradzą sobie również ze wszystkimi wymaganiami. Czy powinni wziąć udział w grze :)
źródło