亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

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

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

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

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

        中圖分類號:TP393.092文獻(xiàn)標(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)。維恩圖可以幫助團(tuán)隊(duì)在頭腦風(fēng)暴或解決問題時分解復(fù)雜的想法。維恩圖的應(yīng)用不勝枚舉,在生物學(xué)領(lǐng)域常用來表示不同分組樣本的結(jié)果重疊情況。

        Perl[2]是一種功能豐富且可以穩(wěn)定的跨平臺編程語言,Perl語言的應(yīng)用范圍很廣,運(yùn)行在超過多種計(jì)算機(jī)平臺上,適用廣泛,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)計(jì)

        美國國家醫(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é)文獻(xiàn)網(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)計(jì)方法在各個學(xué)科的應(yīng)用越來越多,但是目前市面上可以供使用的工具方法有較大的缺陷和局限性,其中數(shù)據(jù)集表現(xiàn)維度就受到嚴(yán)格的控制,普遍是4個維度的表現(xiàn)形式,對于科研人員來說,是個需要急需解決的問題。

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

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

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

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

        2.1 程序開發(fā)思路

        基于SVG[6]的格式模板,利用Perl語言進(jìn)行輸入文件讀取并依據(jù)文本文件的個數(shù)和文本文件的單行關(guān)鍵詞進(jìn)行哈希存儲處理,然后對哈希存儲的數(shù)據(jù)重新進(jìn)行SVG文件寫入,生成新的SVG格式模板文件,利用常規(guī)的illustrator或者Photoshop既可以打開該文件,同時可以對高質(zhì)量的矢量圖(SVG圖)進(jìn)行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編程語言,進(jìn)入終端界面調(diào)用perl解釋器運(yùn)行,執(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ù)集分別進(jìn)行6個組合計(jì)算。

        分別對6個組合執(zhí)行運(yùn)算得到對應(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)計(jì)頻率,按照維恩統(tǒng)計(jì)規(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)實(shí)發(fā)展需要,通過結(jié)合Perl編程語言和SVG語言的功能,開發(fā)出繪制高緯度的Venn圖流程,使得在該應(yīng)用層面的繪圖可能性得到擴(kuò)展。在平時的科研工作中,匯報及寫作以及數(shù)據(jù)展示能力得到提升,同時也為指導(dǎo)學(xué)生論文工作提供了更廣泛的科研工具,可應(yīng)用在學(xué)生論文的插入圖表提供工具支撐。同樣,在其他相關(guān)數(shù)據(jù)領(lǐng)域,對于同類型的數(shù)據(jù)繪圖具有較好的平移、適應(yīng)和普適性的應(yīng)用。

        參考文獻(xiàn)

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

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

        [3] 羅紅梅,張永鋒.基于Venn方法與ArgGis的水上交通安全隱患點(diǎn)風(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è)計(jì)中的應(yīng)用研究[J].科學(xué)技術(shù)創(chuàng)新,2020(15):88-89.

        作者簡介:金會會(1990—),男,碩士,助教,研究方向?yàn)樯镄畔W(xué)。

        男女啪啪啪的高清视频| 国产午夜福利小视频合集| 国产一级大片免费看| 一区二区特别黄色大片| 亚洲乱码一区二区av高潮偷拍的| 亚洲av无码国产综合专区| 116美女极品a级毛片| 亚洲熟女av超清一区二区三区| 一区二区日本免费观看| 日本三级片在线观看| 中国凸偷窥xxxx自由视频| 亚洲av不卡电影在线网址最新 | 亚洲 另类 日韩 制服 无码 | 国产精品无码久久久久| 久久精品无码一区二区三区不| 黑人一区二区三区高清视频| 痴汉电车中文字幕在线| 国产精品国产三级国av在线观看| 欧美黑人性色黄在线视频| 亚洲视频一区二区蜜桃| 免费一级淫片日本高清| 黑人巨大跨种族video| 极品美女高潮喷白浆视频| 国产少妇一区二区三区| 欧美v国产v亚洲v日韩九九| 国产欧美日韩一区二区三区在线| 2020亚洲国产| 亚洲精品一区二区成人精品网站| 亚洲成aⅴ人片久青草影院| 亚洲天堂2017无码中文| 亚洲av午夜福利精品一区二区| 青青草国产手机观看视频| 伊人激情av一区二区三区| 伊人精品无码AV一区二区三区| 国产一区精品二区三区四区| 天天做天天爱夜夜爽毛片毛片| 久久人妻少妇嫩草av蜜桃 | 精品国产精品久久一区免费| 日本真人边吃奶边做爽动态图| 亚洲人成网7777777国产| 亚洲日产国无码|