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

Annotation of /FigKernelScripts/fc_figfams.pl

Parent Directory Parent Directory | Revision Log Revision Log


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

1 : overbeek 1.1 ########################################################################
2 :    
3 : overbeek 1.2 # usage: fc_figfams [done] > couplings
4 :    
5 :     my %done;
6 :     if (@ARGV > 0)
7 :     {
8 :     foreach $_ (`cut -f1 $ARGV[0] | sort -u`)
9 :     {
10 : disz 1.3 if ($_ =~ /^(FIG\d+)/)
11 : overbeek 1.2 {
12 :     $done{$1} = 1;
13 :     }
14 :     }
15 :     }
16 :    
17 : overbeek 1.1 use FIG;
18 :     my $fig = new FIG;
19 :    
20 :     use FigFams;
21 :     my $figfams = new FigFams($fig);
22 :    
23 :     use FigFam;
24 :    
25 : overbeek 1.2 $| = 1;
26 : overbeek 1.1 foreach $fam_id1 ($figfams->all_families)
27 :     {
28 : overbeek 1.2 next if ($done{$fam_id1});
29 : overbeek 1.1 undef %to;
30 :     my $figfam = new FigFam($fig,$fam_id1);
31 : overbeek 1.2 if (! $figfam)
32 :     {
33 :     print STDERR "could not make FIGfam $fam_id1\n";
34 :     }
35 :     else
36 : overbeek 1.1 {
37 : overbeek 1.2 my @pegs = $figfam->list_members;
38 :     foreach $tuple (&batch($fig,@pegs))
39 : overbeek 1.1 {
40 : overbeek 1.2 my($peg1,$peg2,$sc) = @$tuple;
41 : overbeek 1.1 foreach $fam_id2 ($figfams->families_containing_peg($peg2))
42 :     {
43 :     if ((! ($x = $to{$fam_id2})) || ($x < $sc))
44 :     {
45 :     $to{$fam_id2} = $sc;
46 :     }
47 :     }
48 :     }
49 :     }
50 :     foreach $fam_id2 (sort {$to{$b} <=> $to{$a}} keys(%to))
51 :     {
52 :     print join("\t",($fam_id1,$fam_id2,$to{$fam_id2})),"\n";
53 :     }
54 :     }
55 : overbeek 1.2
56 :     sub batch {
57 :     my($fig,@pegs) = @_;
58 :    
59 :     my $rdbH = $fig->db_handle;
60 :     if (! $rdbH->table_exists('fc_pegs')) { return undef }
61 :    
62 :     my $cond = join(", ", map { "'$_'" } @pegs);
63 :     my $relational_db_response = $rdbH->SQL("SELECT peg1,peg2,score FROM fc_pegs
64 :     WHERE peg1 in ($cond) ");
65 :     return @$relational_db_response;
66 :     }

MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3