[Bio] / FigWebServices / co_occurs_server.cgi Repository:
ViewVC logotype

Annotation of /FigWebServices/co_occurs_server.cgi

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.3 - (view) (download)

1 : overbeek 1.1 use strict;
2 :     use Data::Dumper;
3 :    
4 :     use YAML;
5 :    
6 :     use CGI;
7 :     my $cgi = new CGI;
8 :    
9 :     use FIG;
10 :     my $fig = new FIG;
11 :    
12 :     use ERDB;
13 :     use FC;
14 :    
15 : disz 1.3 print $cgi->header();
16 : overbeek 1.1 my $function = $cgi->param('function');
17 :     $function || die "Missing a function in call to co_occurs_server.cgi";
18 :    
19 :     my $db = ERDB::GetDatabase('Sapling');
20 :    
21 :     if ($function eq "conserved_in_neighborhood")
22 :     {
23 :     my $pegs = &YAML::Load($cgi->param('args'));
24 :     my $tuples = [];
25 :     foreach my $peg (@$pegs)
26 :     {
27 :     my $group = [];
28 :     my @co_occurs = &FC::co_occurs($db,$peg);
29 :     foreach my $tuple (@co_occurs)
30 :     {
31 :     my($sc,$fid,$pairset) = @$tuple;
32 :     push(@$group,[$sc,$fid,scalar $fig->function_of($fid),$pairset]);
33 :     }
34 : disz 1.3
35 : overbeek 1.1 push(@$tuples,$group);
36 :     }
37 :     my $str = &YAML::Dump($tuples);
38 :     print $str;
39 :     }
40 : overbeek 1.2 elsif ($function eq "pairsets")
41 :     {
42 :     my $pairsets = &YAML::Load($cgi->param('args'));
43 :     my $ans = [];
44 :     foreach my $pairset (@$pairsets)
45 :     {
46 :     push(@$ans,[$pairset,[&FC::co_occurrence_set($db,$pairset)]]);
47 :     }
48 :     print &YAML::Dump($ans);
49 :     }
50 :     elsif ($function eq "clusters_containing")
51 :     {
52 :     my $pegs = &YAML::Load($cgi->param('args'));
53 :     my $ans = [];
54 :     foreach my $peg (@$pegs)
55 :     {
56 :     my $cluster = &FC::in_co_occurrence_cluster($db,$peg);
57 :     if ($cluster)
58 :     {
59 :     my $func = scalar $fig->function_of($peg);
60 :     push(@$ans,[$peg,$func,[map { [$_,scalar $fig->function_of($_)] } @$cluster]]);
61 :     }
62 :     }
63 :     print &YAML::Dump($ans);
64 :     }
65 :     elsif ($function eq "related_clusters")
66 :     {
67 :     my $pegs = &YAML::Load($cgi->param('args'));
68 :     my $ans = [];
69 :     foreach my $peg (@$pegs)
70 :     {
71 :     my $one_set = [];
72 :     my @clusters = &FC::largest_co_occurrence_clusters($db,$peg);
73 :     foreach my $cluster (@clusters)
74 :     {
75 :     my($peg1,$sc,$other_pegs) = @$cluster;
76 :     my $func1 = $fig->function_of($peg1);
77 :     my $others = [ map { [$_,scalar $fig->function_of($_)] } @$other_pegs];
78 :     push(@$one_set,[$peg1,$sc,$others]);
79 :     }
80 :     push(@$ans,$one_set);
81 :     }
82 :     print &YAML::Dump($ans);
83 :     }
84 :     elsif ($function eq "related_figfams")
85 :     {
86 :     my $ffs = &YAML::Load($cgi->param('args'));
87 :     my $ans = [];
88 :     foreach my $ff (@$ffs)
89 :     {
90 :     push(@$ans,[$ff,[&FC::co_occurring_FIGfams($db,$ff)]]);
91 :     }
92 :     print &YAML::Dump($ans);
93 :     }

MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3