वैज्ञानिक वर्कफ़्लो प्रबंधन प्रणाली


30

किसी ने मुझे एक अच्छा कार्यप्रवाह प्रबंधन प्रणाली (WMS) की सिफारिश कर सकते हैं, अधिमानतः अजगर में? अब तक मैं जीएनयू मेक का उपयोग कर रहा हूं, लेकिन यह उस जटिलता की परत का परिचय देता है जिससे मैं बचना चाहता हूं। एक अच्छे WMS में निम्नलिखित विशेषताएं होनी चाहिए:

  • कमांड लाइन टूल और पायथन स्क्रिप्ट के साथ आसानी से एकीकृत करें,
  • उपयोग करने के लिए सरल और हल्के,
  • निर्भरता को संभालने,
  • कमांड लाइन इंटरफ़ेस प्रदान करें,
  • लॉगिंग तंत्र प्रदान करें,
  • (वैकल्पिक) डेटा प्रोविज़न प्रदान करते हैं।

मुझे पता है कि डब्ल्यूएमएस जैव सूचना विज्ञान (उदाहरण के लिए गैलेक्सी ) में बहुत लोकप्रिय हैं , लेकिन मैं कुछ और सामान्य की तलाश कर रहा हूं।


2
यह एक पूर्ण उत्तर नहीं है, लेकिन जब से आपने एक ही प्रश्न में जीएनयू मेक और पायथन का उल्लेख किया है, तो सोचा कि मैं आपको SCons: scons.org की
Reid.Atcheson

धन्यवाद। क्या आप वैज्ञानिक वर्कफ़्लोज़ के लिए SCons का उपयोग करके किसी भी उदाहरण के बारे में जानते हैं?
btel

मैंने पाया है कि थोड़े से काम के साथ, आप ज्यादातर (कभी-कभी बाहरी उपकरणों के साथ एकीकरण करके) करने के लिए emacs प्राप्त कर सकते हैं। यह शायद वह नहीं है जो आप ढूंढ रहे हैं, हालांकि, क्योंकि मुझे लगता है कि मुझे आमतौर पर अभी भी कुछ भी अनौपचारिक संकलन करने के लिए मेकअप का उपयोग करना होगा।
दान

1
मैं SCons और waf के बारे में एक उत्तर लिख सकता हूं, जो पायथन बिल्ड सिस्टम टूल हैं। मैंने अभी कुछ महीनों के लिए SCons का उपयोग किया है, और आप GNU मेक के सापेक्ष इसके बारे में अच्छा और बुरा क्या है, इस पर कुछ परिप्रेक्ष्य दे सकते हैं। उस ने कहा, मैं सोच रहा था कि क्या आप "लॉगिंग मैकेनिज्म प्रदान करने" और "डेटा प्रोवेंस प्रदान करने" के बारे में बता सकते हैं। लॉगिंग के संदर्भ में, क्या आप केवल लॉगफ़ाइल चाहते हैं, या क्या आप संस्करण नियंत्रण प्रणाली की तरह कुछ और देख रहे हैं?
ज्योफ ऑक्सबेरी

1
लॉगफ़ाइल्स की तरह लॉगिंग कुछ बहुत ही सरल हो सकती है, जैसा कि आप सुझाव देते हैं, सभी रनों के टाइमस्टैम्प्स के साथ, stderr के रीडायरेक्ट और (वैकल्पिक रूप से) stdout। इसके अलावा एक अलग निर्देशिका में वर्कफ़्लो में प्रत्येक चरण से मध्यवर्ती परिणाम रख सकता है। डेटा प्रोवेंस एक नियंत्रण संस्करण प्रणाली की तरह कुछ और है जो सभी संगणना स्क्रिप्ट, इनपुट और आउटपुट फ़ाइलों का इतिहास रखता है। वर्तमान में, मैं मेकफाइल्स + गिट का उपयोग करता हूं, लेकिन मैं कुछ बेहतर एकीकृत और उपयोग करने में आसान लगता हूं। मैंने SCons के बारे में सुना है लेकिन मुझे नहीं पता कि Make पर इसका क्या फायदा है।
btel

जवाबों:


12

लॉगिंग के लिए जो पूर्ण प्रजनन क्षमता की अनुमति देता है, मैं अत्यधिक सुमात्रा अजगर पैकेज की सिफारिश करता हूं । यह अच्छी तरह से प्रत्येक प्रोग्राम चलाने के लिए संस्करण नियंत्रण प्रतिबद्ध संख्या, मशीन राज्य और आउटपुट फ़ाइलों को जोड़ता है और रन जानकारी के डेटाबेस के साथ बातचीत करने के लिए एक django वेब इंटरफ़ेस है। अजगर एपीआई मेरी स्क्रिप्ट में लॉगिंग को शामिल करना बहुत आसान बनाता है।


सुमात्रा वास्तव में दिलचस्प लगती है; मुझे इसे आजमाना होगा।
ज्योफ ऑक्सीबेरी

यह मेरी सभी आवश्यकताओं को पूरा नहीं करता है, लेकिन यह मेरी जरूरत के सबसे करीब है। इसलिए, मैंने जवाब स्वीकार कर लिया। प्रकटीकरण: मैं सारांश के डेवलपर्स में से एक हूं।
btel

8

कुछ महीने पहले, मैंने हंस-मार्टिन बनाम गौडेकर की अत्यधिक अनुशंसित वेबसाइट पर ठोकर खाई, जो "अर्थशास्त्रियों के लिए प्रभावी प्रोग्रामिंग प्रथाओं" जैसे पाठ्यक्रम सिखाता है। अपने शरद ऋतु 2010 के पाठ्यक्रम में उन्होंने SCons की शुरुआत की, अपने शरद ऋतु 2011 के पाठ्यक्रम में उन्होंने waf पर स्विच किया , जो कि SCons से अधिक तेज़ माना जाता है, लेकिन फिर भी पायथन-आधारित है। दोनों पाठ्यक्रमों के लिए स्लाइड डाउनलोड के लिए उपलब्ध हैं और मैं (एक सामाजिक वैज्ञानिक के रूप में) उन्हें बहुत शिक्षाप्रद और ज्ञानवर्धक पाया।


1
स्कोन सुंदर रेड है। यह समान रूप से अच्छी तरह से बहुत जटिल या बहुत सरल स्कीमा का समर्थन करता है !
मेवोप्लप

2
SCons और किसी भी तेजी से निर्माण उपकरण के बीच व्यापार आम तौर पर निर्भरता जाँच के साथ करना है। मुख्यधारा की भाषाओं (C, C ++, फोरट्रान, डी, पायथन, जावा, आदि) के लिए, SCON स्वचालित रूप से समय स्टैम्प के बजाय MD5 हैश-आधारित एल्गोरिथ्म का उपयोग करके निर्भरता का निर्धारण करेगा, जो उत्पन्न फ़ाइलों के साथ काम करते समय नाजुक हो सकता है। बाकी सब कुछ प्रदर्शन में SCons को हराता है (सॉफ्टवेयर बनाने के लिए समय की आवश्यकता होती है) क्योंकि वे बहुत अधिक निर्भरता की जाँच नहीं करते हैं, या वे निर्भरता की जाँच को किसी अन्य उपकरण (जैसे उपयोग किए गए कंपाइलर) को ऑफ़लोड करते हैं।
ज्योफ ऑक्सबेरी

1
आपके उत्तर की पहली कड़ी अब 404 है। ऐसा लगता है कि उनका नया पेज uni-bonn.de/~hmg308/teaching.html पर है
liori

SCons में "अप-टू-डेटैलिटी" जाँच का विन्यास है, इसलिए आप टाइमस्टैम्प, हैश या कुछ संयोजन के बीच चयन कर सकते हैं। उस ने कहा, मैं इसके साथ निराश हो रहा हूं: कुछ चीजें बहुत आसान हैं (उदाहरण के लिए टूल चेन का उपयोग करके सॉफ़्टवेयर संकलित करना जिसके लिए SCons अच्छा टूल पैकेज है) और लगभग कुछ भी संभव है, लेकिन यह जल्दी से बदसूरत हो जाता है।
एरिक एंडरसन

4

VisTrails पर एक नज़र डालें । मैंने इसका उपयोग नहीं किया है (केवल घरेलू सामान के आसपास make), लेकिन यह अच्छी तरह से सोचा-अच्छा लग रहा है, अच्छे डॉक्टर के साथ, और नासा आदि में वास्तविक उपयोगकर्ता हैं
(क्या आप 1-2 लोगों के लिए उपकरण ढूंढ रहे हैं, 4-5, अधिक ?)

जोड़ा गया: आपका सवाल काफी नहीं है, लेकिन मुझे लगता है कि दोहराने के लायक है:
वर्दी के लिए, प्रतिलिपि प्रस्तुत करने योग्य कंप्यूटर प्रयोगों को स्पष्ट रूप से एक की जरूरत है

  • समान निर्देशिका संरचनाएं, जैसे कब-क्या / में / बाहर / स्क्रिप्ट / लॉग /
  • एक रन के लिए सभी मापदंडों की एकसमान सेटिंग और गूंज
  • संक्षेप में / रन बनाने / मूल्यांकन करने के लिए स्क्रिप्ट।

सॉफ्टवेयर- carpentry.org भी देखें : "हम जिस समस्या को हल करने का प्रयास कर रहे हैं, वह यह है कि वैज्ञानिक अक्सर सॉफ़्टवेयर के साथ कुश्ती के 40% या अधिक समय बिताते हैं, लेकिन उनमें से 95% या अधिक मुख्य रूप से स्व-सिखाया जाता है"।


4

आपके द्वारा अपने प्रश्न में वर्णित सभी आवश्यकताओं को स्विफ्ट समानांतर स्क्रिप्टिंग सिस्टम द्वारा पूरा किया गया है।

मैंने स्विफ्ट समूह के साथ पोस्टडॉक्टोरल शोधकर्ता (वैज्ञानिक वर्कफ़्लोज़ में पीएचडी) के रूप में एक वर्ष बिताया है। हम विभिन्न डोमेन के वैज्ञानिकों और शोधकर्ताओं को उनकी कम्प्यूटेशनल जरूरतों को संबोधित करने में मदद कर रहे हैं।

स्विफ्ट समानांतर रूप से वर्कफ़्लो चलाने के लिए एक खुला स्रोत ढांचा है। यह मुख्य रूप से इस तथ्य को उजागर करने के लिए समानांतर स्क्रिप्टिंग कहा जाता है कि यह जीयूआई बॉक्स-तीर इंटरफ़ेस के विपरीत वर्कफ़्लो बनाने के लिए एक स्क्रिप्टिंग इंटरफ़ेस प्रदान करता है।

मैं व्यक्तिगत रूप से आपको स्विफ्ट के साथ अपना आवेदन शुरू करने और चलाने में मदद कर सकता हूं। स्विफ्ट के बारे में अधिक जानने के लिए, कृपया यहां देखें


Scicomp में आपका स्वागत है! क्या आपको लगता है कि अपने उत्तर को थोड़ा और बढ़ाएँ (संपादित करने के लिए अपने जवाब के नीचे थोड़ा ग्रे संपादन बटन पर क्लिक करें)। इसके अलावा, क्या आप अपने उत्तर में थोड़ा और स्पष्ट करने के लिए अपना संबंध बना सकते हैं? धन्यवाद!
एरन अहमदिया

1

टवेर्न एक ओपन-सोर्स WMS है, पायथन नहीं बल्कि जावा है।


क्या आपने इसका इस्तेमाल किया है?
डेथब्रेथ

सलाह के लिये धन्यवाद। मैंने टवेर्ना वेबसाइट को देखा, लेकिन यह मुख्य रूप से चित्रमय उपकरण जैसा दिखता है। मैं कुछ कमांड-लाइन-आधारित की तलाश कर रहा हूं। टवेर्न कमांड-लाइन टूल प्रदान करता है, लेकिन यह केवल वर्कफ़्लोज़ को निष्पादित करने के लिए है, लेकिन उन्हें नहीं बनाता है (क्या यह सही है?)। यह बहुत अधिक जैव सूचना विज्ञान-उन्मुख भी लगता है।
btel

यह मेरे लिए लगता है, आप संख्यात्मक निर्माणों के लिए उपयुक्त मेकज़ या स्कैन्स जैसी निर्माण प्रणाली के बजाय अधिक उपयुक्त लग रहे हैं?
GertVdE

पूछने के लिए माफ़ करें। LIMS वास्तव में क्या है?
बीटीएल

1
प्रयोगशाला सूचना प्रबंधन प्रणाली। यह प्रयोगशाला प्रयोगों का लॉग रखने के लिए उपकरणों का एक परिवार है। लेकिन ये आम तौर पर, उदाहरण के लिए, रासायनिक विश्लेषण के लिए होते हैं। आप Google को "सिलिको प्रयोगों" में प्रयोग करना चाहते हैं, अर्थात एक कंप्यूटर पर सिमुलेशन और "लॉगिंग" की आवश्यकता होती है -> इनपुट / आउटपुट डेटा संग्रहीत करते हुए, सॉफ़्टवेयर के किस संस्करण का उपयोग किया गया था, परिकल्पना, ...
GertVdr


0

Dexy लगता है कि यह वास्तव में आप के बाद क्या क्षेत्र है। साइट से:

डेक्सी एक बहुउद्देश्यीय परियोजना स्वचालन उपकरण है जिसमें दस्तावेजों के साथ काम करने के लिए बहुत सारी विशेषताएं हैं। Dexy Python में लिखा गया है और इसमें कमांड-लाइन इंटरफ़ेस है। यह एक एमआईटी लाइसेंस के साथ ओपन सोर्स सॉफ्टवेयर है।

देसी क्या करता है?

Dexy आपके लिए दोहराए गए भागों को करके तकनीकी दस्तावेज बनाना आसान बनाता है। Dexy आपको उपकरण और स्क्रिप्ट के लिए एक सुसंगत इंटरफ़ेस प्रदान करता है ताकि आपको उन्हें मैन्युअल रूप से चलाना न पड़े। आपकी परियोजना का dexy विन्यास इस बात की जानकारी रखता है कि किस क्रम में, किस क्रम में और किन मापदंडों के साथ चलना है। इस तरह, आपकी पूरी प्रक्रिया पर कब्जा कर लिया गया है, इसलिए कोई भी इसे एक साधारण आदेश का उपयोग करके चला सकता है और परिणाम सुसंगत होंगे।

आप एक एपीआई का उपयोग कैसे करें, यह दिखाते हुए उदाहरणों के साथ एक ब्लॉग पोस्ट लिखना चाहते हैं। Dexy स्वचालित रूप से होगा:

  • परिणामों को सहेजते हुए अपना उदाहरण कोड चलाएं
  • अपने उदाहरण कोड के लिए सिंटैक्स हाइलाइटिंग लागू करें (pyolution का उपयोग करके)
  • एपीआई कॉल के परिणाम और अपने पूर्वनिर्धारित उदाहरण कोड को अपनी पोस्ट में डालें (जिंजा का उपयोग करके)
  • अपने मार्कडाउन-स्वरूपित ब्लॉग पोस्ट को HTML में बदलें (पायथन मार्कडाउन या पंडोक का उपयोग करके)।
  • ड्राफ्ट मोड में वर्डप्रेस एपीआई पर HTML अपलोड करें (वर्डप्रेस एपीआई का उपयोग करके)
  • अपना ब्लॉग पोस्ट प्रकाशित करें जब आप इसे समाप्त कर रहे हैं

मैंने कुछ वर्षों के लिए Dexy का अनुसरण किया है, और मुझे जो इंप्रेशन मिले हैं वह यह है कि इसे व्यापक रूप से अपनाया नहीं गया है, और यह सक्रिय रूप से विकसित नहीं हुआ है। ये लक्षण चिकन-एंड-एग समस्या हो सकते हैं (एक छोटा उपयोगकर्ता आधार इसका मतलब है कि यह सक्रिय रूप से विकसित नहीं हुआ है, सक्रिय रूप से विकसित नहीं होने से उपयोगकर्ता की वृद्धि को नुकसान होता है)। यह सुपर कूल लग रहा है, और यह चेहरे पर है, मुझे लगता है कि यह बिल्कुल वैसा ही है जैसा कि वैज्ञानिकों को आईपीथॉन, नाइट्र और बस्पोक स्क्रिप्ट से परे प्रजनन योग्यता को व्यापक बनाने की आवश्यकता है, लेकिन किसी कारण से ... यह सिर्फ ऐसा नहीं लगता है जैसे इसका उपयोग किया जाता है। एना नेल्सन ब्लॉग के बारे में इतना भी नहीं बताती है, और उसने इसे लिखा है।
जियोफ ऑक्सबेरी

ठीक है, नवीनतम ब्लॉब पोस्ट जनवरी से है, और इस वर्ष 3 कमिट आए हैं। सुपर सक्रिय नहीं, लेकिन मृत नहीं, खासकर अगर यह उन परियोजनाओं में से एक है जो बस स्थिर हो जाता है और वास्तव में किसी भी अधिक काम की आवश्यकता नहीं होती है। अन्य परियोजनाएं हैं जिनका मैं बहुत अधिक हालिया विकास इतिहास के साथ उपयोग करता हूं। मुर्गी और अंडे की समस्या के लिए, शायद यहाँ एक उत्थान और जहाँ कहीं भी इसका एसई पर उल्लेख किया गया है, वह मदद करेगा: पी
n

0

नीम या रैपिडमिनर संभवतः सभी आवश्यकताओं को भी संभाल सकता है। चाहे वे पकड़ के लिए है :)



इसके अलावा, निफी काफी निफ्टी है, लेकिन मुझे नहीं लगता कि यह सभी आवश्यकताओं को पूरी तरह से कवर करता है।
ग्रिम्बी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.