(เดิมชื่อ Cwlab.)
แอปพลิเคชันเว็บโอเพ่นซอร์สพร้อมคลาวด์สำหรับการปรับใช้งานที่ง่ายขึ้นของเวิร์กโฟลว์ข้อมูลขนาดใหญ่
CI/CD:
บรรจุภัณฑ์:
การอ้างอิงและการบริจาค:
ความสนใจ: เวิร์กฟลักซ์อยู่ในสถานะเบต้าและอาจมีการเปลี่ยนแปลงการเปลี่ยนแปลงในอนาคต อย่างไรก็ตามหากคุณต้องการทดสอบหรือทำงานในการผลิตเราจะสนับสนุนคุณ
การติดตั้งสามารถทำได้โดยใช้ PIP:
python3 -m pip install workflux
โปรดดูส่วน "การกำหนดค่า" สำหรับการอภิปรายของตัวเลือกที่มีอยู่
เริ่มต้นเว็บเซิร์ฟเวอร์ด้วยการกำหนดค่าที่กำหนดเองของคุณ (หรือออกจาก --config flag เพื่อใช้ค่าเริ่มต้น):
workflux up --config config.yaml
หากคุณต้องการใช้ประโยชน์จากคอนเทนเนอร์เพื่อการจัดการการพึ่งพาคุณต้องติดตั้ง Docker หรือโซลูชันคอนเทนเนอร์ที่เข้ากันได้กับ Docker เช่นความเป็นเอกเทศหรือ Udocker หากต้องการทำงานบน Windows หรือ MacOS โปรดติดตั้งเวอร์ชัน Docker เฉพาะ: Docker for Windows, Docker สำหรับ Mac
การใช้งานเว็บอินเตอร์เฟสควรอธิบายตนเองด้วยคำแนะนำในการสร้าง ส่วนต่อไปนี้ให้ภาพรวมของสถานการณ์การใช้งานพื้นฐาน
Workflux เขียนใน Pathon-Agnostic Python และสามารถดำเนินการได้ใน:
นักวิ่ง CWL ใด ๆ ที่มีอินเทอร์เฟซบรรทัดคำสั่งสามารถรวมเข้ากับเวิร์กโฟลFเพื่อเรียกใช้เวิร์กโฟลว์ CWL หรือเครื่องมือที่ใช้เครื่องมือเช่น::
ดังนั้นเวิร์กโฟลFสามารถใช้กับโครงสร้างพื้นฐานใด ๆ ที่ได้รับการสนับสนุนโดยนักวิ่ง CWL เหล่านี้รวมถึง:
* โปรดทราบ:
การดำเนินการบน Windows ได้รับการสนับสนุนโดย CWLTool เท่านั้นซึ่งพูดคุยกับ Docker สำหรับ Windows ดังนั้นเครื่องมือและเวิร์กโฟลว์ที่ห่อด้วย CWL ซึ่ง แต่เดิมออกแบบมาสำหรับ Linux/MacOS สามารถดำเนินการบน Windows ด้วยอินเทอร์เฟซกราฟิกที่จัดทำโดย Workflux
โปรดดูบทช่วยสอนของเราที่นำคุณผ่านตัวอย่างที่เรียบง่าย แต่มีความหมายว่าวิธีการทำงานสามารถใช้ในการเปรียบเทียบลำดับโปรตีนสไปค์ของ COVID-19 ในกลุ่มผู้ป่วยสองคน
นี่คือ apetizers บางส่วน: 

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" ใน Home Directory
เวิร์กโฟลว์ _dir :
ไดเรกทอรีสำหรับบันทึกเอกสาร CWL
ค่าเริ่มต้น : โฟลเดอร์ย่อย "Workflux/Temp" ใน Home Directory
exec_dir :
ไดเรกทอรีสำหรับการบันทึกข้อมูลการดำเนินการรวมถึงไฟล์เอาต์พุต
ค่าเริ่มต้น : โฟลเดอร์ย่อย "Workflux/Temp" ใน Home Directory
default_input_dir :
ไดเรกทอรีเริ่มต้นที่ผู้ใช้สามารถค้นหาไฟล์อินพุต คุณสามารถระบุไดเรกทอรีอินพุตเพิ่มเติมโดยใช้พารามิเตอร์ " add_input_dirs " ค่าเริ่มต้น : โฟลเดอร์ย่อย "Workflux/Temp" ใน Home Directory
db_dir :
ไดเรกทอรีสำหรับฐานข้อมูล
ค่าเริ่มต้น : โฟลเดอร์ย่อย "Workflux/Temp" ใน Home Directory
add_input_dirs :
นอกเหนือจาก " default_input_dir " ไดเรกทอรีเหล่านี้สามารถค้นหาได้โดยผู้ใช้สำหรับไฟล์อินพุต
โปรดระบุพวกเขาในรูปแบบ " ชื่อ: พา ธ " เช่นเดียวกับที่แสดงในตัวอย่างนี้:
ADD_INPUT_DIRS:
GENOMES_DIR: '/ngs_share/genomes'
PUBLIC_GEO_DATA: '/datasets/public/geo'
ค่าเริ่มต้น : ไม่มีอินพุตเพิ่มเติม DIR
add_input_and_upload_dirs :
ผู้ใช้สามารถค้นหาไดเรกทอรีเหล่านี้สำหรับไฟล์อินพุต (นอกเหนือจาก " default_input_dir ") และพวกเขาอาจอัปโหลดไฟล์เดียว
โปรดระบุพวกเขาในรูปแบบ " ชื่อ: พา ธ " เช่นเดียวกับที่แสดงในตัวอย่างนี้:
ADD_INPUT_AND_UPLOAD_DIRS:
UPLOAD_SCRATCH: '/scratch/upload'
PERMANEN_UPLOAD_STORE: '/datasets/upload'
ค่าเริ่มต้น : ไม่มีอินพุตเพิ่มเติม DIR
การดีบัก :
หากตั้งค่าเป็นจริงโหมดการดีบักจะเปิดอยู่ อย่าใช้กับระบบการผลิต
ค่าเริ่มต้น : FALSE
นี่คือที่ที่คุณกำหนดค่าวิธีการทำงาน CWL ในระบบของคุณ โปรไฟล์ประกอบด้วยสี่ขั้นตอน: เตรียม, EXEC, EXCED และ FENIZED (เฉพาะที่ต้องการส่วนที่เหลือเป็นตัวเลือก) สำหรับแต่ละขั้นตอนคุณสามารถระบุคำสั่งที่ดำเนินการใน Bash หรือ CMD Terminal
คุณสามารถกำหนดโปรไฟล์การดำเนินการหลายรายการตามที่แสดงในตัวอย่างการกำหนดค่าด้านล่าง สิ่งนี้ช่วยให้ผู้ใช้ส่วนหน้าสามารถเลือกระหว่างตัวเลือกการดำเนินการที่แตกต่างกัน (เช่นการใช้นักวิ่ง CWL ที่แตกต่างกันระบบการจัดการการพึ่งพาที่แตกต่างกันหรือแม้แต่เลือกระหว่างโครงสร้างพื้นฐานการดำเนินการหลายชุดที่มีอยู่เช่น LSF, PBS, ... ) สำหรับแต่ละโปรไฟล์การดำเนินการแต่ละพารามิเตอร์การกำหนดค่าจะพร้อมใช้งาน (แต่ต้องการ ประเภท และ exec เท่านั้น):
พิมพ์ :
ระบุเชลล์/ล่ามที่จะใช้ สำหรับ Linux หรือ MacOS ใช้ bash สำหรับ Windows ให้ใช้ powershell
ที่จำเป็น .
max_retries : ระบุจำนวนครั้งที่การดำเนินการ (ทุกขั้นตอน) ถูกลองใหม่ก่อนที่จะทำเครื่องหมายการทำงานที่ล้มเหลว
หมดเวลา :
สำหรับแต่ละขั้นตอนในโปรไฟล์การดำเนินการคุณสามารถกำหนดขีด จำกัด การหมดเวลา
ค่าเริ่มต้น :
prepare : 120
exec : 86400
eval : 120
finalize : 120 เตรียมตัว *:
คำสั่งที่ดำเนินการก่อนการดำเนินการ CWL จริง ตัวอย่างเช่นการโหลดสภาพแวดล้อม Python/Conda ที่ต้องการ
ไม่จำเป็น .
Exec *:
คำสั่งเพื่อเริ่มต้นการดำเนินการ CWL โดยปกตินี่เป็นเพียงบรรทัดคำสั่งในการรันนักวิ่ง CWL stdout และ stderr ของนักวิ่ง CWL ควรเปลี่ยนเส้นทางไปยังไฟล์บันทึกที่กำหนดไว้ล่วงหน้า
ที่จำเป็น .
ประเมิน *:
สถานะการออกในตอนท้ายของขั้นตอน EXEC จะถูกตรวจสอบโดยอัตโนมัติ ที่นี่คุณสามารถระบุคำสั่งเพื่อประเมินเนื้อหาของบันทึกการดำเนินการเพิ่มเติมเพื่อพิจารณาว่าการดำเนินการสำเร็จหรือไม่ ในการสื่อสารความล้มเหลวในเวิร์กลักซ์ตั้งค่าตัวแปร SUCCESS เป็น False
ไม่จำเป็น .
จบลง *: คำสั่งที่ดำเนินการหลังจาก EXEC และ EXER ตัวอย่างเช่นสิ่งนี้สามารถใช้ในการทำความสะอาดไฟล์ชั่วคราว
* หมายเหตุเพิ่มเติมเกี่ยวกับขั้นตอนโปรไฟล์การดำเนินการ:
JOB_IDRUN_ID (โปรดทราบ: เฉพาะภายในงานเท่านั้น)WORKFLOW (เส้นทางไปยังเอกสาร CWL ที่ใช้แล้ว)RUN_INPUT (พา ธ ไปยังไฟล์ YAML ที่มีพารามิเตอร์อินพุต)OUTPUT_DIR (เส้นทางของไดเรกทอรีเอาต์พุตเฉพาะการรัน)LOG_FILE (เส้นทางของไฟล์บันทึกที่ควรได้รับ stdout และ stderr ของ cwl runner)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
ขอบคุณไปที่คนที่ยอดเยี่ยมเหล่านี้ (คีย์อีโมจิ):
Kersten Breuer - | Pavlo Lutsik - - | Sven Twardziok | มาร - | Lukas Jelonek | Michael Franklin | Alex Kanitz |
Yoann Pageaud | Yassen Assenov - | Yuyu Lin - |
โครงการนี้เป็นไปตามข้อกำหนดทั้งหมดของผู้เข้าร่วม การมีส่วนร่วมทุกชนิดยินดีต้อนรับ!