高效繪圖小工具:Multi-omics Visual


對(duì)于科研人員而言,很好的展現(xiàn)數(shù)據(jù)是工作中的必要技能,圖最為可視化的最主要形式是最為簡(jiǎn)單直接的一種表現(xiàn)方式。但是如何繪制精美的圖片則一直是個(gè)比較繁瑣的事情。誠(chéng)然,市面上已經(jīng)有了許許多多優(yōu)秀的繪圖軟件,比如origin、sigmaplot。這些商業(yè)軟件滿足了大部分人的繪圖需求,成為了許多數(shù)據(jù)分析人員不可或缺的幫手。但是,使用這些繪圖軟件會(huì)面臨兩個(gè)問題:一個(gè)是作為商業(yè)軟件,需要付費(fèi)購(gòu)買(大部分人應(yīng)該都是用的其他途徑),第二,就是這些軟件都有一定的學(xué)習(xí)成本,第三,部分軟件的重現(xiàn)性較為復(fù)雜(需要每次重新調(diào)整配置,完成圖片繪制)。其中軟件的學(xué)習(xí)成本較高是主要是因?yàn)檫@些軟件需要照顧大部分的使用人群,需用使用一種通用的技巧來教會(huì)所有人使用這些軟件。因此,在我做數(shù)據(jù)分析的時(shí)候就想到一個(gè)問題,為什么不開發(fā)一種雖然可能適用于不那么多的人,但是操作簡(jiǎn)單、易于上手、方便重現(xiàn)和批量作圖的圖形軟件呢。因此,基于這個(gè)出發(fā)點(diǎn),基于python豐富多樣的模塊便寫了一個(gè)小工具M(jìn)ulti-omics Visual,在可以定制一些常規(guī)圖片的同時(shí),也可以實(shí)現(xiàn)批量作圖的功能。但是本軟件并不如市面的大部分商業(yè)軟件那樣,提供了豐富的繪圖樣式,本軟件僅僅提高了少量的繪圖樣式。但是,本軟件最大的意義是提供了一個(gè)框架,可以快速將python上流行的繪圖包通過重寫其中的某些功能將其加入到本軟件中,實(shí)現(xiàn)用戶不寫代碼,僅僅通過在GUI界面調(diào)整某些參數(shù),即可快速實(shí)現(xiàn)圖片的繪制和調(diào)整。當(dāng)然,對(duì)于后續(xù)的使用者來說,這種框架所提供的功能是可以擴(kuò)展的,只需要有相應(yīng)的python繪圖包發(fā)布,那么本軟件可以快速將這些工具集成到繪圖選項(xiàng)中,從而幫助用戶快速上手,完成相應(yīng)的可視化工作。
Python的另一個(gè)優(yōu)勢(shì)便是機(jī)器學(xué)習(xí)?,F(xiàn)如今python已經(jīng)成為許多機(jī)器學(xué)習(xí)人員的主要編程語言了??紤]到現(xiàn)如今機(jī)器學(xué)習(xí)也已經(jīng)成為生物數(shù)據(jù)分析的常用手段,所以本軟件基于現(xiàn)在流行的一些機(jī)器學(xué)習(xí)框架,實(shí)現(xiàn)的一些常見的機(jī)器學(xué)習(xí)模型,方便用戶操作與實(shí)踐。只是這部分功能對(duì)大部分用戶而言,目前可以不用考慮。
因?yàn)楸拒浖鞘褂眉僷ython編寫的,打包成二進(jìn)制文件發(fā)布的,所以與一般的exe文件有所不同,需要?jiǎng)?chuàng)建相應(yīng)的運(yùn)行環(huán)境。運(yùn)行本軟件需要首先安裝python(>=3.8),并將其添加到系統(tǒng)路徑。隨后,在cmd上pip安裝指定包既可,其中pip的命令為
pip install pandas PyQt5 numpy matplotlib requests colour scipy seaborn datetime sklearn matplotlib_venn -i https://pypi.tuna.tsinghua.edu.cn/simple
完成上述操作后,即創(chuàng)建好相應(yīng)的運(yùn)行環(huán)境。隨后,在github上下載已經(jīng)編譯好的軟件包,地址為https://github.com/wangjun258/Multi_omics_Visual。如果讀者從github上下載太慢,也可以直接聯(lián)系本公眾號(hào)《生信小院》獲取。而下載好本軟件后,在解壓之后的Multi_omics_Visual文件夾中直接查找Multi_omics_Visual.exe程序,雙擊即可運(yùn)行。如果想要隨時(shí)隨地使用本軟件,建議為Multi_omics_Visual.exe程序創(chuàng)建快捷方式,并放于桌面。而在介紹完軟件開發(fā)的目的之后,接下來,開門見山,介紹一下軟件的基本功能。

首先,從圖1中我們可以看出Multi-omics Visual軟件總共包含五大部分,分別為“Plot_draw”、“Bioinformatic”、“Machine_learning”、 “Data_clean”和“Help”五大部分。?“Plot_draw”中包含一些常見圖片的繪制功能,如條形圖(barplot_chart)、折線圖(line_char)、混合圖(bar_line_chart)、熱圖(heatmap)、PCA圖(PCA_chart)、韋恩圖(Veen)、餅圖(pie_chart)和一些3D圖(heatmap_3D、barplot_3D)等?!?/span>Bioinformatic”目前僅僅實(shí)現(xiàn)了基于SW算法(純python實(shí)現(xiàn),不基于任何模塊)的Blast序列分析,后續(xù)會(huì)逐步添加其他的基于機(jī)器學(xué)習(xí)的生物信信分析功能?!?/span>Machine_learning”則實(shí)現(xiàn)了一些常規(guī)機(jī)器學(xué)習(xí)算法,包括線性回歸(Liner_regression)、樸素貝葉斯(BavieByes)、梯度下降(GradAscent)等算法,方便用戶進(jìn)行實(shí)踐。“Data_clean”中則包含了對(duì)數(shù)據(jù)進(jìn)行整理的一些簡(jiǎn)單方法?!?/span>Help”中則包含了本軟件開發(fā)者的相關(guān)信息。軟件的主界面則是如下圖2所示。

打開上面的軟件界面之后,我們就可以選擇其中的“Plot_draw”功能的heatmap_3D選項(xiàng)。

隨后,彈出下圖4中右下角的界面,包含三個(gè)部分,其中第一部分為“input file”時(shí)輸入文件框,第二部分為“input file batch”是用于批量作圖的選項(xiàng),第三部分為“Image Output”則是用來指定輸出的圖像文件的路徑。本次輸入的文件為demo_heatmap_3D.txt文件,內(nèi)容如左下角所示。

在導(dǎo)入文件之后,我們可以通過圖五右上角的Adjustment para選項(xiàng),彈出右下角的參數(shù)對(duì)話框,再通過點(diǎn)擊①,將參數(shù)文件保存,之后打開參數(shù)文件demo_heatmap_3D_arg.txt文件即③中可實(shí)現(xiàn)在文件中修改數(shù)據(jù)。之后按照④的路徑將參數(shù)文件拖入到⑤的文本框中,點(diǎn)擊⑥從而修改參數(shù)對(duì)話框中部分參數(shù)的選項(xiàng)。當(dāng)然,本軟件也提供直接在參數(shù)對(duì)話框中修改相應(yīng)的參數(shù)。完成上述操作之后,便可以直接點(diǎn)擊⑦,打開繪圖對(duì)話框。

如下圖6所示,我們?cè)?/span>Figure1中即可實(shí)現(xiàn)三維圖形的繪制,并可以通過拖動(dòng)鼠標(biāo)完成三維圖形的旋轉(zhuǎn)。之后通過這個(gè)對(duì)話框中的保存選項(xiàng)或者在“Image Output”中指定保存文件路徑,即可實(shí)現(xiàn)文件的保存。

以上就是簡(jiǎn)單介紹了一下如何使用本軟件繪制3D圖形。只是這一功能只是本軟件眾多功能中的冰山一角,還有許多功能將在接下來的推文中繼續(xù)演示。歡迎用戶提出建議,本人也會(huì)進(jìn)一步維護(hù)這個(gè)項(xiàng)目(項(xiàng)目地址為https://github.com/wangjun258/Multi_omics_Visual)。雖然可以通過兼容更多的模塊實(shí)現(xiàn)繪圖樣式的多樣化,但是這些內(nèi)容大部分都是基于python社區(qū)成員所提供的模塊,本軟件更多的是提供框架用以兼容這些模塊。最后,借用一句話名言總結(jié)這個(gè)小工具吧:只有站在巨人的肩膀上,才能看得更高更遠(yuǎn)。


