多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內(nèi)最全IT社區(qū)平臺 聯(lián)系我們 | 收藏本站
阿里云優(yōu)惠2
您當前位置:首頁 > php開源 > php教程 > kegg的某種svg展示圖

kegg的某種svg展示圖

來源:程序員人生   發(fā)布時間:2015-06-24 08:24:25 閱讀次數(shù):4743次
#!perl use warnings; use strict; use SVG; use File::Basename qw(basename); die "perl $0 <sample.list> <pathway.sorted> <outprefix> Note: support 24 colors to sample~ " if @ARGV != 3; my (@file, @pwtmp, @pw2sp); my $i = 0; open PW, $ARGV[1] or die $!; while(<PW>) { chomp; my @tmp = split / /; $pwtmp[$i]{$tmp[0]} = 1; $i ++; } my $f = 0; open SP, $ARGV[0] or die $!; while(<SP>) { chomp; my @ft = split; my $name = basename($ft[0]); my ($id) = $ft[0] =~ /^([^.]+)/; push @file, $ft[1]; open FA, $ft[0] or die $!; <FA>; for(my $n = 0; $n < @pwtmp; $n ++) { $pw2sp[$f][$n] = 1; } while(my $line = <FA>) { chomp($line); my @tmp = split / /, $line; for(my $j = 0; $j < @pwtmp; $j ++) { if(exists $pwtmp[$j]{$tmp[0]}) { $pw2sp[$f][$j] = $tmp[4]; last; } } } $f ++; } my $fn = @file; my $pwn = @pwtmp; my $svg = SVG->new(width => ($fn * 50 + 1100), height => ($pwn * 50 + 300)); $svg->rect(x => 55, y => 55, width => (($fn + 1) * 50 + 10), height => (($pwn + 1) * 50 + 10), fill => "white", stroke => "grey", 'stroke-width' => 8); for(my $j = 0; $j < @pwtmp; $j ++) { my $n = $j + 1; $svg->line(x1 => 60, y1 => (60 + $n * 50), x2 => (60 + ($fn+1) * 50), y2 => (60 + $n * 50), stroke => "orange", 'stroke-width' => 3); foreach my $pc(keys %{$pwtmp[$j]}) { $svg->text(x => (($fn + 1) * 50 + 70), y => 65 + $n * 50, style => {'font' => 'Times new roman', 'font-size' => 30, 'font-weight' => 'bold'})->cdata($pc); } } my @color = ('red', 'green', 'blue', 'yellow', 'cyan', 'purple', 'sandybrown', 'navy', 'violet', 'darksalmon', 'bisque', 'fuchsia', 'lightcoral', 'goldenrod', 'silver', 'brown', 'lawngreen', 'skyblue', 'indigo', 'forestgreen', 'lightseagreen', 'aqua', 'lime'); #my @color = ('red', 'red', 'green', 'green', 'blue', 'blue', 'yellow', 'yellow'); my $column = 0; my $row = 0; for(my $j = 0; $j < @file; $j ++) { my $n = $j + 1; my $rx = 75 + $n * 50 + int(length($file[$j]) / 2) * 14; my $ry = 80 + ($pwn + 1) * 50 + length($file[$j]) * 12; $svg->line(x1 => (60 + $n * 50), y1 => 60, x2 => (60 + $n * 50), y2 => (60 + ($pwn + 1) * 50), stroke => "orange", 'stroke-width' => 3); $svg->text(x => (60 + $n * 50), y => (80 + ($pwn + 1) * 50), style => {'font' => 'Times new roman', 'font-size' => 25, 'font-weight' => 'bold'}, 'transform' => "rotate(⑷5, $rx, $ry)")->cdata($file[$j]); for(my $k = 0; $k < @{$pw2sp[$j]}; $k ++) { if($pw2sp[$j][$k] >= 0.05) { $svg->circle(cx => (60 + $n * 50), cy => (60 + ($k+1) * 50), r => 1, fill => $color[$j], stroke => 'black'); }elsif($pw2sp[$j][$k] < 0.05 and $pw2sp[$j][$k] >= 0.01){ $svg->circle(cx => (60 + $n * 50), cy => (60 + ($k+1) * 50), r => 20, fill => $color[$j], stroke => 'black'); }else{ $svg->circle(cx => (60 + $n * 50), cy => (60 + ($k+1) * 50), r => 45, fill => $color[$j], stroke => 'black'); } } if(($n / 6) =~ /./) { $svg->circle(cx => (250 + (@file + 1) * 50 + $column * 100), cy => (75 + ($pwn + 1) * 50 + $row * 75), r => 20, fill => "$color[$j]", stroke => 'black'); $svg->text(x => (250 + (@file + 1) * 50 + $column * 100), y => (110 + ($pwn + 1) * 50 + $row * 75), style => {'font' => 'Times new roman', 'font-size'=> 15,'font-weight' => 'bold'})->cdata($file[$j]); $column ++; }else{ $svg->circle(cx => (250 + (@file + 1) * 50 + $column * 100), cy => (75 + ($pwn + 1) * 50 + $row * 75), r => 20, fill => "$color[$j]", stroke => 'black'); $svg->text(x => (250 + (@file + 1) * 50 + $column * 100), y => (110 + ($pwn + 1) * 50 + $row * 75), style => {'font' => 'Times new roman', 'font-size'=> 15,'font-weight' => 'bold'})->cdata($file[$j]); $row ++; $column = 0; } } $svg->circle(cx => (100 + (@file + 1) * 50), cy => (75 + ($pwn + 1) * 50), r => 20, fill => 'sandybrown', stroke => 'black'); $svg->circle(cx => (100 + (@file + 1) * 50), cy => (150 + ($pwn + 1) * 50), r => 45, fill => 'sandybrown', stroke => 'black'); $svg->text(x => (122 + (@file + 1) * 50), y => (75 + ($pwn + 1) * 50), style => {'font' => 'Times new roman', 'font-size'=> 15,'font-weight' => 'bold'})->cdata("FDR < 0.05"); $svg->text(x => (147 + (@file + 1) * 50), y => (150 + ($pwn + 1) * 50), style => {'font' => 'Times new roman', 'font-size'=> 15,'font-weight' => 'bold'})->cdata("FDR < 0.01"); open OUT, "> $ARGV[2].svg" or die $!; print OUT $svg->xmlify;

生活不易,碼農(nóng)辛苦
如果您覺得本網(wǎng)站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關(guān)閉
程序員人生
主站蜘蛛池模板: 亚洲成a人v欧美综合天堂软件 | 亚洲美女视频网站 | 亚洲精品一区久久狠狠欧美 | 91丨九色丨首页 | 欧美一二区 | 久久婷五月综合 | 欧美国产亚洲一区 | 欧美日本一区二区三区道 | 中文字幕在亚洲第一在线 | 在线免费观看国产视频 | 久久精品国产亚洲a | 毛片女人毛片一级毛片毛片 | 在线观看中文字幕亚洲 | 情侣偷偷看的羞羞视频网站 | 黄色一区二区三区 | 欧美激情精品久久久久久久九九九 | 欧美一级aa免费毛片 | 亚洲 欧美 日韩 综合 | 99久久精品国产一区二区成人 | 久草干 | 欧美成人精品不卡视频在线观看 | 亚洲精品久久久久中文 | 欧美国产成人在线 | 欧美伊人 | 精品在线第一页 | 日本午夜视频在线 | 欧美日韩中文国产一区 | 目韩一区二区三区系列片丶 | 欧美午夜视频 | 四虎在线永久精品高清 | 欧美成人性videos | 自拍偷拍校园春色 | 国产成人精品日本亚洲网站 | 成人精品在线视频 | 精品久久久久久综合网 | 欧美图片另类小说综合 | 中文字幕无线精品乱码一区 | 日本japanesexxxx人妖2 | 成人a大片高清在线观看 | 欧美性色欧美a在线播放 | 三级国产在线观看 |