前文鏈接:
在上文圖形化開放式生信分析系統開發 - 4 生信分析流程的圖形化設計 討論了生信分析pipeline的圖形化,如何用圖形的方式顯示生信pipeline,但是pipeline腳本按照變量的形式保存之後,如何運行,在什麼環境下運行?是本文要解決的問題。
運行方式:本地 VS 遠程
1. 本地模式:
- 優勢:容易實現,運行效率高,不依賴網絡
- 劣勢:限制了軟件的適用範圍,本機性能就決定了分析性能,不易擴展,限於運算量較低的業務。
2. 遠程模式:
- 優勢:便於擴展,部署方便。本程序作爲控制端,可以和分析端部署在一臺機器,也可以通過聯網方式連接。這樣就可以把控制端單獨部署,控制一個服務器集合>從單臺到簡單的集羣
- 劣勢:增加了編程複雜度;需要編程實現與服務器端的交互,並保持長連接,時刻保持通信。分析過程狀態、服務器運行狀態,需要由服務器端推送到用戶端。
綜合考慮,結合軟件設計目標,這裏選擇遠程模式
運行服務器節點:
-
服務器節點信息:
經常手動分析腳本的朋友大家的習慣可能是,ssh遠程登錄Linux服務器,在shell控制檯輸入各種腳本,軟件。這裏首先要解決的就是服務器信息的保存,操作。根據日常習慣歸納實現後,上圖:
- 首先這裏實現了,服務器賬戶信息的管理,賬戶、主機名、端口、密鑰、密碼,這些信息爲了保證安全,需要二次加密,不能將密碼明文保存在數據庫中,一旦泄漏危害巨大
針對分析流程,按照約定定義了兩個變量:
${data}
數據輸入目錄,${result}
輸出目錄考慮到並行運算,這裏設置了該賬戶可以並行運行的任務數量,已經連續運行任務的最小時間間隔。
前文中,針對pipeline裏的變量,每個服務器賬戶對應一組變量,彼此獨立,互相隔離。
針對服務器狀態,提供狀態按鈕來驗證是否符合要求。網絡狀態、變量值是否符合要求
Web終端特殊情況下,可以點擊終端按鈕直接打開shell,手動操作,見下圖:
運行的方式:
之前系統設計時所做的準備:
- 通過圖形化設計之後獲得的pipeline腳本
- 對應於服務器賬戶信息中的變量
- 錄入系統的樣本信息:樣本編號,
${sn}
Run ID${runId}
等等
通過將保存的shell腳本,將腳本變量用以上信息替換爲實際需要運行的腳本,通過遠程連接發送指令在服務器上運行
運行的過程:狀態監控,結果的判斷
- 發送完腳本,服務器端運行狀態需要和控制端保持連接,監控運行狀態,獲取運行輸出。
- 運行完成後服務器端推送信息到控制端,判斷是否符合要求,輸出文件是否存在
- 運行失敗後服務器端推送信息到控制端,顯示錯誤信息,錯誤日誌,便於生信開發人員查找錯誤
- 統計每一個分析步驟的運行時間,便於統計分析
運行的結果:
-
如果需要獲取分析結果文件的,這時候需要將該文件下載至本系統指定目錄中。
-
如果需要將分析結果vcf,csv等格式文件保存於數據庫,按照前文中,pipeline圖形化中設計格式,讀取文件保存於系統數據庫中。
收集標準化的數據,累積數據,爲以後數據挖掘,迴歸分析做好準備
您可以下載PPT或加QQ羣:853718264討論