#!/usr/bin/perl -T use strict; use warnings; my (@snp_bins, %data); open my $in_file, "<", "./dnata"; while (<$in_file>) { chomp; if ($. == 1 ) { # line number my ( $placeholder, @coords ) = split /,/; @snp_bins = map int( $_ / 100_000 ), @coords; next; } if ($. >= 2){ my ( $id, @snpspairs ) = split /,/; foreach my $oasis (@snp_bins){ my $os = $oasis; @{ $data{$id}[$os] } = @snpspairs; $os--; unless ( defined( @{ $data{$id}[$os] } ) ){ do { @{ $data{$id}[$os] } = map (q(1 1), 0..99); # do 0..9 for readability on output!! $os--; } until( defined( @{ $data{$id}[$os] } ) ) } } } } foreach my $k (sort keys %data){ print $k," Ref: ",@{ $data{$k} }->[0],$/; print $k," 0: ",@{ $data{$k}->[0] },$/; print $k," 161: ",join (',',@{ $data{$k}->[161]}),$/; print $k," 161:5 ",@{ $data{$k}->[161]}[5],$/; print $k," 162: ",join (',',@{ $data{$k}->[162]}),$/; print $k," 162:5 ",@{ $data{$k}->[162]}[5],$/; print $k," 165: ",join (',',@{ $data{$k}->[165]}),$/; print $k," 165:5 ",@{ $data{$k}->[165]}[5],$/; print $k," 168: ",join (',',@{ $data{$k}->[168]}),$/; print $k," 168:5 ",@{ $data{$shark}->[168]}[5],$/; print $k," 170: ",join (',',@{ $data{$k}->[170]}),$/; print $k," 170:7 ",@{ $data{$k}->[170]}[7],$/; print $k," 171: ",join (',',@{ $data{$k}->[171]}),$/; print $k," 171:7 ",@{ $data{$k}->[171]}[7],$/; }