[Bio] / FigKernelPackages / RC.pm Repository:
ViewVC logotype

Annotation of /FigKernelPackages/RC.pm

Parent Directory Parent Directory | Revision Log Revision Log


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

1 : olson 1.2 #
2 :     # Copyright (c) 2003-2006 University of Chicago and Fellowship
3 :     # for Interpretations of Genomes. All Rights Reserved.
4 :     #
5 :     # This file is part of the SEED Toolkit.
6 :     #
7 :     # The SEED Toolkit is free software. You can redistribute
8 :     # it and/or modify it under the terms of the SEED Toolkit
9 :     # Public License.
10 :     #
11 :     # You should have received a copy of the SEED Toolkit Public License
12 :     # along with this program; if not write to the University of Chicago
13 :     # at info@ci.uchicago.edu or the Fellowship for Interpretation of
14 :     # Genomes at veronika@thefig.info or download a copy from
15 :     # http://www.theseed.org/LICENSE.TXT.
16 :     #
17 :    
18 : efrank 1.1 package RC;
19 :    
20 :     use Carp;
21 :    
22 :     sub show_page {
23 :     my($cgi,$html) = @_;
24 :    
25 :     print $cgi->header;
26 :     print @$html;
27 :     }
28 :    
29 :    
30 :     sub make_table {
31 :     my($col_hdrs,$tab,$title) = @_;
32 :     my(@tab);
33 :    
34 :     push(@tab,"<table border><caption><b>$title</b></caption>\n");
35 :     push(@tab,"<tr><th>" . join("</th><th>",@$col_hdrs) . "</th></tr>\n");
36 :     foreach $_ (@$tab)
37 :     {
38 :     push(@tab,"<tr><td>" . join("</td><td>",@$_) . "</td></tr>\n");
39 :     }
40 :     push(@tab,"</table>\n");
41 :     return join("",@tab);
42 :     }
43 :    
44 :     sub same_func {
45 :     my($func1,$func2) = @_;
46 :     my(@ecs1,@ecs2,$ec,$func1n,$func2n);
47 :    
48 :     (defined($func1) && defined($func2)) || confess "func1=$func1 func2=$func2";
49 :    
50 :     if (&hypo($func1) )
51 :     {
52 :     return &hypo($func2);
53 :     }
54 :     elsif (&hypo($func2))
55 :     {
56 :     return 0;
57 :     }
58 :    
59 :     $func1n = &normalize($func1);
60 :     $func2n = &normalize($func2);
61 :     # print STDERR "$func1n\n$func2n\n";
62 :    
63 :     if ($func1n && $func2n &&
64 :     ((index($func1n,$func2n) > -1) ||
65 :     (index($func2n,$func1n) > -1)))
66 :     {
67 :     # print STDERR "same: $func1\t$func2\n";
68 :     return 1;
69 :     }
70 :    
71 :     @ecs1 = ($func1 =~ /\d+\.\d+\.\d+\.\d+/g);
72 :     foreach $ec (@ecs1)
73 :     {
74 :     if ($func2 !~ /\b$ec\b/)
75 :     {
76 :     return 0;
77 :     }
78 :     }
79 :    
80 :     @ecs2 = ($func2 =~ /\d+\.\d+\.\d+\.\d+/g);
81 :     foreach $ec (@ecs2)
82 :     {
83 :     if ($func1 !~ /\b$ec\b/)
84 :     {
85 :     return 0;
86 :     }
87 :     }
88 :    
89 :     if (@ecs1) { return 1; }
90 :    
91 :     # print STDERR "diff: $func1\t$func2\n";
92 :     return 0;
93 :     }
94 :    
95 :     sub normalize {
96 :     my($func) = @_;
97 :    
98 :     $func =~ s/[,\.\(\)\[\]\']//g;
99 :     $func = uc($func);
100 :     $func =~ s/SUBUNIT \S+//;
101 :     $func =~ s/\d+ kda? SUBUNIT//i;
102 :     $func =~ s/ SUBUNIT$//i;
103 :     $func =~ s/(PROBABLE|PUTATIVE|PRECURSOR|HOMOLOG|IMPORTED|PRIME)//i;
104 :     $func =~ s/^.*TRANSCRIPTION.*REGULAT.*$/transcription regulator/;
105 :     $func =~ s/SINGLE-STRANDED/SINGLE-STRAND/i;
106 :     $func =~ s/ */ /g;
107 :     $func =~ s/^\s+//;
108 :     $func =~ s/\s+$//;
109 :    
110 :     return $func;
111 :     }
112 :    
113 :     sub hypo {
114 :     my $x = (@_ == 1) ? $_[0] : $_[1];
115 :    
116 :     return ((! $x) ||
117 :     ($x =~ /hypoth/i) ||
118 :     ($x =~ /,.*genes/i) ||
119 :     ($x =~ /gene \d/i) ||
120 :     ($x =~ /\d{3}.pep/i) ||
121 :     ($x =~ /\bFROM\b/i) ||
122 :     ($x =~ /\bA\.L/i) ||
123 :     ($x =~ /\bA\d\d/i) ||
124 :     ($x =~ /^C$/i) ||
125 :     ($x =~ /^\([A-Z]+\d+\)$/) ||
126 :     ($x =~ /putative/i) ||
127 :     ($x =~ /tentative/i) ||
128 :     ($x =~ /predicted/i) ||
129 :     # ($x =~ /homolog/i) ||
130 :     ($x =~ /dna fragment/i) ||
131 :     ($x =~ /conserved protein\b/) ||
132 :     ($x =~ /^[XY]\d\S+/i) ||
133 :     ($x =~ /^[Yy][a-z]{2}[A-Z]/) ||
134 :     ($x =~ /^[Yy][A-Z]{3}\b/) ||
135 :     ($x =~ /weak similarity/i) ||
136 :     ($x =~ /similar to/i) ||
137 :     ($x =~ /gene product/i) ||
138 :     ($x =~ /ORF_/) ||
139 :     ($x =~ /NO SWISS-PROT/) ||
140 :     ($x =~ /predicted coding/i) ||
141 :     ($x =~ /predicted by/i) ||
142 :     ($x =~ /pct identical/i) ||
143 :     ($x =~ /\borf\d+/i) ||
144 :     ($x =~ /\bcosmid\d+\b/i) ||
145 :     ($x =~ /^[a-zA-Z0-9]+\d+[a-z]?$/i) ||
146 :     ($x =~ /^[a-zA-Z0-9]+[\.-]\d+[a-z]?$/i) ||
147 :     ($x =~ /^[a-zA-Z0-9]+[\.-]\d+[a-z]?\s+PROTEIN$/i) ||
148 :     ($x =~ /^cosmid\s+\S+$/i) ||
149 :     ($x =~ /^\([A-Z0-9]+\) [A-Z][a-z]{2}[a-zA-Z] \[\S+ \S+\]\s*$/) ||
150 :     ($x =~ /region orf/i) ||
151 :     ($x =~ /UNNAMED PROTEIN PRODUCT/) ||
152 :     ($x =~ /HYDROPHOBIC PROTEIN/) ||
153 :     ($x =~ /\bORF\b/i) ||
154 :     ($x =~ /protein similarity/) ||
155 :     ($x =~ /Uncharacterized/) ||
156 :     ($x =~ /UNIDENTIFIED/) ||
157 :     ($x =~ /belongs to the family/) ||
158 :     ($x =~ /predicted protein/) ||
159 :     ($x =~ /1-EVIDENCE=PREDICTED BY MATCH/) ||
160 :     ($x =~ /INTERGENIC REGION/) ||
161 :     ($x =~ /NO SWISS-PROT SIMILARITIES/) ||
162 :     ($x =~ /no known similarities/) ||
163 :     ($x =~ /alternate gene name/) ||
164 :     ($x =~ /alternate open reading frame/) ||
165 :     ($x =~ /similar to GenBank Accession Number/) ||
166 :     ($x =~ /family with/) ||
167 :     ($x =~ /No definition/) ||
168 :     ($x =~ /id:/i) ||
169 :     ($x =~ /cDNA/) ||
170 :     ($x =~ /SP:/) ||
171 :     ($x =~ /COMPLETE CDS/) ||
172 :     ($x =~ /GENE CLUSTER/) ||
173 :     ($x =~ /\dp,Lp/) ||
174 :     ($x =~ /3\' END/) ||
175 :     ($x =~ /START CODON/) ||
176 :     ($x =~ /_\S+_/) ||
177 :     ($x =~ /GTG START/i) ||
178 :     ($x =~ /TTG START/i) ||
179 :     ($x =~ /chain length determinant/i) ||
180 :     ($x =~ /f135/i) ||
181 :     ($x =~ /KDA PROTEIN/i) ||
182 :     ($x =~ /yole/i) ||
183 :     ($x =~ /\bMAP\b/) ||
184 :     ($x =~ /\(\d+-\d+\)/i) ||
185 :     ($x =~ /D9719.36p/i) ||
186 :     ($x =~ /THYMOCYTE PROTEIN CTHY28KD/i) ||
187 :     ($x =~ /PHAC1, PHAC2 AND PHAD GENES/i) ||
188 :     ($x =~ /OR23peptide/i) ||
189 :     ($x =~ /\(AE/i) ||
190 :     ($x =~ /Bem3p,Lph12p/i) ||
191 :     ($x =~ /Rlm1p,Lpg19p/i) ||
192 :     ($x =~ /unknown/i));
193 :     }
194 :    
195 :     sub check_sum {
196 :     my($file) = @_;
197 :    
198 :     my @tmp = `cksum $file`;
199 :     $tmp[0] =~ /^(\d+\s+\d+)/;
200 :     return $1;
201 :     }
202 :    
203 :     1

MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3