圖形化開放式生信分析系統開發 - 5 生信分析流程服務器端運行

前文鏈接:

圖形化開放式生信分析系統開發 - 1 需求分析及技術實現

圖形化開放式生信分析系統開發 - 2 樣本信息處理

圖形化開放式生信分析系統開發 - 3 生信分析流程的進化

圖形化開放式生信分析系統開發 - 4 生信分析流程的圖形化設計

在上文圖形化開放式生信分析系統開發 - 4 生信分析流程的圖形化設計 討論了生信分析pipeline的圖形化,如何用圖形的方式顯示生信pipeline,但是pipeline腳本按照變量的形式保存之後,如何運行,在什麼環境下運行?是本文要解決的問題。

運行方式:本地 VS 遠程

1. 本地模式:

  • 優勢:容易實現,運行效率高,不依賴網絡
  • 劣勢:限制了軟件的適用範圍,本機性能就決定了分析性能,不易擴展,限於運算量較低的業務。

2. 遠程模式:

  • 優勢:便於擴展,部署方便。本程序作爲控制端,可以和分析端部署在一臺機器,也可以通過聯網方式連接。這樣就可以把控制端單獨部署,控制一個服務器集合>從單臺到簡單的集羣
  • 劣勢:增加了編程複雜度;需要編程實現與服務器端的交互,並保持長連接,時刻保持通信。分析過程狀態、服務器運行狀態,需要由服務器端推送到用戶端。

綜合考慮,結合軟件設計目標,這裏選擇遠程模式

運行服務器節點:

  1. 服務器節點信息:

    經常手動分析腳本的朋友大家的習慣可能是,ssh遠程登錄Linux服務器,在shell控制檯輸入各種腳本,軟件。這裏首先要解決的就是服務器信息的保存,操作。根據日常習慣歸納實現後,上圖:

    每個服務器賬戶的信息,目錄、並行的任務數、運行延遲,以及每個服務器對應的一組變量

  1. 首先這裏實現了,服務器賬戶信息的管理,賬戶、主機名、端口、密鑰、密碼,這些信息爲了保證安全,需要二次加密,不能將密碼明文保存在數據庫中,一旦泄漏危害巨大

在這裏插入圖片描述

  1. 針對分析流程,按照約定定義了兩個變量:${data}數據輸入目錄,${result}輸出目錄

  2. 考慮到並行運算,這裏設置了該賬戶可以並行運行的任務數量,已經連續運行任務的最小時間間隔。

  3. 前文中,針對pipeline裏的變量,每個服務器賬戶對應一組變量,彼此獨立,互相隔離。

  4. 針對服務器狀態,提供狀態按鈕來驗證是否符合要求。網絡狀態、變量值是否符合要求

  5. Web終端特殊情況下,可以點擊終端按鈕直接打開shell,手動操作,見下圖:

運行的方式:

之前系統設計時所做的準備:

  1. 通過圖形化設計之後獲得的pipeline腳本
  2. 對應於服務器賬戶信息中的變量
  3. 錄入系統的樣本信息:樣本編號,${sn}Run ID ${runId}等等

通過將保存的shell腳本,將腳本變量用以上信息替換爲實際需要運行的腳本,通過遠程連接發送指令在服務器上運行

運行的過程:狀態監控,結果的判斷

  1. 發送完腳本,服務器端運行狀態需要和控制端保持連接,監控運行狀態,獲取運行輸出。
  2. 運行完成後服務器端推送信息到控制端,判斷是否符合要求,輸出文件是否存在
  3. 運行失敗後服務器端推送信息到控制端,顯示錯誤信息,錯誤日誌,便於生信開發人員查找錯誤
  4. 統計每一個分析步驟的運行時間,便於統計分析

運行的結果:

  1. 如果需要獲取分析結果文件的,這時候需要將該文件下載至本系統指定目錄中。

  2. 如果需要將分析結果vcf,csv等格式文件保存於數據庫,按照前文中,pipeline圖形化中設計格式,讀取文件保存於系統數據庫中。

    收集標準化的數據,累積數據,爲以後數據挖掘,迴歸分析做好準備

您可以下載PPT或加QQ羣:853718264討論

發佈了10 篇原創文章 · 獲贊 2 · 訪問量 2329
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章