「TBtools Plugin」使用openBLAS或Apple''s BLAS是你的R矩陣運(yùn)算速度起飛

MacOS 12.0以后的系統(tǒng)更改了blas的位置护锤,具體去哪了現(xiàn)在不清楚官地,目前的辦法是brew安裝openblas,然后把openblas軟連接過去

問題與思考

在寫OneStepWGCNA插件的時(shí)候我就遇到過一個(gè)奇怪的現(xiàn)象烙懦,在Rstudio下計(jì)算TOM矩陣那一步很快驱入,8000個(gè)基因基本是幾十秒算完,但是一旦打包成插件氯析,或者用Rscript跑腳本的時(shí)候亏较,那一步會(huì)巨慢無比,8000個(gè)要等好幾分鐘掩缓。
當(dāng)時(shí)也不知道怎么回事雪情,就先放著,最近正在做WGCNA拾因,想用插件跑跑旺罢,發(fā)現(xiàn)實(shí)在是太慢了!>罴恰1獯铩!然后就開始研究怎么回事蠢熄,知道我看到terminal下卡主的步驟:

    TOM calculation: adjacency..
    ..will not use multithreading.
     Fraction of slow calculations: 0.000000
    ..connectivity..
    ..matrix multiplication (system BLAS)..

BLAS 之前在WGCNA-FAQ中好像看到過這么個(gè)名詞跪解,于是就回去查看了一下文件。果然签孔,當(dāng)時(shí)沒搞懂的叉讥,現(xiàn)在一下明朗了:

1 How can I make network construction execute faster?
When constructing a network from a data set of a typical genomic size (i.e., between 10 000 and 30 000 genes or other variables), the most time consuming step is the calculation of Topological Overlap Matrix which involves multiplying matrices with tens of thousands of rows and columns. With a standard R distribution, this may take multiple hours even on a modern workstation since matrix multiplication in standard R does not take advantage of multi-threading (parallel execution). It is possible to speed up this process by a factor of 10-100 by installing a speed-optimized Basic Linear Algebra Subprograms (BLAS) library and compiling R against it. The process of compiling R against an enhanced BLAS library is described in the R installation and adminitration manual. Compiling R on Linux and Unix flavors is usually relatively simple and straightforward. On Mac OSX and (more so) on Windows it requires installing additional tools and packages. Although it is helpful to have administrator privileges to compile and install R, it is usually not necessary. See the R installation and adminitration manual for full details.

作者大致意思是如果你想提高R的矩陣運(yùn)算能力,需要使用強(qiáng)化版的BLAS饥追,R默認(rèn)調(diào)用的是基礎(chǔ)班的BLAS图仓,強(qiáng)化版的要比基礎(chǔ)版的快10-100倍。但是這玩意不好裝但绕,需要從源碼編譯救崔,linux下簡(jiǎn)單,但是win和mac下就比較蛋疼了捏顺。

But六孵! 我發(fā)現(xiàn)在win和mac下其實(shí)也沒有那么難,雖然我也不懂什么BLAS幅骄,但是作為一個(gè)調(diào)包俠劫窒,最基礎(chǔ)也是最重要的一個(gè)技能就是,善用各種搜索拆座。不斷的google下終于發(fā)下了mac和win下的解決方案主巍,不需要編譯冠息,mac只需要敲兩行命令,win復(fù)制幾個(gè)文件就搞定了.

先發(fā)參考鏈接:
Faster matrix math in R on macOS
Windows使用OpenBLAS加速R語言計(jì)算速度

方法

MacOS big sur 11.2.1測(cè)試成功

其實(shí)就是蘋果系統(tǒng)下煤禽,調(diào)用蘋果自己的BLAS铐达,具體:Apple’s implementation of the Basic Linear Algebra Subprograms (BLAS). 參考上面大胡子老哥的操作岖赋,就是把蘋果自己的BLAS文庫替換掉R默認(rèn)的BLAS

## TBtools的R安裝在Rserver下檬果,所以TBtoolsR的lib位置如下,先進(jìn)入這個(gè)路徑
cd ~/.TBtools/.Plugin/Rserver/bin/macR/lib 
## 將系統(tǒng)Apple的BLAS軟連接過來
ln -sf /System/Library/Frameworks/Accelerate.framework/Frameworks/vecLib.framework/Versions/Current/libBLAS.dylib libRblas.dylib

如果這個(gè)操作過后發(fā)現(xiàn)你的Rserver掛了唐断,用下面的命令恢復(fù):

ln -sf libRblas.0.dylib libRblas.dylib

雖然你測(cè)試sessionInfo()發(fā)現(xiàn)沒有和帖子里說的一樣出現(xiàn)下面提示选脊,但是確實(shí)是快了!反正我的Nuc8是直接風(fēng)扇起飛了....感覺至少快了30倍脸甘,當(dāng)然隨著基因數(shù)目的增多恳啥,這個(gè)倍數(shù)也會(huì)翻倍....

BLAS:   /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBLAS.dylib

Win10下測(cè)試成功

win10下用的是openBLAS,具體請(qǐng)看Github-openBLAS

原貼實(shí)在豆瓣看到的:讓R在windows下開足馬力進(jìn)行計(jì)算 后來CSDN那個(gè)老哥都給下載整理好了丹诀,直接拿來用钝的,剛開始擔(dān)心版本問題,后來看來是想多了铆遭,直接把帖子中作者整理好的網(wǎng)盤里的文件替換掉:在操作之前先把x64文件夾下的文件備份一下

## 按順序打開:
我的電腦 -> c盤 -> 用戶 -> 你的用戶名對(duì)應(yīng)的文件夾 -> .TBtools -> .Plugin -> Rserver -> bin -> winR -> bin -> x64(32的對(duì)應(yīng)打開32) -> 粘貼

然后就搞定了硝桩,再試試OneStepWGCNA吧,速度嗖嗖的枚荣!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末碗脊,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子橄妆,更是在濱河造成了極大的恐慌衙伶,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,682評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件害碾,死亡現(xiàn)場(chǎng)離奇詭異矢劲,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)慌随,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,277評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門芬沉,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人儒陨,你說我怎么就攤上這事花嘶。” “怎么了蹦漠?”我有些...
    開封第一講書人閱讀 165,083評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵椭员,是天一觀的道長。 經(jīng)常有香客問我笛园,道長隘击,這世上最難降的妖魔是什么侍芝? 我笑而不...
    開封第一講書人閱讀 58,763評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮埋同,結(jié)果婚禮上州叠,老公的妹妹穿的比我還像新娘。我一直安慰自己凶赁,他們只是感情好咧栗,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,785評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著虱肄,像睡著了一般致板。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上咏窿,一...
    開封第一講書人閱讀 51,624評(píng)論 1 305
  • 那天斟或,我揣著相機(jī)與錄音,去河邊找鬼集嵌。 笑死萝挤,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的根欧。 我是一名探鬼主播怜珍,決...
    沈念sama閱讀 40,358評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼咽块!你這毒婦竟也來了绘面?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,261評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤侈沪,失蹤者是張志新(化名)和其女友劉穎揭璃,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體亭罪,經(jīng)...
    沈念sama閱讀 45,722評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡瘦馍,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,900評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了应役。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片情组。...
    茶點(diǎn)故事閱讀 40,030評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖箩祥,靈堂內(nèi)的尸體忽然破棺而出院崇,到底是詐尸還是另有隱情,我是刑警寧澤袍祖,帶...
    沈念sama閱讀 35,737評(píng)論 5 346
  • 正文 年R本政府宣布底瓣,位于F島的核電站,受9級(jí)特大地震影響蕉陋,放射性物質(zhì)發(fā)生泄漏捐凭。R本人自食惡果不足惜拨扶,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,360評(píng)論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望茁肠。 院中可真熱鬧患民,春花似錦、人聲如沸垦梆。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,941評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽奶赔。三九已至惋嚎,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間站刑,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,057評(píng)論 1 270
  • 我被黑心中介騙來泰國打工鼻百, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留绞旅,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,237評(píng)論 3 371
  • 正文 我出身青樓温艇,卻偏偏與公主長得像因悲,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子勺爱,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,976評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容