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

Annotation of /FigKernelScripts/fig_net.pl

Parent Directory Parent Directory | Revision Log Revision Log


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

1 : efrank 1.1 # -*- perl -*-
2 :     use Carp;
3 :     use Data::Dumper;
4 :     use Time::HiRes qw(gettimeofday);
5 :    
6 :     use FIGnet;
7 :     use FIG;
8 :    
9 :     my($user);
10 :    
11 :     # usage: fig $url [-echo] [-time] [command]
12 :    
13 :     defined($url = shift @ARGV)
14 :     || die "usage: fig $url [-echo] [-time] [command]";
15 :    
16 :     $figN = new FIGnet($url);
17 :     $fig = new FIG;
18 :    
19 :     $echo = 0;
20 :     $time_cmds = 0;
21 :     while ((@ARGV > 0) && ($ARGV[0] =~ /^-/))
22 :     {
23 :     $arg = shift @ARGV;
24 :     if ($arg =~ /^-time/i) { $time_cmds = 1 }
25 :     if ($arg =~ /^-echo/i) { $echo = 1 }
26 :     }
27 :    
28 :     my($t1,$t2);
29 :     if (@ARGV > 0) { $req = join( " ", @ARGV ); }
30 :     while ( (defined($req) && $req) || ($req = &get_req) )
31 :     {
32 :     if ($time_cmds)
33 :     {
34 :     $t1 = gettimeofday;
35 :     }
36 :    
37 :     if ($req =~ /^\s*genomes(\s+(\S.*\S))?\s*$/)
38 :     {
39 :     $pat = $2;
40 :     foreach $genome ($figN->genomes)
41 :     {
42 :     my $genus_species = $fig->genus_species($genome);
43 :     if ((! $pat) || ($genus_species =~ /$pat/))
44 :     {
45 :     print join("\t",(&padded($genome,15),$genus_species)),"\n";
46 :     }
47 :     }
48 :     print "\n";
49 :     }
50 :     elsif ($req =~ /^\s*map_to_ecs\s+(\S+)\s*$/)
51 :     {
52 :     print join("\n",$figN->map_to_ecs($1)),"\n\n";
53 :     }
54 :     elsif ($req =~ /^\s*all_maps\s*$/)
55 :     {
56 :     @maps = $figN->all_maps;
57 :     foreach $map (@maps)
58 :     {
59 :     print "$map: ",$fig->map_name($map),"\n";
60 :     }
61 :     print "\n";
62 :     }
63 :     elsif ($req =~ /^\s*all_compounds\s*$/)
64 :     {
65 :     @compounds = $figN->all_compounds;
66 :     foreach $compound (@compounds)
67 :     {
68 :     my @tmp = $fig->names_of_compound($compound);
69 :     print "$compound: $tmp[0]\n";
70 :     }
71 :     print "\n";
72 :     }
73 :     elsif ($req =~ /^\s*all_reactions\s*$/)
74 :     {
75 :     @reactions = $figN->all_reactions;
76 :     foreach $reaction (@reactions)
77 :     {
78 :     $tmp = $fig->displayable_reaction($reaction);
79 :     print "$tmp\n";
80 :     }
81 :     print "\n";
82 :     }
83 :     elsif ($req =~ /^\s*reversible\s+(\S+)\s*$/)
84 :     {
85 :     $rid = $1;
86 :     $rev = $figN->reversible($rid) ? "reversible" : "not reversible";;
87 :     $displayable = $fig->displayable_reaction($rid);
88 :     print "$rev\n$displayable\n\n";
89 :     }
90 :     elsif ($req =~ /^\s*catalyzed_by\s+(\S+)\s*$/)
91 :     {
92 :     $rid = $1;
93 :     @ecs = $figN->catalyzed_by($rid);
94 :     $displayable = $fig->displayable_reaction($rid);
95 :     print "$displayable\n";
96 :     foreach $ec (@ecs)
97 :     {
98 :     $x = $fig->expand_ec($ec);
99 :     print "$x\n";
100 :     }
101 :     print "\n";
102 :     }
103 :     elsif ($req =~ /^\s*catalyzes\s+(\S+)\s*$/)
104 :     {
105 :     $ec = $1;
106 :     @rids = $figN->catalyzes($ec);
107 :     print $fig->expand_ec($ec),"\n";
108 :     foreach $rid (@rids)
109 :     {
110 :     $displayable = $fig->displayable_reaction($rid);
111 :     print "$displayable\n";
112 :     }
113 :     print "\n";
114 :     }
115 :     elsif ($req =~ /^\s*reaction2comp\s+(\S+)\s+(\d)\s*$/)
116 :     {
117 :     $rid = $1;
118 :     $which = $2;
119 :     @tmp = $figN->reaction2comp($rid,$which);
120 :     print &Dumper(\@tmp);
121 :     $displayable = $fig->displayable_reaction($rid);
122 :     print "$displayable\n\n";
123 :     }
124 :     elsif ($req =~ /^\s*names_of_compound\s+(\S+)\s*$/)
125 :     {
126 :     $cid = $1;
127 :     @names = $figN->names_of_compound($cid);
128 :     foreach $name (@names)
129 :     {
130 :     print "$name\n";
131 :     }
132 :     }
133 :     elsif ($req =~ /^\s*comp2react\s+(\S+)\s*$/)
134 :     {
135 :     $cid = $1;
136 :     @rids = $figN->comp2react($cid);
137 :     foreach $rid (@rids)
138 :     {
139 :     print $fig->displayable_reaction($rid),"\n";
140 :     }
141 :     }
142 :     elsif ($req =~ /^\s*names_of_compounds\s*$/)
143 :     {
144 :     foreach $x ($figN->names_of_compounds)
145 :     {
146 :     ($cid,$names) = @$x;
147 :     print "$cid\n";
148 :     foreach $name (@$names)
149 :     {
150 :     print "\t$name\n";
151 :     }
152 :     print "\n";
153 :     }
154 :     }
155 :     elsif ($req =~ /^\s*seqs_with_roles_in_genomes\s+(\S+)\s+(\S+)\s+(\S+)\s*$/)
156 :     {
157 :     $genomesF = $1;
158 :     $rolesF = $2;
159 :     $who = $3;
160 :     $genomes = [map { chop; $_ } `cat $genomesF`];
161 :     $roles = [map { chop; $_ } `cat $rolesF`];
162 :     print &Dumper($figN->seqs_with_roles_in_genomes($genomes,$roles,$who));
163 :     print "\n";
164 :     }
165 :     elsif ($req =~ /^\s*h\s+(\S+)/)
166 :     {
167 :     if (-s "Help/$1")
168 :     {
169 :     @tmp = `cat Help/$1`;
170 :     print "\n",join("",@tmp),"\n";
171 :     }
172 :     else
173 :     {
174 :     print "sorry, no help for $1\n\n";
175 :     }
176 :     }
177 :     else
178 :     {
179 :     print "invalid command\n";
180 :     }
181 :     print "\n";
182 :     $req = "";
183 :    
184 :     if ($time_cmds)
185 :     {
186 :     $t2 = gettimeofday;
187 :     print $t2-$t1," seconds to execute command\n\n";
188 :     }
189 :     }
190 :     sub padded {
191 :     my($x,$n) = @_;
192 :    
193 :     if (length($x) < $n)
194 :     {
195 :     return $x . (" " x ($n - length($x)));
196 :     }
197 :     return $x;
198 :     }
199 :    
200 :     sub get_req {
201 :     my($x);
202 :    
203 :     print "?? ";
204 :     $x = <STDIN>;
205 :     while (defined($x) && ($x =~ /^h$/i) )
206 :     {
207 :     &help;
208 :     print "?? ";
209 :     $x = <STDIN>;
210 :     }
211 :    
212 :     if ((! defined($x)) || ($x =~ /^\s*[qQxX]/))
213 :     {
214 :     return "";
215 :     }
216 :     else
217 :     {
218 :     if ($echo)
219 :     {
220 :     print ">> $x\n";
221 :     }
222 :     return $x;
223 :     }
224 :     }
225 :    
226 :     sub help {
227 :     print <<END;
228 :     Those not implemented yet are marked with an *:
229 :    
230 :     * add_annotation FID User [ prompted for annotation; terminate with "." at start of line ]
231 :     * add_chromosomal_clusters File
232 :     * add_pch_pins File
233 :     all_maps
234 :     all_protein_families
235 :     * assign_function PEG User [conf=X] Function
236 :     * assign_functionF User File
237 :     * auto_assign PEG [Seq]
238 :     * blast PEG [against nr]
239 :     * cas cid
240 :     * cas_to_cid cas
241 :     catalyzed_by rid
242 :     catalyzes role
243 :     comp2react cid
244 :     * contig_ln Genome Contig
245 :     * coupling_and_evidence Fid Bound SimCutoff CouplingCutoff
246 :     * dna_seq Genome Loc
247 :     * dsims FastaFile [MaxN MaxPsc Select] *** select defaults to raw
248 :     * ec_to_maps EC
249 :     * family_function Family
250 :     * feature_annotations FID
251 :     * feature_location Fid
252 :     all_compounds
253 :     * all_features Genome Type
254 :     all_reactions
255 :     * function_of ID [all]
256 :     * genes_in_region Org Contig Beg End
257 :     * genome_of Prot
258 :     genomes [Pat]
259 :     * genome_version Genome
260 :     * genus_species Org
261 :     * get_translation ID
262 :     h [command] *** h h for help on how to use help ***
263 :     * ids_in_family Family
264 :     * in_cluster_with Peg
265 :     * in_family Fid
266 :     map_to_ecs map
267 :     * map_name map
268 :     * mapped_prot_ids ID
269 :     names_of_compound cid
270 :     names_of_compounds
271 :     * neighborhood_of_role Role
272 :     * org_of ID
273 :     reaction2comp rid
274 :     * restricted
275 :     reversible rid
276 :     seqs_with_roles_in_genomes GenomesFile RolesFile Who
277 :     * sims ID [MaxN MaxPsc Select] *** select defaults to raw
278 :     * sz_family Family
279 :     * taxonomy_of Org
280 :     * translation_length ID
281 :    
282 :     END
283 :     }

MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3