Kann mir jemand ein gutes Workflow-Management-System (WMS) empfehlen, vorzugsweise in Python? Bisher habe ich GNU Make verwendet, aber es bringt eine Ebene der Komplexität mit sich, die ich vermeiden möchte. Ein gutes WMS sollte folgende Eigenschaften haben:
- Einfache Integration in Befehlszeilentools und Python-Skripte
- einfach zu bedienen und leicht,
- mit Abhängigkeiten umgehen,
- Befehlszeilenschnittstelle bereitstellen,
- Protokollierungsmechanismus bereitstellen,
- (optional) Datenherkunft angeben.
Ich weiß, dass WMS in der Bioinformatik sehr beliebt sind (zum Beispiel Galaxy ), aber ich suche etwas allgemeineres.
Antworten:
Für die Protokollierung, die vollständige Reproduzierbarkeit ermöglicht, empfehle ich das Sumatra- Python-Paket. Es verknüpft die Versionskontroll-Festschreibungsnummer, den Computerstatus und die Ausgabedateien mit jedem Programmlauf und verfügt über eine Django-Weboberfläche für die Interaktion mit der Datenbank mit den Laufinformationen. Die Python-API macht es sehr einfach, die Protokollierung in meine Skripte aufzunehmen.
quelle
Vor einigen Monaten bin ich auf die sehr empfehlenswerte Website von Hans-Martin v. Gaudecker gestoßen, der Kurse wie "Effektive Programmierpraktiken für Ökonomen" unterrichtet. In seinem Herbstkurs 2010 stellte er SCons vor, in seinem Herbstkurs 2011 wechselte er zu Waf , das schneller sein soll als SCons, aber immer noch auf Python basiert. Die Folien für beide Kurse stehen zum Download zur Verfügung und ich (als Sozialwissenschaftler) fand sie sehr lehrreich und aufschlussreich.
quelle
Schauen Sie sich VisTrails an . Ich habe es nicht benutzt (es gibt nur Homebrew-Artikel
make
), aber es sieht gut durchdacht aus, mit einem guten Dokument, und es hat echte Benutzer bei der NASA usw.(Suchen Sie nach Tools für 1-2 Personen, 4-5, mehr) ?)
Hinzugefügt: nicht ganz Ihre Frage, aber ich denke, es lohnt sich zu wiederholen:
Für einheitliche, reproduzierbare Computerexperimente braucht man offensichtlich
Siehe auch software-carpentry.org : "Das Problem, das wir zu lösen versuchen, besteht darin, dass Wissenschaftler häufig 40% oder mehr ihrer Zeit damit verbringen, mit Software zu ringen, aber 95% oder mehr von ihnen sind in erster Linie Autodidakten."
quelle
Alle Anforderungen, die Sie in Ihrer Frage angesprochen haben, werden vom Swift-Parallel-Scripting-System erfüllt.
Ich habe ein Jahr bei der Swift Group als Postdoktorand (Doktor in wissenschaftlichen Arbeitsabläufen) verbracht. Wir haben Wissenschaftlern und Forschern aus verschiedenen Bereichen dabei geholfen, ihre Rechenanforderungen zu erfüllen.
Swift ist ein Open-Source-Framework für die parallele Ausführung von Workflows. Es wird als paralleles Scripting bezeichnet, um die Tatsache hervorzuheben, dass es eine Scripting-Schnittstelle zum Erstellen von Workflows im Gegensatz zur GUI-Box-Pfeil-Schnittstelle bietet.
Ich kann Ihnen persönlich dabei helfen, mit Swift loszulegen und Ihre Anwendung auszuführen. Um mehr über Swift zu erfahren, schauen Sie bitte hier .
quelle
Taverna ist ein Open-Source-WMS, nicht Python, sondern Java.
quelle
Diese Seite erwähnt einige Pakete: https://wiki.python.org/moin/FlowBasedProgramming
Ein weiteres vielversprechendes Paket, das hier nicht erwähnt wird, ist Snakemake.
quelle
Dexy scheint genau das zu sein, wonach Sie suchen. Von der Website:
quelle
Knime oder Rapidminer könnten wahrscheinlich auch alle Anforderungen erfüllen. Ob sie sollten ist zu gewinnen :)
quelle