国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于Perl語言的高級維恩圖的設(shè)計

2021-12-24 04:30金會會
科技資訊 2021年30期

摘 ?要:由于在科研或者教學(xué)工作中需要美觀化展現(xiàn)不同數(shù)據(jù)集的交集,目前維恩圖在各個學(xué)科領(lǐng)域應(yīng)用廣泛。但受制于目前繪制工具和平臺的限制,在線維恩圖繪制方法軟件提供的繪制維度普遍小于5個,所以科研工作人員迫切地需要一款繪圖方法來表達更高維度的維恩圖來展現(xiàn)自己的結(jié)果。該文利用Perl語言和SVG相結(jié)合,開發(fā)出一套可繪制高緯度維恩圖的方法,僅需要準備好純文本數(shù)據(jù)文件,執(zhí)行程序命令即可得到高質(zhì)量的維恩矢量圖。

關(guān)鍵詞:維恩圖 ?Perl語言 ?SVG ?科研工具 ?Venn Plot

中圖分類號:TP393.092文獻標(biāo)識碼:A 文章編號:1672-3791(2021)10(c)-0000-00

Design of High-Level Venn Diagram Based on Perl Language

JIN Huihui

(Yangzhou Institute of Technology, Yangzhou, Jiangsu Province, 225000 China)

Abstract: Because the intersection of different data sets needs to be aesthetically displayed in scientific research or teaching work, Venn diagrams are currently widely used in various disciplines. However, due to the limitations of the current drawing tools and platforms, the online Venn diagram drawing method software provides generally less than 5 drawing dimensions. Therefore, scientific researchers urgently need a drawing method to express a higher-dimensional Venn diagram to show themselves their results. Using the combination of Perl language and SVG, this paper developed a set of methods that can draw high-latitude Venn diagrams. We just need to prepare a plain text data file and execute commands to get the target high-quality diagram.

Key Words: Venn diagram; Perl language; SVG; Research tools; Venn Plot

Venn圖[1]也叫維恩圖, 即用一條封閉曲線直觀地表示集合及其關(guān)系的圖形。由英國的邏輯學(xué)家韋恩提出,他是第一個想到用這樣的圖來表示事物之間關(guān)系的人。維恩圖一直是會議和演示的主要內(nèi)容,維恩圖提供了一種清晰、有效的方式來直觀地展示數(shù)據(jù)集之間的關(guān)系。在維恩圖中,圓圈代表具有共享屬性的事物組。這些圓圈重疊的區(qū)域代表同樣屬于重疊組的個人。維恩圖中的圓圈可以部分重疊、完全重疊,甚至可以分開,一目了然地看到組之間的關(guān)系。維恩圖有很多用途:解釋關(guān)系、顯示組織系統(tǒng)、說明復(fù)雜的事物和系統(tǒng)。維恩圖可以幫助團隊在頭腦風(fēng)暴或解決問題時分解復(fù)雜的想法。維恩圖的應(yīng)用不勝枚舉,在生物學(xué)領(lǐng)域常用來表示不同分組樣本的結(jié)果重疊情況。

Perl[2]是一種功能豐富且可以穩(wěn)定的跨平臺編程語言,Perl語言的應(yīng)用范圍很廣,運行在超過多種計算機平臺上,適用廣泛,Perl被用于圖形編程、系統(tǒng)管理、網(wǎng)絡(luò)編程、金融、生物以及其他領(lǐng)域。Perl被稱為腳本語言中的瑞士軍刀,由于英文翻譯的首字母原因,簡稱為Perl(Practical Extraction and Report Language),在生物學(xué)方面的應(yīng)用較多,其中核酸和蛋白質(zhì)文本處理能力表現(xiàn)優(yōu)異,該研究結(jié)合Perl的字符處理能力和SVG的表現(xiàn)渲染能力,巧妙地展現(xiàn)了交集數(shù)據(jù)集。

1 ?維恩圖的現(xiàn)狀分析

1.1 ?基于PubMed公共數(shù)據(jù)庫的引用統(tǒng)計

美國國家醫(yī)學(xué)圖書館(The United States National Library of Medicine, NLM),由美國聯(lián)邦政府經(jīng)營管理,是世界上最大的醫(yī)學(xué)圖書館,其前身為成立于1836年的美國公共衛(wèi)生部部長辦公室圖書館。在各個學(xué)科發(fā)展方向具有重要的指導(dǎo)意義。PubMed系統(tǒng)是由美國國家醫(yī)學(xué)圖書館(NLM)的國家生物技術(shù)信息中心(NCBI)開發(fā)研制的一個醫(yī)學(xué)文獻網(wǎng)絡(luò)數(shù)據(jù)庫。維恩圖在PubMed中出現(xiàn)的頻率有逐年上升的趨勢,越來越成為科研人員展現(xiàn)數(shù)據(jù)的一個熱門方法。圖1展示的圖片數(shù)據(jù)來源PubMed系統(tǒng)檢索,通過搜索“Venn Diagram”關(guān)鍵詞匹配下載到最近10年的公共醫(yī)學(xué)論文引用數(shù)據(jù),引用趨勢如圖1所示。

從圖1中可以看出,近10年來,韋恩圖方法[3]的引用頻率逐年提高,其中增幅較大的是2020年度。說明這個展示和統(tǒng)計方法在各個學(xué)科的應(yīng)用越來越多,但是目前市面上可以供使用的工具方法有較大的缺陷和局限性,其中數(shù)據(jù)集表現(xiàn)維度就受到嚴格的控制,普遍是4個維度的表現(xiàn)形式,對于科研人員來說,是個需要急需解決的問題。

1.2 ?維恩圖的主流在線軟件情況

目前網(wǎng)絡(luò)上提供免費在線維恩繪圖軟件眾多[4],表1為常用軟件信息比較。其中以有權(quán)威性的西班牙馬德里大學(xué)國家生物技術(shù)中心提供的在線工具VENNY 2.1版本為例,如圖2所示,目前該網(wǎng)站可以提供的繪圖維度最高為4個維度,對應(yīng)科研人員來說,如果數(shù)據(jù)集超過4個,則展示會受制于在線軟件[5]。

通過圖2為案例,運用VENNY2.1版本工具展示,可以看出在線工具的巨大局限性,其只可以提供4個維度的數(shù)據(jù)交集展示,這對于實際的科研、統(tǒng)計等需求是不足的。

2 ?基于Perl語言開發(fā)程序原理

2.1 程序開發(fā)思路

基于SVG[6]的格式模板,利用Perl語言進行輸入文件讀取并依據(jù)文本文件的個數(shù)和文本文件的單行關(guān)鍵詞進行哈希存儲處理,然后對哈希存儲的數(shù)據(jù)重新進行SVG文件寫入,生成新的SVG格式模板文件,利用常規(guī)的illustrator或者Photoshop既可以打開該文件,同時可以對高質(zhì)量的矢量圖(SVG圖)進行PNG、JPG等格式轉(zhuǎn)換。

2.2 程序開發(fā)代碼

#!/bin/perl

use strict;

use warnings;

use Getopt::Long;

use Pod::Usage;

my ($help);

my $figlabel = "";

GetOptions(

'help'=>\$help,

'figlabel:s'=>\$figlabel,

);

pod2usage 1 if($help or @ARGV < 2 or @ARGV > 7);

my %venn;

my %lab;

my $count = 0;

for my $name(@ARGV){

open FILEINPUT,"$name" or die "Please Check Directory file : $name\n";

my @family = <FILEINPUT>;

close FILEINPUT;

chomp @family;

my %fam;

for(@family){

next if(/^\s*$/);

$fam{$_} = 1;

}

for(keys %fam){

$venn{$_} += 2**$count;

}

$name = `basename $name`;

chomp $name;

$name =~ s/.txt//;

$lab{2**$count} = $name;

$count ++;

}

my %count;

for(keys %venn){

$count{$venn{$_}} ++;

print ($count{$venn{$_}} ++);

print ("\n");

}

open FILE,"/svgDB/venn$count.svg";

while(<FL>){

if(/>(\d+)<\/text>/){

my $num = defined $count{ $1 } ? $count{ $1 } : 0;

s/>(\d+)<\/text>/>$num<\/text>/;

}elsif(/>([A-Z])<\/text>/){

my $flag = 2 ** (ord($1) - ord("A"));

my $lab = defined $lab{$flag} ? $lab{$flag} : "undef";

s/>[A-Z]<\/text>/>$lab<\/text>/;

}else{

s/>figlabel<\/text>/>$figlabel<\/text>/;

}

print;

}

close FILE;

3 ?基于Perl語言的繪制過程及結(jié)果

3.1 程序執(zhí)行

在windows系統(tǒng)或mac系統(tǒng)環(huán)境安裝perl編程語言,進入終端界面調(diào)用perl解釋器運行,執(zhí)行命令如下:

perl venn.pl A_file.txt B_file.txt C_file.txt > A_B_C.svg

3.2 程序執(zhí)行結(jié)果文件匯總

分別模擬了7個數(shù)據(jù)文件,各個文件命名為A.txt、B.txt、C.txt、D.txt、E.txt、F.txt、G.txt,在每個文件里是單行一個關(guān)鍵詞,通常情況下是英文狀態(tài)下的關(guān)鍵詞。文件里面行與行之間允許出現(xiàn)空行。表2是對7個數(shù)據(jù)集分別進行6個組合計算。

分別對6個組合執(zhí)行運算得到對應(yīng)的圖表數(shù)據(jù),并展示不同維度的韋恩圖,具體見圖3,按照環(huán)形圖的個數(shù)依次分類,其中最高7個數(shù)據(jù)集維度見圖4。

圖4中A、B、C、D、E、F、G標(biāo)簽分別對應(yīng)每個數(shù)據(jù)集的名稱,各個交叉區(qū)域單元的數(shù)字是指交集共有部分的統(tǒng)計頻率,按照維恩統(tǒng)計規(guī)律來看,目前呈現(xiàn)表3分布如下。

如圖5所示,隨著維恩圖維度的提供,出現(xiàn)的交集區(qū)域(亞區(qū)域)個數(shù)快速上升,難度也越來越大。通過分析可以發(fā)現(xiàn),設(shè)定維度個數(shù)為N,亞區(qū)域?qū)?yīng)為Mn,則對應(yīng)關(guān)系公式為:Mn=2N-1。

4 結(jié)語

該文通過分析國外研究趨勢和現(xiàn)實發(fā)展需要,通過結(jié)合Perl編程語言和SVG語言的功能,開發(fā)出繪制高緯度的Venn圖流程,使得在該應(yīng)用層面的繪圖可能性得到擴展。在平時的科研工作中,匯報及寫作以及數(shù)據(jù)展示能力得到提升,同時也為指導(dǎo)學(xué)生論文工作提供了更廣泛的科研工具,可應(yīng)用在學(xué)生論文的插入圖表提供工具支撐。同樣,在其他相關(guān)數(shù)據(jù)領(lǐng)域,對于同類型的數(shù)據(jù)繪圖具有較好的平移、適應(yīng)和普適性的應(yīng)用。

參考文獻

[1] JIA ?A Q,XU ?L,WANG ?Y.Venn Diagrams in Bioinformatics[J].Briefings in Bioinformatics,2021,5(22):108.

[2] 張婷婷,龐雪原,晏佳蕓.Perl語言統(tǒng)計核酸GC含量程序開發(fā)[J].科技資訊,2019,17(13):22,24.

[3] 羅紅梅,張永鋒.基于Venn方法與ArgGis的水上交通安全隱患點風(fēng)險等級初步研究[J].科技資訊,2018,16(21):118-121,123.

[4] 馬玉芬. 韋恩圖在高中生物學(xué)教學(xué)中的應(yīng)用研究[D].貴陽:貴州師范大學(xué),2020.

[5] 郭丹丹,邰楊芳.基于韋恩圖的國內(nèi)圖書情報領(lǐng)域智庫研究主題演化分析[J].晉圖學(xué)刊,2021(4):8-15.

[6] 潘博.SVG圖形在Web設(shè)計中的應(yīng)用研究[J].科學(xué)技術(shù)創(chuàng)新,2020(15):88-89.

作者簡介:金會會(1990—),男,碩士,助教,研究方向為生物信息學(xué)。