前文鏈接:
在上文圖形化開放式生信分析系統開發 - 3 生信分析pipeline的進化 討論了生信分析流程的進化,從手動到自動,但仍然停留在終端命令行階段,爲了讓更多非生信專業的人能夠使用,就要想辦法實現生信分析pipeline的圖形化:提供能夠快速上手的UI,簡單點擊鼠標就能夠運行的圖形化系統。
核心功能:pipeline的圖形化工作流設計器
變量處理:要實現pipeline圖形設計器,首先要先對用到的變量,做統一的設計。
1. 變量的分類: 根據實際經驗,pipeline變量用到根據用途可以分爲以下幾類:
- 分析數據目錄{result}
- 分析用到的軟件 bwa ${tools.bwa};samtools ${tools.samtools}
- 分析流程中用的reference文件以及數據庫,如 hg19.fa ${ref.hg19}
- 分析流程中,用到的cutoff值. 如 cnv的cutoff值 ${cutoff.cnv}
- 分析流程運行時配置的資源,如 線程數 {mem}
2. 變量值的類型:
- 字符:通用的格式,比較寬鬆
- 程序:校驗變量值時,判斷文件是否存在,是否有可執行權限
- 文件:校驗變量值時,判斷文件是否存在,是否有讀寫權限
- 目錄:校驗變量時,判斷目錄是否存在,是否有讀寫權限
- 數值:校驗變量時,判斷是否爲數值格式
最終設計數據好數據結構,做好增刪改查功能,UI如下:
分析步驟/節點設計:前文提到,生信分析pipeline其實就是基於文件輸入輸出的工作流,這裏對工作流做了簡化,歸納起來工作流中有4種節點。
- Input節點,提供pipeline的起始輸入文件
- Output節點,獲取pipeline的最終輸出文件
- Task節點,輸入文件,運行分析過程,輸出分析過程運行結果
- Database節點,部分pipeline運行結果,需要將輸出文件保存至系統數據庫中
工作流設計: 最後,有了變量,和節點,最後就是工作流的設計了。用連接線,將以上4中節點連接起來,計算相互之間的依賴關係,用統一的格式保存起來。
設計器功能增強:
- 當分析節點沒有相互連接時候,要提示錯誤
- 修正Start的錯誤後,重新驗證狀態時:
- 在Task任務中選擇Start輸入的文件,並填寫好輸出文件後:保存時提示,沒有運行的命令:
- 在Task中輸入運行的命令,可以看到:變量提供了語法着色顯示,防止輸錯
- 最終滿足校驗要求後,工作流是這樣的:
最後上一張,完成了的工作流設計器:
您可以下載PPT或加QQ羣:853718264討論