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

Annotation of /FigKernelScripts/make_PHOBs_for_subsystems.pl

Parent Directory Parent Directory | Revision Log Revision Log


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

1 : overbeek 1.1
2 :     use FIG;
3 :     my $fig = new FIG;
4 :    
5 :     $usage = "usage: make_PHOBs_for_subsystems Dir < FileOf_SS-Role-PEG-Func";
6 :    
7 :     (
8 :     ($dir = shift @ARGV) && (! -d $dir)
9 :     )
10 :     || die $usage;
11 :    
12 :     mkdir($dir,0777) || die "could not make $dir";
13 :     while (defined($_ = <STDIN>))
14 :     {
15 :     chop;
16 :     ($ss,$role,$peg) = split(/\t/,$_);
17 :     push(@{$subH{$ss}->{$role}},$peg);
18 :     }
19 :    
20 :     $tmpF = "/tmp/pegs$$.fasta";
21 :    
22 :     open(INDEXSS,">$dir/index") || die "could not open $dir/index";
23 :     $ssN = 0;
24 :     foreach $ss (sort keys(%subH))
25 :     {
26 :     ++$ssN;
27 :     mkdir("$dir/$ssN",0777) || die "could not make $dir/$ssN";
28 :     print INDEXSS "$ssN\t$ss\n";
29 :    
30 :     open(INDEXR,">$dir/$ssN/index") || die "could not open $dir/$ssN/index";
31 :     $roleN = 0;
32 :     foreach $role (sort keys(%{$subH{$ss}}))
33 :     {
34 :     ++$roleN;
35 :     print INDEXR "$roleN\t$role\n";
36 :    
37 :     $pegs = $subH{$ss}->{$role};
38 :     open(TMP,">$tmpF") || die "could not open $tmpF";
39 :     foreach $peg (@$pegs)
40 :     {
41 :     if ($pseq = $fig->get_translation($peg))
42 :     {
43 :     print TMP ">$peg\n$pseq\n";
44 :     }
45 :     else
46 :     {
47 :     print STDERR "failed to get translation for $peg\n";
48 :     }
49 :     }
50 :     close(TMP);
51 :    
52 :     mkdir("$dir/$ssN/$roleN",0777) || die "could not make $dir/$ssN/$roleN";
53 :     &FIG::run("split_and_trim_sequences $dir/$ssN/$roleN/split_info < $tmpF");
54 :    
55 :     open(SZ,"<$dir/$ssN/$roleN/split_info/set.sizes") || die " could not open $dir/$ssN/$roleN/split_info";
56 :     while (defined($_ = <SZ>))
57 :     {
58 :     if (($_ =~ /^(\d+)\t(\d+)/) && ($2 > 3))
59 :     {
60 :     $n = $1;
61 :     &FIG::run("make_phob_from_seqs $dir/$ssN/$roleN/$n < $dir/$ssN/$roleN/split_info/$n");
62 :     }
63 :     }
64 :     close(SZ);
65 :     }
66 :     close(INDEXR);
67 :     }
68 :     close(INDEXSS);
69 :     unlink($tmpF);

MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3