999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Perl語言的高級維恩圖的設計

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

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

關鍵詞:維恩圖 ?Perl語言 ?SVG ?科研工具 ?Venn Plot

中圖分類號:TP393.092文獻標識碼: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]也叫維恩圖, 即用一條封閉曲線直觀地表示集合及其關系的圖形。由英國的邏輯學家韋恩提出,他是第一個想到用這樣的圖來表示事物之間關系的人。維恩圖一直是會議和演示的主要內容,維恩圖提供了一種清晰、有效的方式來直觀地展示數據集之間的關系。在維恩圖中,圓圈代表具有共享屬性的事物組。這些圓圈重疊的區域代表同樣屬于重疊組的個人。維恩圖中的圓圈可以部分重疊、完全重疊,甚至可以分開,一目了然地看到組之間的關系。維恩圖有很多用途:解釋關系、顯示組織系統、說明復雜的事物和系統。維恩圖可以幫助團隊在頭腦風暴或解決問題時分解復雜的想法。維恩圖的應用不勝枚舉,在生物學領域常用來表示不同分組樣本的結果重疊情況。

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

1 ?維恩圖的現狀分析

1.1 ?基于PubMed公共數據庫的引用統計

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

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

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

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

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

2 ?基于Perl語言開發程序原理

2.1 程序開發思路

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

2.2 程序開發代碼

#!/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語言的繪制過程及結果

3.1 程序執行

在windows系統或mac系統環境安裝perl編程語言,進入終端界面調用perl解釋器運行,執行命令如下:

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

3.2 程序執行結果文件匯總

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

分別對6個組合執行運算得到對應的圖表數據,并展示不同維度的韋恩圖,具體見圖3,按照環形圖的個數依次分類,其中最高7個數據集維度見圖4。

圖4中A、B、C、D、E、F、G標簽分別對應每個數據集的名稱,各個交叉區域單元的數字是指交集共有部分的統計頻率,按照維恩統計規律來看,目前呈現表3分布如下。

如圖5所示,隨著維恩圖維度的提供,出現的交集區域(亞區域)個數快速上升,難度也越來越大。通過分析可以發現,設定維度個數為N,亞區域對應為Mn,則對應關系公式為:Mn=2N-1。

4 結語

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

參考文獻

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

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

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

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

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

[6] 潘博.SVG圖形在Web設計中的應用研究[J].科學技術創新,2020(15):88-89.

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

主站蜘蛛池模板: 日韩在线观看网站| 99久久精品国产自免费| 欧美国产成人在线| 国产精品福利社| 国产精品亚洲天堂| 日本不卡在线播放| 国产91精品调教在线播放| 国产欧美专区在线观看| 狠狠色狠狠色综合久久第一次| 久久精品电影| 亚洲男人的天堂网| 免费xxxxx在线观看网站| 国内精品久久九九国产精品| 国产一区二区三区免费| 国产一区二区三区精品欧美日韩| 丝袜国产一区| 国产成人福利在线| 亚洲成人在线免费观看| 精品福利国产| 国产欧美日韩资源在线观看| 91国内在线视频| 免费无码AV片在线观看中文| 亚洲国产日韩一区| 久久免费精品琪琪| 美女被操黄色视频网站| 欧美色视频日本| 国产超碰一区二区三区| 国产情侣一区二区三区| 欧美一级视频免费| 亚洲天堂视频在线观看免费| 国产精品成人AⅤ在线一二三四| 欧美一级高清片欧美国产欧美| 亚洲手机在线| 99在线视频免费观看| 亚洲成在人线av品善网好看| 亚洲视频免| 亚洲精品午夜天堂网页| 欧美国产三级| 亚洲精品图区| 亚洲人成人无码www| 中文字幕 91| 午夜精品区| 亚洲男人的天堂久久香蕉| 国产手机在线观看| 日韩福利视频导航| 四虎永久免费在线| 色亚洲成人| 特黄日韩免费一区二区三区| 欧美在线网| 欧美午夜理伦三级在线观看| 国产乱人免费视频| аⅴ资源中文在线天堂| 国产视频资源在线观看| 高清不卡一区二区三区香蕉| 丁香五月亚洲综合在线| 片在线无码观看| 国产香蕉一区二区在线网站| 久久频这里精品99香蕉久网址| 麻豆精品久久久久久久99蜜桃| 亚洲精品无码av中文字幕| 国产H片无码不卡在线视频| 免费xxxxx在线观看网站| 日本手机在线视频| 在线免费a视频| 久久一级电影| yjizz国产在线视频网| 国产成人夜色91| 伊人国产无码高清视频| 国产专区综合另类日韩一区 | 免费 国产 无码久久久| 呦系列视频一区二区三区| 色老头综合网| 久久久久人妻一区精品色奶水| 国产精选小视频在线观看| 日本福利视频网站| 亚洲经典在线中文字幕| www.99精品视频在线播放| 成人国产一区二区三区| 国产区免费| 91福利一区二区三区| 日本91视频| 国产精品亚洲精品爽爽|