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

Annotation of /FigKernelScripts/make_figfam_tree.pl

Parent Directory Parent Directory | Revision Log Revision Log


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

1 : arodri7 1.1 use strict;
2 :    
3 :     my $usage = "usage: make_figfam_tree FIGfamDir";
4 :    
5 :     my($famsD, $families);
6 :     (
7 :     ($famsD = shift @ARGV)
8 :     )
9 :     || die $usage;
10 :    
11 :     $families = $famsD . "/family.functions";
12 :    
13 :     my $procs = 15;
14 :     my @procs = &start_procs("make_figfam_tree_worker $famsD" ,$procs);
15 :    
16 :     open(FAMS,"cut -f1 $families | sort -u |") || die "Where is family.functions?";
17 :     my $nextP = 0;
18 :     while (defined($_ = <FAMS>))
19 :     {
20 : disz 1.2 if ($_ =~ /^(FIG\d+)/)
21 : arodri7 1.1 {
22 :     my $id = $1;
23 :     my $fh = $procs[$nextP];
24 :     print $fh "build_muscle_tree $id\n";
25 :     # print STDERR "$nextP: assigned $id\n";
26 :     $nextP = ($nextP == $#procs) ? 0 : $nextP+1;
27 :     }
28 :     }
29 :    
30 :     &close_procs(\@procs);
31 :     close(FAMS);
32 :     print STDERR "closed processes\n";
33 :    
34 :    
35 :     sub start_procs {
36 :     my($cmd,$procsN) = @_;
37 :    
38 :     my @procs = ();
39 :     open(F1,"| $cmd 1") || die 1;
40 :     my $ofh = select F1; $| = 1; select $ofh;
41 :     push(@procs,\*F1);
42 :     print STDERR "starting process 1\n";
43 :    
44 :     $procsN--; if ($procsN == 0) { return @procs }
45 :     open(F2,"| $cmd 2") || die 2;
46 :     my $ofh = select F2; $| = 1; select $ofh;
47 :     push(@procs,\*F2);
48 :     print STDERR "starting process 2\n";
49 :    
50 :     $procsN--; if ($procsN == 0) { return @procs }
51 :     open(F3,"| $cmd 3") || die 3;
52 :     my $ofh = select F3; $| = 1; select $ofh;
53 :     push(@procs,\*F3);
54 :     print STDERR "starting process 3\n";
55 :    
56 :     $procsN--; if ($procsN == 0) { return @procs }
57 :     open(F4,"| $cmd 4") || die 4;
58 :     my $ofh = select F4; $| = 1; select $ofh;
59 :     push(@procs,\*F4);
60 :     print STDERR "starting process 4\n";
61 :    
62 :     $procsN--; if ($procsN == 0) { return @procs }
63 :     open(F5,"| $cmd 5") || die 5;
64 :     my $ofh = select F5; $| = 1; select $ofh;
65 :     push(@procs,\*F5);
66 :     print STDERR "starting process 5\n";
67 :    
68 :     $procsN--; if ($procsN == 0) { return @procs }
69 :     open(F6,"| $cmd 6") || die 6;
70 :     my $ofh = select F6; $| = 1; select $ofh;
71 :     push(@procs,\*F6);
72 :     print STDERR "starting process 6\n";
73 :    
74 :     $procsN--; if ($procsN == 0) { return @procs }
75 :     open(F7,"| $cmd 7") || die 7;
76 :     my $ofh = select F7; $| = 1; select $ofh;
77 :     push(@procs,\*F7);
78 :     print STDERR "starting process 7\n";
79 :    
80 :     $procsN--; if ($procsN == 0) { return @procs }
81 :     open(F8,"| $cmd 8") || die 8;
82 :     my $ofh = select F8; $| = 1; select $ofh;
83 :     push(@procs,\*F8);
84 :     print STDERR "starting process 8\n";
85 :    
86 :     $procsN--; if ($procsN == 0) { return @procs }
87 :     open(F9,"| $cmd 9") || die 9;
88 :     my $ofh = select F9; $| = 1; select $ofh;
89 :     push(@procs,\*F9);
90 :     print STDERR "starting process 9\n";
91 :    
92 :     $procsN--; if ($procsN == 0) { return @procs }
93 :     open(F10,"| $cmd 10") || die 10;
94 :     my $ofh = select F10; $| = 1; select $ofh;
95 :     push(@procs,\*F10);
96 :     print STDERR "starting process 10\n";
97 :    
98 :     $procsN--; if ($procsN == 0) { return @procs }
99 :     open(F11,"| $cmd 11") || die 11;
100 :     my $ofh = select F11; $| = 1; select $ofh;
101 :     push(@procs,\*F11);
102 :     print STDERR "starting process 11\n";
103 :    
104 :     $procsN--; if ($procsN == 0) { return @procs }
105 :     open(F12,"| $cmd 12") || die 12;
106 :     my $ofh = select F12; $| = 1; select $ofh;
107 :     push(@procs,\*F12);
108 :     print STDERR "starting process 12\n";
109 :    
110 :     $procsN--; if ($procsN == 0) { return @procs }
111 :     open(F13,"| $cmd 13") || die 13;
112 :     my $ofh = select F13; $| = 1; select $ofh;
113 :     push(@procs,\*F13);
114 :     print STDERR "starting process 13\n";
115 :    
116 :     $procsN--; if ($procsN == 0) { return @procs }
117 :     open(F14,"| $cmd 14") || die 14;
118 :     my $ofh = select F14; $| = 1; select $ofh;
119 :     push(@procs,\*F14);
120 :     print STDERR "starting process 14\n";
121 :    
122 :     return @procs;
123 :     }
124 :    
125 :     sub close_procs {
126 :     my($procs) = @_;
127 :     my $proc;
128 :    
129 :     for (my $i=0; ($i < @$procs); $i++)
130 :     {
131 :     print STDERR "CLOSING ",$i+1,"\n";
132 :     my $fh = $procs->[$i];
133 :     print $fh "x\n";
134 :     close($fh);
135 :     print STDERR "CLOSED ",$i+1,"\n";
136 :     }
137 :     }

MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3