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

Annotation of /FigKernelScripts/make_sp_org_table.pl

Parent Directory Parent Directory | Revision Log Revision Log


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

1 : overbeek 1.1 # -*- perl -*-
2 : olson 1.2 #
3 :     # Copyright (c) 2003-2006 University of Chicago and Fellowship
4 :     # for Interpretations of Genomes. All Rights Reserved.
5 :     #
6 :     # This file is part of the SEED Toolkit.
7 :     #
8 :     # The SEED Toolkit is free software. You can redistribute
9 :     # it and/or modify it under the terms of the SEED Toolkit
10 :     # Public License.
11 :     #
12 :     # You should have received a copy of the SEED Toolkit Public License
13 :     # along with this program; if not write to the University of Chicago
14 :     # at info@ci.uchicago.edu or the Fellowship for Interpretation of
15 :     # Genomes at veronika@thefig.info or download a copy from
16 :     # http://www.theseed.org/LICENSE.TXT.
17 :     #
18 :    
19 : overbeek 1.1
20 :     use Carp;
21 :     use Data::Dumper;
22 :    
23 :     $usage = "make_sp_org_table [label (Def: sp)] < sprot.dat > ../sp_org_table";
24 :    
25 :     if ( @ARGV > 0 ) { $label = shift @ARGV; } else { $label = "sp"; }
26 :    
27 :     while (defined($_ = <STDIN>) && ($_ !~ /^ID /)) {}
28 :     while ($_ && ($_ =~ /^ID /))
29 :     {
30 :     $organelle="";
31 :     $_ =~ /^ID\s+(\S+)/;
32 :     $id = $1;
33 :     undef $ac; @os = (); $os = "";
34 :     @acs = ();
35 :     while ($_ !~ /^\/\//)
36 :     {
37 :     if ($_ =~ /MITOCHONDRIA/) { $organelle="(M)";}
38 :     if ($_ =~ /CHLOROPLAST/) { $organelle="(C)";}
39 :     if ($_ =~ /^AC\s+(\S.*\S)/)
40 :     {
41 :     $acs = $1;
42 :     $acs =~ s/;\s*$//;
43 :     push(@acs,split(/; /,$acs));
44 :     }
45 :     if ($_ =~ /^OS\s+(\S.*\S)\s*$/)
46 :     {
47 :     $os .= "$1 ";
48 :     }
49 :     $_ = <STDIN>;
50 :     }
51 :    
52 :     $os =~ s/\([^\)]*\)//g;
53 :     if ( $os =~ m/^\'([^\']+)\'\s/ )
54 :     {
55 :     $in_quotes = $hyphenated = $1;
56 :     $hyphenated =~ s/\s+/-/g;
57 :     $os =~ s/\'$in_quotes\'/$hyphenated/;
58 :     }
59 :    
60 :     if ($os =~ /^\s*(\S.*\S)\s*$/)
61 :     {
62 :     $orgs = $1;
63 :     $orgs =~ s/\bAND //g;
64 :     @orgs = split(/, /,$orgs);
65 :     foreach $org (@orgs)
66 :     {
67 :     $org =~ s/^\s*(\S.*\S)\s*$/$1/;
68 :     while ($org =~ s/\s*\([^\)]*\)\.*$//) {}
69 :    
70 :     if (($org =~ /\.$/) && ($org !~ /SP\.$/))
71 :     {
72 :     $org =~ s/\.$//;
73 :     }
74 :    
75 :     if ($org =~ /^(\S)(\S+)\s+(.+)$/)
76 :     {
77 :     $p1 = $1; $p2 = $2; $p3 = $3;
78 :    
79 :     $p1 =~ tr/a-z/A-Z/;
80 :     $p2 =~ tr/A-Z/a-z/;
81 :     $p3 =~ tr/A-Z/a-z/;
82 :     $p3 =~ s/\s+$//;
83 :     $org = "$p1$p2 $p3";
84 :     }
85 :    
86 :     if ($org)
87 :     {
88 :     for ($i=0; ($i <= $#os) && ($os[$i] ne $org); $i++) {}
89 :     if ($i > $#os)
90 :     {
91 :     push(@os,$org);
92 :     }
93 :     }
94 :     }
95 :     }
96 :    
97 :     if ($id && ($#os >= 0) && (@acs > 0))
98 :     {
99 :     foreach $org (@os)
100 :     {
101 :     foreach $ac (@acs)
102 :     {
103 :     print "$label\|$ac\t$org\t$organelle\n";
104 :     }
105 :     }
106 :     }
107 :    
108 :     while ($_ && defined($_ = <STDIN>) && ($_ !~ /^ID /)) {}
109 :     }
110 :    
111 :    
112 :    
113 :    

MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3