#!/usr/perl/perl580/bin/perl use Algorithm::Cluster; #$|++; #$^W = 1; #use strict; my $i = 0; my $firstline; my $i; open (DATA, "$ARGV[0]"); $firstline = ; # Skip the title line while(my $line = ) { chomp $line; # print ("$line\n"); @field = split /\t/, $line; $orfname[$i] = $field[0]; # print ("$orfname[$i]\n"); $orfdata[$i] = join (",", @field[2..5]); #this is the field where we'll find the data print ("$orfdata[$i]\n"); #this is the field where we'll find the data # $mask[$i] = [ 1,1,1,1 ]; # print ("$mask[$i]\n"); # $a = ; $i++; } close(DATA); #my @weight = [1,1,1,1]; print "--------------[pairwise average linkage]-------\n"; my %params = ( applyscale => 0, transpose => 1, method => 'a', dist => 'e', data => \@orfdata, mask => \@mask, weight => \@weight, ); my ($result, $linkdist); my ($i,$j); ($result, $linkdist) = Algorithm::Cluster::treecluster(%params); $i=0; foreach(@{$result}) { printf("%3d: %3d %3d %7.3f\n",-1-$i,$_->[0],$_->[1],$linkdist->[$i]); ++$i; } print "--------------[pairwise single linkage]-------\n"; $params{method} = 's'; ($result, $linkdist) = Algorithm::Cluster::treecluster(%params); $i=0; foreach(@{$result}) { printf("%3d: %3d %3d %7.3f\n",-1-$i,$_->[0],$_->[1],$linkdist->[$i]); ++$i; } print "--------------[pairwise centroid linkage]-------\n"; $params{method} = 'c'; ($result, $linkdist) = Algorithm::Cluster::treecluster(%params); $i=0; foreach(@{$result}) { printf("%3d: %3d %3d %7.3f\n",-1-$i,$_->[0],$_->[1],$linkdist->[$i]); ++$i; } print "--------------[pairwise maximum linkage]-------\n"; $params{method} = 'm'; ($result, $linkdist) = Algorithm::Cluster::treecluster(%params); $i=0; foreach(@{$result}) { printf("%3d: %3d %3d %7.3f\n",-1-$i,$_->[0],$_->[1],$linkdist->[$i]); ++$i; } __END__