Algorithm-Cluster
view release on metacpan or search on metacpan
perl/Record.pm view on Meta::CPAN
@eorder = $self->{eorder};
}
else {
@eorder = (0..$nexps-1);
}
if (defined $gene_cluster_type and defined $exp_cluster_type) {
if ($gene_cluster_type ne $exp_cluster_type) {
die 'found one k-means and one hierarchical clustering solution in geneclusters and expclusters';
}
}
my $gid = 0;
my $aid = 0;
my $filename = $jobname;
my $postfix = '';
my @geneindex;
my @expindex;
if ($gene_cluster_type eq 'h') {
# Hierarchical clustering result
@geneindex = _savetree(jobname => $jobname,
tree => $geneclusters,
order => \@gorder,
transpose => 0);
$gid = 1;
}
elsif ($gene_cluster_type eq 'k') {
# k-means clustering result
$filename = $jobname . '_K';
my $k = -1;
foreach (@$geneclusters) {
if ($_ > $k) {
$k = $_;
}
}
perl/Record.pm view on Meta::CPAN
clusterids => \@$expclusters,
order => \@eorder,
transpose => 1);
$postfix = $postfix . "_A$k";
}
else {
@expindex = sort { $eorder[$a] <=> $eorder[$b] } (0..$nexps-1);
}
$filename = $filename . $postfix;
$self->_savedata(jobname => $filename,
gid => $gid,
aid => $aid,
geneindex => \@geneindex,
expindex => \@expindex);
}
sub _savetree {
my %param = @_;
my $jobname = $param{jobname};
my $tree = $param{tree};
my @order = @{$param{order}};
perl/Record.pm view on Meta::CPAN
}
$cluster++;
}
close(OUTPUT);
return @sortedindex;
}
sub _savedata {
my ($self, %param) = @_;
my $jobname = $param{jobname};
my $gid = $param{gid};
my $aid = $param{aid};
my @geneindex = @{$param{geneindex}};
my @expindex = @{$param{expindex}};
my @genename;
if (defined $self->{genename}) {
@genename = @{$self->{genename}};
}
else {
@genename = @{$self->{geneid}};
}
perl/Record.pm view on Meta::CPAN
else {
@gweight = (1) x $ngenes;
}
my @eweight;
if (defined $self->{eweight}) {
@eweight = @{$self->{eweight}};
}
else {
@eweight = (1) x $nexps;
}
if ($gid) {
print OUTPUT "GID\t";
}
print OUTPUT $self->{uniqid};
print OUTPUT "\tNAME\tGWEIGHT";
# Now add headers for data columns
foreach (@expindex) {
print OUTPUT "\t" . $self->{expid}[$_];
}
print OUTPUT "\n";
if ($aid) {
print OUTPUT "AID";
if ($gid) {
print OUTPUT "\t";
}
print OUTPUT "\t\t";
foreach (@expindex) {
print OUTPUT "\tARRY" . $_ . 'X';
}
print OUTPUT "\n";
}
print OUTPUT "EWEIGHT";
if ($gid) {
print OUTPUT "\t";
}
print OUTPUT "\t\t";
foreach (@expindex) {
print OUTPUT "\t" . $eweight[$_];
}
print OUTPUT "\n";
foreach (@geneindex) {
my $i = $_;
if ($gid) {
print OUTPUT "GENE" . $i . "X\t";
}
print OUTPUT $self->{geneid}[$i] . "\t" . $genename[$i] . "\t" . $gweight[$i];
foreach (@expindex) {
my $j = $_;
print OUTPUT "\t";
if ($mask[$i][$j]) {
print OUTPUT $self->{data}[$i][$j];
}
}
( run in 2.429 seconds using v1.01-cache-2.11-cpan-5735350b133 )