in reply to create unique array
use strict; use warnings; my %smallest = map { $_->[0] => { org => $_->[1], val => $_->[2] } } sort { $b->[2] <=> $a->[2] } map { chomp; [ split m{\t} ] } <DATA>; my @sorted = (); foreach my $protein ( sort keys %smallest ) { push @sorted, [ $protein, $smallest{$protein}->{org}, $smallest{$protein}->{val} ]; } print Data::Dumper->Dump([\@sorted], [qw{*sorted}]); __END__ protein1 organism1 0.843534 protein2 organism2 2.45 protein3 organism3 9.5322 protein4 organism4 0.3475474 protein1 organism6 9.4534 protein2 organism7 0.43534 protein2 organism8 1.2434 protein3 organism9 0.000003 protein3 orgnanism10 1.23325
Here's the output
@sorted = ( [ 'protein1', 'organism1', '0.843534' ], [ 'protein2', 'organism7', '0.43534' ], [ 'protein3', 'organism9', '0.000003' ], [ 'protein4', 'organism4', '0.3475474' ] );
I hope this is of use.
Cheers,
JohnGG
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: create unique array
by Anonymous Monk on Jan 27, 2007 at 15:35 UTC |