- 论坛徽章:
- 2
|
本帖最后由 yinyuemi 于 2011-10-29 12:59 编辑
回复 1# linghu002127
大概意思,自己调整吧:- #!/bin/perl
- use strict;
- my ($max_l,$min_l);
- my %hash;
- my @arr_title=("H2AK5ac","H2BK5me","H4K12ac","H4R3me2");
- open (file, "ChrY.txt");
- while(<file>){
- chomp;
- my @arr=split /\t/;
- $hash{@arr[0]}.=@arr[1]." ";
- $max_l=$max_l>$arr[1]?$max_l:$arr[1];
- $min_l=$.==1||$min_l>$arr[1]?$arr[1]:$min_l;
- }
- printf "Name\t";
- print join "\t", @arr_title;
- print "\n";
- my $i;
- for ($i=0;$i<=$max_l;$i+=5000){
- my @tmp;
- foreach my $j (@arr_title){
- my $n=0;
- map {if($_>=$i&&$_<$i+5000) {++$n} }(split " ",$hash{$j});
- push @tmp,$n;
- }
- print "chrY-",$i+5000,"\t";
- print join "\t", @tmp;
- @tmp=();
- print "\n";
- }
- close(file);
复制代码 |
|