日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > php教程 > kegg的某種svg展示圖

kegg的某種svg展示圖

來源:程序員人生   發布時間:2015-06-24 08:24:25 閱讀次數:4753次
#!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;

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 亚洲精品视频久久 | 爱爱免费视频网站 | 国产精品www | 日韩欧美一 | 美女视频黄是免费 | 永久免费在线观看 | 国产一二区视频 | 欧美一级黄色片 | 日韩中文字幕在线视频 | 欧美一级欧美三级 | 一区二区三区高清在线观看 | 妹子干综合 | 国产精品久久久影院 | 欧美日韩高清 | 国产日韩欧美在线观看 | 欧美日韩在线电影 | 亚洲视频在线播放 | 亚洲欧美精品一区 | 成人毛片在线播放器 | 视频福利一区 | 国产探花一区二区 | 亚洲精品视频免费观看 | 夜夜骑首页| 国产精品高潮在线观看 | 久久免费国产 | 欧美视频网站 | 国产在线精品一区二区三区 | 国产成人综合久久 | 综合第一页 | 亚洲黄色三级 | 国产精品国产三级国产aⅴ中文 | 成人在线视频免费观看 | 在线观看黄网 | 欧美一区 | 亚洲毛片在线观看 | 国产精品视频久久久 | 日韩和欧美一区二区 | 精品久久久噜噜噜久久x99a | 欧美视频在线免费 | 久久久久99精品国产片 | 日韩精品第一页 |