- 论坛徽章:
- 32
|
- #!/usr/bin/perl
- use warnings;
- use strict;
- my $first_line = <DATA>;
- my $str = join(" ", (split /\s+/, $first_line)[0, 1, 4, 5]);
- my($min, $max);
- $min = $max = (split /\s+/, $first_line)[2];
- while(<DATA>){
- my @fields = split;
- if(join(" ", (split)[0, 1, 4, 5]) eq $str){
- if($fields[2] - $max == 1){
- $max = $fields[2];
- next;
- }else{
- print join("\t", (split /\s+/, $str)[0, 1], "$min-$max", (split /\s+/, $str)[2, 3]), $/ if $max - $min >= 2;
- }
- }else{
- print join("\t", (split /\s+/, $str)[0, 1], "$min-$max", (split /\s+/, $str)[2, 3]), $/ if $max - $min >= 2;
- }
- $str = join(" ", (split)[0, 1, 4, 5]);
- $min = $max = $fields[2];
- }
- print join("\t", (split /\s+/, $str)[0, 1], "$min-$max", (split /\s+/, $str)[2, 3]), $/ if $max - $min >= 2;
- __DATA__
- 16642 chr1 2336225 18 HOM del
- 16642 chr1 2336226 17 HOM del
- 16642 chr1 2336227 17 HOM del
- 16642 chr1 2336228 18 HOM del
- 16642 chr1 2336236 17 HOM del
- 16642 chr1 2336237 17 HOM del
- 16642 chr1 2336309 24 HOM del
- 16642 chr1 2336320 24 HOM del
- 16642 chr1 2336321 24 HOM del
- 16642 chr1 2336322 24 HET del
- 16642 chr1 2336323 24 HET del
- 16642 chr1 2336324 24 HET del
- 16642 chr1 2336325 24 HOM del
复制代码 |
|