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