最近我在B站的視頻頁(yè)面下發(fā)現(xiàn)了這樣的一條評(píng)論,面對(duì)質(zhì)譜數(shù)據(jù)分析領(lǐng)域內(nèi)的初學(xué)者的求教,其實(shí)自己也是非常的誠(chéng)惶誠(chéng)恐的。因?yàn)樵谝曨l中所使用的腳本語(yǔ)言是自己開(kāi)發(fā)的一門(mén)新語(yǔ)言,所以可能給@徐冬冬阿哈哈哈哈同學(xué)造成了一部分的困擾哈哈。首先先對(duì)這位粉絲說(shuō)一聲抱歉哈。抱歉抱歉抱歉抱歉,,,
針對(duì)上述的提問(wèn),我的回答大概是有以下的幾點(diǎn):
(資料圖)
在B站的教程視頻《【BioNovoGene Mzkit教程】代謝組學(xué)原始數(shù)據(jù)處理基礎(chǔ)》中,所提到的腳本語(yǔ)言其實(shí)并不是真正的R語(yǔ)言,而是基于R語(yǔ)言的向量化編程特性而仿照著開(kāi)發(fā)出來(lái)的一門(mén)國(guó)產(chǎn)編程語(yǔ)言R#。所以有一些視頻中所提到的軟件包在真正的R語(yǔ)言環(huán)境之中是無(wú)法找到的。
所以netCDF.utils程序包模塊其實(shí)是R#編程語(yǔ)言的環(huán)境庫(kù)之中自帶的一個(gè)用于讀寫(xiě)CDF文件的模塊,在真正的R語(yǔ)言環(huán)境之中是找不到的哈哈
因?yàn)镽#語(yǔ)言的開(kāi)發(fā)結(jié)合了多種語(yǔ)言的特性,所以看起來(lái)可能會(huì)有一些四不像。但是腳本中所展示的imports之類(lèi)的語(yǔ)句,其實(shí)并不是來(lái)自于python,而是來(lái)自于javascript語(yǔ)言。代碼中using相關(guān)的代碼語(yǔ)法其實(shí)是來(lái)自于C#語(yǔ)言或者VB.NET語(yǔ)言之中的using。
那說(shuō)完了上面的針對(duì)評(píng)論回復(fù)的幾點(diǎn),下面我們開(kāi)始進(jìn)行一些拓展性的知識(shí)講解吧:關(guān)于如何使用上R#語(yǔ)言進(jìn)行質(zhì)譜數(shù)據(jù)分析。
首先,先向大伙簡(jiǎn)單介紹一下MZKit桌面工作站軟件的一些背景信息。在視頻中所介紹的MZKit軟件,其實(shí)是帕諾米克從2017年啟動(dòng)的一個(gè)質(zhì)譜原始數(shù)據(jù)開(kāi)源項(xiàng)目,相關(guān)的項(xiàng)目源代碼大家可以從Github上下載得到:https://github.com/xieguigang/mzkit
目前呢,經(jīng)過(guò)多年的發(fā)展,MZKit開(kāi)源項(xiàng)目目前在質(zhì)譜原始數(shù)據(jù)處理相關(guān)領(lǐng)域內(nèi)的應(yīng)用其實(shí)已經(jīng)比較廣泛了:就帕諾米克而言,MZKit軟件以及R#腳本編程語(yǔ)言已經(jīng)非常廣泛的應(yīng)用于各種商業(yè)項(xiàng)目中的質(zhì)譜原始數(shù)據(jù)處理的自動(dòng)化流程搭建之中。那現(xiàn)在廢話不多說(shuō),回到我們的正題:我們?cè)撊绾瓮ㄟ^(guò)R#編程語(yǔ)言腳本調(diào)用MZKit進(jìn)行質(zhì)譜數(shù)據(jù)的一些處理操作呢?假若各位同學(xué)已經(jīng)安裝有MZKit桌面工作站軟件的話,實(shí)際上你已經(jīng)獲取得到了一個(gè)R#編程語(yǔ)言的運(yùn)行環(huán)境:因?yàn)镸ZKit的一些數(shù)據(jù)分析功能和數(shù)據(jù)可視化功能是基于R#腳本語(yǔ)言編寫(xiě)的,R#語(yǔ)言編程環(huán)境已經(jīng)集成在了MZKit桌面工作站軟件之中了。
既然R#編程語(yǔ)言環(huán)境已經(jīng)集成在了視頻中所提到的MZKit桌面工作站軟件之中,那么我們?cè)趺创蜷_(kāi)它呢?其實(shí)這個(gè)非常的簡(jiǎn)單,我們只需要按照下面的操作步驟就可以進(jìn)入R#編程環(huán)境之中:
首先,通過(guò)軟件左上角的【File】菜單入口打開(kāi)軟件的主菜單;接著可以在主菜單之中看見(jiàn)有【MZKit Data Toolkit】菜單欄;就是在這個(gè)菜單欄之中,展開(kāi)后可以發(fā)現(xiàn)有一個(gè)命令行圖標(biāo)的東西【Developer CommandLine Tools】;對(duì),就是它了,點(diǎn)擊這個(gè)東西我們就可以進(jìn)入到R#編程語(yǔ)言環(huán)境之中了。假設(shè)點(diǎn)擊這個(gè)菜單之后,跳出來(lái)了下面所示的這樣的一個(gè)命令行界面,那么就說(shuō)明你已經(jīng)成功打算開(kāi)了質(zhì)譜數(shù)據(jù)分析的開(kāi)發(fā)工具環(huán)境:
那現(xiàn)在我們來(lái)編寫(xiě)一個(gè)進(jìn)行CDF數(shù)據(jù)可視化的腳本來(lái)初步講解MZKit軟件自帶的質(zhì)譜數(shù)據(jù)處理函數(shù)庫(kù)的使用吧。
像傳統(tǒng)的R語(yǔ)言編程一樣,一般編程語(yǔ)言環(huán)境之中是不包含有針對(duì)具體的實(shí)際問(wèn)題解決工具的。所以在進(jìn)行相關(guān)的實(shí)際問(wèn)題處理之前,我們需要導(dǎo)入面向具體實(shí)際問(wèn)題進(jìn)行數(shù)據(jù)處理的相關(guān)的軟件包。在這里我們先進(jìn)行接下來(lái)所需要解決的具體問(wèn)題的描述:通過(guò)讀取CDF文件之中的色譜圖數(shù)據(jù),然后分別通過(guò)ggplot軟件包或者mzkit軟件包繪制出來(lái)。
那根據(jù)上面的問(wèn)題描述,實(shí)際上我們就可以分解出三個(gè)腳本操作相關(guān)的模塊:CDF文件數(shù)據(jù)讀取模塊,ggplot繪圖模塊或者mzkit質(zhì)譜數(shù)據(jù)可視化模塊。那么首先,我們向腳本執(zhí)行環(huán)境之中導(dǎo)入CDF文件數(shù)據(jù)讀取模塊netCDF.utils進(jìn)行數(shù)據(jù)讀取操作:
CDF文件數(shù)據(jù)讀取
具體的來(lái)講,上面的語(yǔ)句其實(shí)就是從base.dll這個(gè)程序模塊文件之中導(dǎo)入了CDF文件讀取相關(guān)的函數(shù)內(nèi)容,這樣子我們就可以在R#腳本之中打開(kāi)并且讀取CDF文件之中的數(shù)據(jù)啦。接下來(lái)我們就可以通過(guò)下面所列舉的幾個(gè)函數(shù)來(lái)從我們的目標(biāo)CDF文件之中讀取數(shù)據(jù)了:
open.netCDF: 按照一個(gè)所設(shè)定的文件路徑,打開(kāi)CDF文件流
var: 從CDF文件流之中獲取得到指定名稱(chēng)的變量信息
getValue: 基于特定的變量信息讀取CDF文件之中所存儲(chǔ)的向量數(shù)據(jù)
對(duì)于氣質(zhì)色譜數(shù)據(jù)分析而言,CDF文件是一種比較通用的標(biāo)準(zhǔn)格式,CDF文件里面主要是存儲(chǔ)很多個(gè)向量數(shù)據(jù),而氣質(zhì)色譜的總離子流相關(guān)的向量變量信息在CDF文件中分別為:
scan_acquisition_time 向量即為總離子流圖的保留時(shí)間向量信息
total_intensity 顧名思義就是總離子流圖的每一個(gè)保留時(shí)間點(diǎn)上所對(duì)應(yīng)的總離子信號(hào)響應(yīng)強(qiáng)度信息
那,現(xiàn)在了解到了上面的主要相關(guān)信息之后,我們就可以寫(xiě)出如下腳本進(jìn)行數(shù)據(jù)的讀取了:
現(xiàn)在保存一下我們的腳本文件,在命令行窗口中輸入R#;接著呢,復(fù)制文件路徑,然后粘貼我們的文件路徑在命令行輸出窗口中,例如像下面這樣子:
最起始的R#就是代表我們所使用的R#腳本的解釋器程序,后面的路徑就是我們上面所保存的R腳本了。現(xiàn)在在命令行上按下回車(chē)執(zhí)行我們的腳本,經(jīng)過(guò)一會(huì)兒之后,在我們的命令行窗口上應(yīng)該會(huì)出現(xiàn)和下圖類(lèi)似的dataframe打印結(jié)果,出現(xiàn)這個(gè)就說(shuō)明我們通過(guò)腳本從CDF文件之中讀取總離子流色譜圖相關(guān)的向量數(shù)據(jù)成功了!
ggplot繪制總離子流色譜圖
現(xiàn)在,我們已經(jīng)擁有了繪圖相關(guān)的數(shù)據(jù),那現(xiàn)在我們可以做繪圖操作了。首先我們祭出R語(yǔ)言的繪圖利器,首先展示一下在R#編程語(yǔ)言環(huán)境之中通過(guò)ggplot進(jìn)行總離子流色譜圖的繪制:
通過(guò)執(zhí)行上面的一段ggplot的繪圖腳本代碼,我們得到了如下所示的TIC圖數(shù)據(jù)可視化輸出結(jié)果:
MZKit程序包繪制總離子流色譜圖
上面我們展示的是基于ggplot程序包按照一般的數(shù)據(jù)繪制流程做的一個(gè)數(shù)據(jù)可視化,那現(xiàn)在假若我們想要基于MZKit程序包進(jìn)行上面所展示的類(lèi)似的TIC色譜圖的繪制操作呢?當(dāng)然也是沒(méi)問(wèn)題的了,因?yàn)镸ZKit軟件包就是專(zhuān)門(mén)進(jìn)行質(zhì)譜數(shù)據(jù)處理操作的工作,繪制這種基礎(chǔ)原始數(shù)據(jù)圖當(dāng)然不在話下了,首先來(lái)看繪圖代碼:
從上面的繪圖代碼可以看見(jiàn),相關(guān)的繪圖操作和ggplot相比較,自定義方面的內(nèi)容(例如坐標(biāo)軸,標(biāo)題之類(lèi)的信息)會(huì)較少一些,但是相關(guān)的繪圖操作卻簡(jiǎn)化了一些:我們只需要通過(guò)chromatogram對(duì)象相關(guān)的操作函數(shù),將讀取出來(lái)的原始數(shù)據(jù)轉(zhuǎn)換為chromatogram對(duì)象,接下來(lái)就可以直接通過(guò)plot函數(shù)繪制出來(lái)了!除了操作簡(jiǎn)單這個(gè)特點(diǎn),默認(rèn)輸出的圖形樣式也要漂亮了許多。
下面截圖的是在這篇文章中所展示的基礎(chǔ)數(shù)據(jù)作圖功能的全部代碼了:
上面的所有代碼都是基于MZKit桌面工作站軟件最新發(fā)布的版本所完成的,如果各位同學(xué)需要更新或者安裝最新版本的MZKit桌面工作站軟件,可以訪問(wèn)BioDeep網(wǎng)站進(jìn)行下載:http://www.biodeep.cn/downloads?lang=zh-CN
希望這篇評(píng)論回復(fù)文章可以解開(kāi)粉絲的一部分疑惑哈


