(المعروف سابقا باسم cwlab.)
تطبيق ويب مفتوح المصدر جاهز للنشر المبسط لسير عمل البيانات الضخمة.
CI/CD:
التغليف:
الاقتباس والمساهمة:
الانتباه: سير العمل في حالة تجريبية ويمكن تقديم تغييرات كسر في المستقبل. ومع ذلك ، إذا كنت ترغب في اختباره أو حتى تشغيل الإنتاج ، فسندعمك.
يمكن أن يتم التثبيت باستخدام PIP:
python3 -m pip install workflux
يرجى الاطلاع على قسم "التكوين" لمناقشة الخيارات المتاحة.
ابدأ خادم الويب مع التكوين المخصص الخاص بك (أو اترك علامة --config لاستخدام واحد افتراضي):
workflux up --config config.yaml
إذا كنت ترغب في الاستفادة من الحاويات لإدارة التبعية ، فأنت بحاجة إلى تثبيت Docker أو حل حاوية متوافق مع Docker مثل Singularity أو Udocker. لتشغيله على Windows أو MacOS ، يرجى تثبيت إصدارات Docker المخصصة: Docker for Windows ، Docker for Mac
يجب أن يكون استخدام واجهة الويب محسوسًا ذاتيًا مع تعليمات البناء. يقدم القسم التالي نظرة عامة على سيناريو الاستخدام الأساسي.
Workflux مكتوبة في Python المنصة-وبالتالي يمكن تنفيذها على:
يمكن دمج أي عداء CWL الذي يحتوي على واجهة سطر الأوامر في سير العمل من أجل تنفيذ مهام سير عمل CWL أو مصارعي الأدوات ، مثل:
لذلك ، يمكن استخدام سير العمل على أي بنية تحتية تدعمها هؤلاء المتسابقين CWL ، بما في ذلك:
* يرجى الملاحظة:
يتم دعم التنفيذ على Windows فقط بواسطة CWLTool الذي يتحدث إلى Docker لنظام التشغيل Windows. لذلك ، يمكن تنفيذ الأدوات المغطاة بـ CWL وسير العمل والتي يمكن تصميمها في الأصل لـ Linux/MacOS على Windows مع واجهة رسومية توفرها Workflux.
يرجى الاطلاع على البرنامج التعليمي الخاص بنا ، الذي يمشي من خلال مثال بسيط ولكنه مفيد لكيفية استخدام سير العمل لمقارنة تسلسل بروتين Spike لـ Covid-19 في مجموعات المريض.
فيما يلي بعض أدوات القلق: 

Workflux عبارة عن حزمة متعددة الاستخدامات للغاية ولا تجعل أي افتراضات تقريبًا على بيئة الصلبة والبرمجيات المستخدمة لتنفيذ CWL. لتكييفه مع نظامك واستخدام الحالة ، تتوفر مجموعة من خيارات التكوين:
يمكن تحديد جميع خيارات التكوين في ملف yaml واحد يتم توفيره إلى Workflux عند البداية:
workflux up --config my_config.yaml
للحصول على مثال على ملف التكوين ، قم بتشغيل الأمر التالي:
workflux print_config > config.yaml (أو انظر المثال أدناه)
web_server_host :
حدد عنوان المضيف أو IP الذي يقوم عليه خادم الويب. استخدم localhost للاستخدام المحلي على جهازك فقط. استخدم 0.0.0.0 للسماح بإمكانية الوصول عن بُعد بواسطة آلات أخرى في نفس الشبكة.
الافتراضي : localhost
web_server_port :
حدد المنفذ المستخدم من قبل خادم الويب.
الافتراضي : 5000
temp_dir :
دليل للملفات المؤقتة.
الافتراضي : المجلد الفرعي "Workflux/Temp" في الدليل المنزلي
Workflow_dir :
دليل لتوفير مستندات CWL.
الافتراضي : المجلد الفرعي "Workflux/Temp" في الدليل المنزلي
exec_dir :
دليل لحفظ بيانات التنفيذ بما في ذلك ملفات الإخراج.
الافتراضي : المجلد الفرعي "Workflux/Temp" في الدليل المنزلي
default_input_dir :
الدليل الافتراضي حيث يمكن للمستخدمين البحث عن ملفات الإدخال. يمكنك تحديد أدلة إدخال إضافية باستخدام معلمة " add_input_dirs ". الافتراضي : المجلد الفرعي "Workflux/Temp" في الدليل المنزلي
db_dir :
دليل لقواعد البيانات.
الافتراضي : المجلد الفرعي "Workflux/Temp" في الدليل المنزلي
add_input_dirs :
بالإضافة إلى " default_input_dir " ، يمكن البحث عن هذه الدلائل من قبل المستخدم للحصول على ملفات الإدخال.
يرجى تحديدها بتنسيق " الاسم: المسار " كما هو موضح في هذا المثال:
ADD_INPUT_DIRS:
GENOMES_DIR: '/ngs_share/genomes'
PUBLIC_GEO_DATA: '/datasets/public/geo'
الافتراضي : لا يوجد مدخلات إضافية.
add_input_and_upload_dirs :
يمكن للمستخدمين البحث في هذه الدلائل عن ملفات الإدخال (بالإضافة إلى " default_input_dir ") ويمكنهم أيضًا تحميل ملفاتهم الواحدة.
يرجى تحديدها بتنسيق " الاسم: المسار " كما هو موضح في هذا المثال:
ADD_INPUT_AND_UPLOAD_DIRS:
UPLOAD_SCRATCH: '/scratch/upload'
PERMANEN_UPLOAD_STORE: '/datasets/upload'
الافتراضي : لا يوجد مدخلات إضافية.
تصحيح :
إذا تم ضبطه على True ، يتم تشغيل وضع التصحيح. لا تستخدم على أنظمة الإنتاج.
الافتراضي : خطأ
هذا هو المكان الذي تقوم فيه بتكوين كيفية تنفيذ وظائف CWL على نظامك. يتكون الملف الشخصي من أربع خطوات: إعداد ، exec ، eval ، والانتهاء (exec مطلوب فقط ، والباقي اختياري). لكل خطوة ، يمكنك تحديد الأوامر التي يتم تنفيذها في محطة Bash أو CMD.
يمكنك تحديد ملف تعريف التنفيذ المتعدد كما هو موضح في مثال التكوين أدناه. يتيح ذلك لمستخدمي الواجهة الأمامية الاختيار بين خيارات التنفيذ المختلفة (على سبيل المثال باستخدام المتسابقين المختلفين CWL ، أو أنظمة إدارة التبعية المختلفة ، أو حتى اختيار البنية التحتية المتعددة لتنفيذ الدُفعات مثل LSF ، PBS ، ...). لكل ملف تعريف تنفيذ ، تتوفر معلمات التكوين التالية (ولكن فقط النوع و EXEC مطلوب):
يكتب :
حدد أي shell/مترجم لاستخدامه. ل Linux أو MacOS استخدم bash . لنظام التشغيل Windows ، استخدم powershell .
مطلوب .
max_retries : حدد عدد المرات التي يتم فيها إعادة التنفيذ (جميع الخطوات) قبل وضع علامة على الفشل.
نفذ الوقت :
لكل خطوة في ملف تعريف التنفيذ ، يمكنك تعيين حد مهلة.
تقصير :
prepare : 120
exec : 86400
eval : 120
finalize : 120 يحضر *:
الأوامر التي يتم تنفيذها قبل تنفيذ CWL الفعلي. على سبيل المثال لتحميل بيئات Python/Conda المطلوبة.
خياري .
exec *:
أوامر لبدء تنفيذ CWL. عادة ، هذا هو سطر الأوامر فقط لتنفيذ عداء CWL. يجب إعادة توجيه stdout و stderr من عداء CWL إلى ملف السجل المحدد مسبقًا.
مطلوب .
eval *:
يتم فحص حالة الخروج في نهاية خطوة EXEC تلقائيًا. يمكنك هنا تحديد الأوامر لتقييم محتوى سجل التنفيذ بالإضافة إلى ذلك لتحديد ما إذا كان التنفيذ قد نجح. لتوصيل الفشل في سير العمل ، قم بتعيين متغير SUCCESS إلى False .
خياري .
اللمسات الأخيرة *: الأوامر التي يتم تنفيذها بعد exec و eval . على سبيل المثال ، يمكن استخدام هذا لتنظيف الملفات المؤقتة.
* ملاحظات إضافية بخصوص خطوات ملف تعريف التنفيذ:
JOB_IDRUN_ID (يرجى ملاحظة: فريدة من نوعها فقط داخل الوظيفة)WORKFLOW (المسار إلى وثيقة CWL المستخدمة)RUN_INPUT (المسار إلى ملف yaml يحتوي على معلمات الإدخال)OUTPUT_DIR (مسار دليل الإخراج الخاص بالتشغيل)LOG_FILE (مسار ملف السجل الذي يجب أن يتلقى stdout و stderr من عداء CWL)SUCCESS (إذا تم تعيينه على False سيتم تمييز التشغيل على أنه فشل وإنهاء)PYTHON_PATH (المسار إلى مترجم Python المستخدم لتشغيل سير العمل)SUCCESS إلى False .{...} ) يجب أن تكون في سطر واحد.أدناه ، يمكنك العثور على مثال تكوينات للتنفيذ المحلي لسير عمل أو أدوات CWL مع CWLTool.
WEB_SERVER_HOST : localhost
WEB_SERVER_PORT : 5000
DEBUG : False
TEMP_DIR : ' /home/workflux_user/workflux/temp '
WORKFLOW_DIR : ' /home/workflux_user/workflux/workflows '
EXEC_DIR : ' /datasets/processing_out/ '
DEFAULT_INPUT_DIR : ' /home/workflux_user/workflux/input '
DB_DIR : ' /home/workflux_user/workflux/db '
ADD_INPUT_DIRS :
GENOMES_DIR : ' /ngs_share/genomes '
PUBLIC_GEO_DATA : ' /datasets/public/geo '
ADD_INPUT_AND_UPLOAD_DIRS :
UPLOAD_SCRATCH : ' /scratch/upload '
PERMANEN_UPLOAD_STORE : ' /datasets/upload '
EXEC_PROFILES :
cwltool_local :
type : bash
max_retries : 2
timeout :
prepare : 120
exec : 86400
eval : 120
finalize : 120
exec : |
cwltool --outdir "${OUTPUT_DIR}" "${WORKFLOW}" "${RUN_INPUT}"
>> "${LOG_FILE}" 2>&1
eval : |
LAST_LINE=$(tail -n 1 ${LOG_FILE})
if [[ "${LAST_LINE}" == *"Final process status is success"* ]]
then
SUCCESS=True
else
SUCCESS=False
ERR_MESSAGE="cwltool failed - ${LAST_LINE}"
fi WEB_SERVER_HOST : localhost
WEB_SERVER_PORT : 5000
DEBUG : False
TEMP_DIR : ' C:Usersworkflux_userworkfluxtemp '
WORKFLOW_DIR : ' C:Usersworkflux_userworkfluxworkflows '
EXEC_DIR : ' D:processing_out '
DEFAULT_INPUT_DIR : ' C:Usersworkflux_userworkfluxinput '
DB_DIR : ' C:Usersworkflux_userworkfluxdb '
ADD_INPUT_DIRS :
GENOMES_DIR : ' E:genomes '
PUBLIC_GEO_DATA : ' D:publicgeo '
ADD_INPUT_AND_UPLOAD_DIRS :
UPLOAD_SCRATCH : ' E:upload '
PERMANEN_UPLOAD_STORE : ' D:upload '
EXEC_PROFILES :
cwltool_windows :
type : powershell
max_retries : 2
timeout :
prepare : 120
exec : 86400
eval : 120
finalize : 120
exec : |
. "${PYTHON_PATH}" -m cwltool --debug --default-container ubuntu:16.04 --outdir "${OUTPUT_DIR}" "${CWL}" "${RUN_INPUT}" > "${LOG_FILE}" 2>&1
eval : |
$LAST_LINES = (Get-Content -Tail 2 "${LOG_FILE}")
if ($LAST_LINES.Contains("Final process status is success")){$SUCCESS="True"}
else {$SUCCESS="False"; $ERR_MESSAGE = "cwltool failed - ${LAST_LINE}"} هذه الحزمة مجانية للاستخدام والتعديل بموجب ترخيص Apache 2.0.
شكراً لهؤلاء الأشخاص الرائعين (مفتاح الرموز التعبيرية):
كيرستن برير ؟ | بافلو لوتسيك ؟ ؟ | سفين Twardziok | ماريوس ؟ | لوكاس جيلونيك | مايكل فرانكلين | أليكس كانيتز |
يوان باجيود | ياسين أسنوف ؟ | يويو لين ؟ |
يتبع هذا المشروع مواصفات جميع المساهمين. مساهمات من أي نوع ترحيب!