[Bio] / FigKernelScripts / make_coreg_conjectures_based_on_subsys.pl Repository:
ViewVC logotype

Annotation of /FigKernelScripts/make_coreg_conjectures_based_on_subsys.pl

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.1 - (view) (download) (as text)

1 : overbeek 1.1 use SeedEnv;
2 :     use strict;
3 :     use Carp;
4 :     use Data::Dumper;
5 :     use Statistics::Descriptive;
6 :    
7 :     my($genome,$rawF);
8 :     my $usage = "usage: make_coreg_conjectures_based_on_subsys Genome RawDataTab";
9 :     (
10 :     ($genome = shift @ARGV) &&
11 :     ($rawF = shift @ARGV)
12 :     )
13 :     || die $usage;
14 :    
15 :     my $sapO = SAPserver->new;
16 :     my $corrH = &get_corr($rawF);
17 :    
18 :     my $genomeH = $sapO->genomes_to_subsystems( -ids => [$genome] );
19 :     my @subs = map { ($_->[1] =~ /^\*?(0|-1)$/) ? () : $_->[0] } @{$genomeH->{$genome}};
20 :     my $subH = $sapO->ids_in_subsystems( -subsystems => \@subs,
21 :     -genome => $genome);
22 :     foreach my $sub (@subs)
23 :     {
24 :     my $sub_entry = $subH->{$sub};
25 :     my @pegs = ();
26 :     foreach my $role (keys(%$sub_entry))
27 :     {
28 :     my $pegs = $sub_entry->{$role};
29 :     push(@pegs,@$pegs);
30 :     }
31 :     @pegs = sort { &SeedUtils::by_fig_id($a,$b) } @pegs;
32 :     if (@pegs > 1)
33 :     {
34 :     print join(",",@pegs),"\tInSubsystem:$sub\n";
35 :     }
36 :     }
37 :    
38 :     sub get_corr {
39 :     my($rawFF) = @_;
40 :    
41 :     my %gene_to_values;
42 :     open(RAW,"<$rawF") || die "could not open $rawF";
43 :     while (<RAW>)
44 :     {
45 :     chomp;
46 :     my ($gene_id, @gxp_values) = split("\t");
47 :     $gene_to_values{$gene_id} = \@gxp_values;
48 :     }
49 :     close(RAW);
50 :     return \%gene_to_values;
51 :     }
52 :    
53 :     sub compute_pc
54 :     {
55 :     my ($gene_ids, $gxp_hash) = @_;
56 :     my %values = ();
57 :    
58 :     for (my $i = 0; $i < @$gene_ids-1; $i++)
59 :     {
60 :     my $stat = Statistics::Descriptive::Full->new();
61 :     $stat->add_data(@{$gxp_hash->{$gene_ids->[$i]}});
62 :    
63 :     for (my $j = $i+1; $j < @$gene_ids; $j++)
64 :     {
65 :     my ($q, $m, $r, $err) = $stat->least_squares_fit(@{$gxp_hash->{$gene_ids->[$j]}});
66 :     $values{$gene_ids->[$i]}->{$gene_ids->[$j]} = $r;
67 :     $values{$gene_ids->[$j]}->{$gene_ids->[$i]} = $r;
68 :     }
69 :     }
70 :    
71 :     return \%values;
72 :     }
73 :    

MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3