PBS(Portable Batch System)系統效調細節筆記:使用叢集係統來做百萬級抗原變異點的預測

之前有測試幾種加速運算的方法,用python裡的線程搭配外掛程式來躲避GIL的效能限制等,但不同種類的架構能應付的問題(高I/O, 高運算…),這邊嘗試使用手邊另一個叢集系統來做計算,利用PBS中分發任務的能力來調用底下的電腦群們來做運算,過程也是一堆的大坑,主要的框架是用shell script寫成的,因為手邊這個叢集電腦python是舊版的,然後還得確定下面的電腦們每個環境都要乾淨,所以就先試者用最簡單的方式來加速計算,最後效調的結果可以在一周內分析完3425328個蛋白序列,雖然還是不夠快。(不確定是否是最佳做法,可能偏“土炮”)

整個過程有幾個重點:
1. 使用shell指令來處理大檔案的技巧
2. PBS系統的理解

第一部分在shell script的撰寫上,相對於高階語言如python,就少掉很多如線城池、共享變數等等用來暫時存放運算資料的方法,這時候就會需要比較複雜的代碼來實現想要的邏輯。技術上可以先把script用最小單位來撰寫,接者在測試成功後,慢慢合成一個大的,因為當牽涉越多層的呼叫使用,需多未知的東西狀態出現,尤其是想要用&的方式來加速(因為目前這叢集系統無法安裝linux parell指令)。

這邊可以堆間使用awk和sed的功能來做不雜一點的計算和資料搬移(他們很輕且通常很快),尤其搭配awk裡面的條件語法和函數,計算速度可以因此稍微提生一點,且能用“一行”來解決在高階語法可能要很多行代碼才搞定的字串處理問題。

第二部分關於PBS語法和功能的理解,雖然每個叢集系統多少會不同(就跟每個linux管理員管理的想法不同一樣,會對自己的系統加入不同的觀念),但指令的說明是差不多的。

三大關於PBS的指令分別為:pbsnodes, qstat, qsub

pbsnodes: 用來看目前叢集系統中,各個節點的資源和任務條波狀況

screenshot.pngqstat:用來看目前任務的運行狀況和單個任務所使用的資源

screenshot.png

qsub:提交任務到PBS系統上

screenshot.png

 

 

還有意外發現使用parent-child的shell process中,當程式的架構互叫的方式可能會造成無法預期的意外,比如簡單的file descriptor的指定,在parent和child process中分開執行,且一對多的時候運行的邏輯很怪,這部份可能要更深入底層才會理解這部分的坑。

R空間視覺化的學習資源(GIS or Spatial Visualization)

R在空間視覺化上在最近有很多的提升,尤其是整合如Google map api, leaflet等含有多種美麗地圖風格的package,這邊整理一下相關的學習資源。

 

R語言官方針對空間資料的文檔

CRAN Spatial Data Task View
裡面也有各種處理圖資的package可以使用

書
Roger Bivand. Applied Spatial Data Analysis with R. (2008). Springer
Chris Brunsdon, Lex Comber. An Introduction to R for Spatial Analysis and Mapping. (2015). SAGE

文章
R Spatial Cheatsheet
Zev Ross. Manipulating and mapping US Census data in R using the acs, tigris and leaflet packages.

探索資料庫應用(五)Gene Transcription Regulation Database(GTRD):轉錄因子調控資料庫

在今年2017的NAR資料庫特輯中,GTRD資料庫整理人類和老鼠ChiP-seq資料並且彙整相關轉錄因子調控,使用四種負責處理ChiP-seq的peak caller程式,分別是MACS, SISSRs, GEM, PICS,並且將這些程式分析出的peak做clustering後,去掉重複的資訊。screenshot.png

目前使用起來不是很順手,每個要查看的轉錄因子都要一個個調整來看,有點不方便,似乎是使用biouml作為架構的,所以整體操作上頗有侷限性,當要查詢多個轉錄因子時會很麻煩,不過算是一個可以當作備用的轉錄因子調控資料庫,且是相對較新的,裡面用來估計peak左右可能影響的基因數量主要跟據來自於HOCOMOCO資料庫的資訊,這資料庫是同一個研究團隊在2013年的發表。screenshot.png

 

他本身可以直接下載它們整理好的interval檔案,資料欄位整理的很乾淨,並且提供那四種peak caller程式分析的資料可以挑選,或是最終其整合的版本。

screenshot.png