- 论坛徽章:
- 0
|
hg19.txtobj.txt- 1 29
- 1 78
- 1 13
- 1 67
- 1 49
- 1 10
- 1 32
- 1 71
- 1 52
- 1 78
- 1 14
- 1 36
- 1 60
- 1 95
- 1 42
- 1 67
- 1 20
- 1 0
- 1 97
- 1 10
- 2 220
- 2 166
- 2 54
- 2 187
- 2 92
- 2 115
- 2 132
- 2 172
- 2 16
- 2 133
- 2 68
- 2 125
- 2 159
- 2 56
- 2 192
- 2 14
- 2 75
- 2 89
- 2 87
- 2 206
复制代码 newout.txt- 1 1 3
- 1 2 3
- 1 3 1
- 1 4 2
- 1 5 3
- 1 6 1
- 1 7 3
- 1 8 2
- 1 9 0
- 1 10 2
- 2 1 2
- 2 2 0
- 2 3 2
- 2 4 4
- 2 5 1
- 2 6 4
- 2 7 0
- 2 8 3
- 2 9 2
- 2 10 2
复制代码 code- #!/usr/bin/perl
- open my $A, 'hg19.txt';
- open my $B, 'obj.txt';
- open my $C, '>', 'newout.txt';
- my $N = 10;
- my %pos;
- while (<$B>) {
- my ( $chr, $pos ) = split;
- push @{ $pos{$chr} }, $pos;
- }
- while (<$A>) {
- my ( $chr, $len ) = split;
- my $step = $len / $N;
- my @steps = map { $step * $_ } 1 .. $N;
- $steps[-1] = $len;
- my @result = (0) x $N;
- my $begin = 0;
- for my $P ( sort { $a <=> $b } @{ $pos{$chr} } ) {
- for my $i ( $begin .. $#steps ) {
- $P <= $steps[$i] ? do { $result[$i]++; last } : $begin++;
- }
- }
- my $zone = 1;
- print $C "$chr\t", $zone++, "\t$_\n" for @result;
- }
复制代码 |
|