in reply to Looking for series in consecutive lines of a file
use warnings; use strict; my %data; while (<DATA>) { my @cols = split; push @{ $data{$cols[0]} }, $cols[1] if $cols[3] > 4; } for my $k (sort keys %data) { my $i = 1; my @ns = @{ $data{$k} }; my $n0 = shift @ns; my @ns2 = $n0; for my $n (@ns) { if ($n == $n0+1) { push @ns2, $n; $i++; } else { print "$k,$ns2[0],$ns2[-1],$i\n"; @ns2 = $n; $i = 1; } $n0 = $n; } print "$k,$ns2[0],$ns2[-1],$i\n"; } __DATA__ C10000035 12 C 4 ....^>. HHFCC C10000035 13 C 6 .....^>. HHFFCC C10000035 14 C 6 ...... JHFFCC C10000035 15 C 6 ...... IHFFFC C10000035 16 A 4 .GG...^>G JGHFFFC C10000035 17 C 7 ....... JGHFFFC C10000035 18 C 8 .......^]. JIHHFFC@ C10000035 19 A 8 ........ IJHHFFFC C10000035 20 C 9 ..T...T.^]. JIHGHFF@C C10000035 21 G 10 A........^]. AJJHHHFDCC C10000040 30 C 5 ....^>. HHFCC C10000040 31 C 6 .....^>. HHFFCC C10000040 32 C 6 ...... JHFFCC C10000040 33 C 6 ...... IHFFFC C10000040 34 C 4 ...... IHFFFC C10000040 35 C 4 ...... IHFFFC C10000040 36 C 4 ...... IHFFFC C10000040 37 C 6 ...... IHFFFC C10000040 38 C 6 ...... IHFFFC
See also:
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: Looking for series in consecutive lines of a file
by mbp (Novice) on Feb 17, 2015 at 05:27 UTC | |
by Athanasius (Archbishop) on Feb 17, 2015 at 06:52 UTC | |
by Anonymous Monk on Feb 17, 2015 at 08:04 UTC | |
by mbp (Novice) on Feb 17, 2015 at 23:16 UTC | |
by mbp (Novice) on Feb 17, 2015 at 23:12 UTC |