[Bio] / FigTutorial / SEED_administration_issues.html Repository:
ViewVC logotype

Annotation of /FigTutorial/SEED_administration_issues.html

Parent Directory Parent Directory | Revision Log Revision Log


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

1 : olson 1.2 <h1>SEED Administration</h1>
2 : gdpusch 1.8
3 :     <p>
4 :     This tutorial discusses a number of issues that you will need to know about
5 :     in order to install, share, and maintain your SEED installation.
6 :     It is organized as follows:
7 :     </p>
8 :    
9 :     <ul>
10 :     <li><A HREF="#backups">
11 :     Backing Up Your Data
12 :     </A>
13 :    
14 :     <li><A HREF="#copying">
15 :     Copying a Version of the SEED
16 :     </A>
17 :    
18 :     <li><A HREF="#multiple_copies">
19 :     Running Multiple Copies of the SEED
20 :     </A>
21 :    
22 :     <li><A HREF="#adding_genomes">
23 :     Adding a New Genome to an Existing SEED
24 :     </A>
25 :    
26 :     <li><A HREF="#sims">
27 :     Computing Similarities
28 :     </A>
29 :    
30 :     <li><A HREF="#deleting_genomes">
31 :     Deleting Genomes from a Version of the SEED
32 :     </A>
33 :    
34 :     <li><A HREF="#reintegrate_sims">
35 :     Periodic Reintegration of Similarities
36 :     </A>
37 :    
38 :     <li><A HREF="#pins_and_clusters">
39 :     Computing "Pins" and "Clusters"
40 :     </A>
41 :    
42 :     </ul>
43 :    
44 :    
45 :     <h2 id="backups">Backing Up Your Data</h2>
46 : olson 1.1 The data and code stored within the SEED are organized as follows:
47 :     <pre>
48 :     ~fig on a Mac: /Users/fig; on Linux: /home/fig
49 :     FIGdisk
50 :     dist source code
51 :     FIG
52 :     Tmp temporary files
53 :     Data data in readable form
54 :     </pre>
55 : olson 1.2 <ol><li>
56 : olson 1.1 The directory <b>FIGdisk</b> holds both the code and data for the
57 :     SEED. The data is loaded into a database system that stores the data
58 :     in a location external to FIGdisk, but otherwise a running SEED is
59 :     encapsulated within FIGdisk. A symbolic link to FIGdisk is maintained
60 :     in the directory ~fig.
61 :     <br>
62 :     <li>
63 :     Within FIGdisk there are a two key directories:
64 :     <br>
65 :     <br><ol><li>
66 :     <b>dist</b> contains the source code, and
67 :    
68 :     <li>
69 :     <b>FIG</b> contains the execution environment and Data.
70 :     </ol>
71 :     <br>
72 :     <li>
73 :     Within FIG, there are a number of directories. The most important are
74 :     <br>
75 :     <br>
76 :     <ol>
77 :     <li>
78 :     <b>Data</b>, which contains all of the data in a human-readable form,
79 :     and
80 :     <br>
81 :     <br>
82 :     <li>
83 :     <b>Tmp</b>, which contains the temporary files built by SEED in
84 :     response to commands.
85 :     </ol>
86 :     </ol>
87 :     <br>
88 :     Hence, to backup your data, you should simply copy the Data
89 :     directory. It should be backed up to a separate disk. Suppose that
90 :     /Volumes/Backup is a backup disk. Then,
91 :     <br>
92 :     <pre>
93 :     cp -pRP /Users/fig/FIGdisk/FIG/Data /Volumes/Backup/Data.Backup
94 :     gzip -r /Volumes/Backup/Data.Backup
95 :     </pre>
96 :     <br>
97 :     would be a reasonable way to make a backup. The copy preserves
98 :     permissions, copies recursively, and does not follow symbolic links.
99 :     <br>
100 : gdpusch 1.8 <h2 id="copying">Copying a Version of the SEED</h2>
101 : olson 1.1
102 :     To make a second copy of the SEED (either for a friend or for yourself), you should use tar
103 :     to preserve a few symbolic links (which are relative, not absolute; this means that they can
104 :     be copied while still preserving the integrity of the whole system).
105 :     So, suppose that you have a FIGdisk in /Volumes/From/FIGdisk.Jan8 and you wish to copy it
106 :     to /Volumes/To. Use
107 :     <pre>
108 :     cd /Volumes/From
109 :     tar cf - FIGdisk.Jan8 | (cd /Volumes/To; tar xf -)
110 :     </pre>
111 :     <p>This should produce the desired copy. In this case, suppose that we are in a
112 :     Mac OS X
113 :     environment, and <b>From</b> and <b>To</b> are firewire disks. To install the system on a friends
114 :     Mac, you would unmount <b>To</b>, plug it into the new machine, and then set the symbolic link to the active
115 :     FIGdisk using
116 :     <br>
117 :     </p>
118 :     <table border="1" bgcolor="#CCCCCC">
119 :     <tr>
120 :     <td width="403"><font face="Courier New, Courier, mono">cd ~fig</font></td>
121 :     <td width="285">&nbsp;</td>
122 :     </tr>
123 :     <tr>
124 :     <td><font face="Courier New, Courier, mono">rm FIGdisk</font></td>
125 :     <td># fails if there is no existing FIGdisk on the machine</td>
126 :     </tr>
127 :     <tr>
128 :     <td><font face="Courier New, Courier, mono">ln -s /Volumes/To/FIGdisk.Jan8 FIGdisk</font></td>
129 :     <td>&nbsp;</td>
130 :     </tr>
131 :     <tr>
132 : olson 1.2 <td><font face="Courier New, Courier, mono">bash</font></td>
133 :     <td>Switch to using the bash shell</td>
134 :     </tr>
135 :     <tr>
136 : olson 1.1 <td><font face="Courier New, Courier, mono">cd FIGdisk</font></td>
137 :     <td>&nbsp;</td>
138 :     </tr>
139 :     <tr>
140 : olson 1.2 <td height="23"><font face="Courier New, Courier, mono">cp CURRENT_RELEASE DEFAULT_RELEASE</font></td>
141 : olson 1.1 <td># Causes the new configuration to use the code that was running in the
142 :     original installation</td>
143 :     </tr>
144 : olson 1.2 <tr>
145 :     <td height="23"><font face="Courier New, Courier, mono">./configure <em>arch-name</em></font></td>
146 :     <td># Configure the new SEED disk for architecture <em>arch-name</em>. </td>
147 :     </tr>
148 :     <tr>
149 :     <td height="23"><font face="Courier New, Courier, mono"> source config/fig-user-env.sh <br>
150 :     </font></td>
151 :     <td># Set up the environment for using the SEED</td>
152 :     </tr>
153 :     <tr>
154 :     <td height="23"><font face="Courier New, Courier, mono">start-servers <br>
155 :     </font></td>
156 :     <td># Start the database server and registration servers</td>
157 :     </tr>
158 :     <tr>
159 :     <td height="23"><font face="Courier New, Courier, mono">init_FIG <br>
160 :     </font></td>
161 :     <td># Initialize a new relational database</td>
162 :     </tr>
163 :     <tr>
164 :     <td height="23"><font face="Courier New, Courier, mono">fig load_all</font></td>
165 :     <td># Load the database from the SEED data files. This may take several hours</td>
166 :     </tr>
167 :     </table>
168 :     <p>At this point, the new SEED copy should be ready to use. You only need to
169 :     perform the configure, init_FIG, and fig load_all steps once after installing
170 :     a new copy of the SEED. After a reboot or other clean start of the computer,
171 :     you will only have to do these steps:</p>
172 : olson 1.3 <table border="1" bgcolor="#EEEEEE">
173 : olson 1.2 <tr>
174 :     <td width="403"><font face="Courier New, Courier, mono">cd ~fig/FIGdisk</font></td>
175 :     <td width="285">&nbsp;</td>
176 :     </tr>
177 :     <tr>
178 :     <td><font face="Courier New, Courier, mono">bash</font></td>
179 :     <td>Switch to using the bash shell</td>
180 :     </tr>
181 :     <tr>
182 :     <td height="23"><font face="Courier New, Courier, mono"> source config/fig-user-env.sh <br>
183 :     </font></td>
184 :     <td># Set up the environment for using the SEED</td>
185 :     </tr>
186 :     <tr>
187 :     <td height="23"><font face="Courier New, Courier, mono">start-servers <br>
188 :     </font></td>
189 :     <td># Start the database server and registration servers</td>
190 :     </tr>
191 : olson 1.1 </table>
192 : olson 1.2 <p>Upon setting up a new computer for running SEED, you should read the full
193 :     documentation for SEED installation, as it has a number of platform-specific
194 :     modifications that need to be performed. This document can currently be found
195 :     at the following
196 :     location in the SEED Wiki: </p>
197 : olson 1.1 <blockquote>
198 :     <p><a href="http://www-unix.mcs.anl.gov/SEEDWiki/moin.cgi/SeedInstallationInstructions"> http://www-unix.mcs.anl.gov/SEEDWiki/moin.cgi/SeedInstallationInstructions</a></p>
199 :     </blockquote>
200 : gdpusch 1.8 <h2 id="multiple_copies">Running Multiple Copies of the SEED</h2>
201 : olson 1.1
202 :     For individual users that use the SEED to support comparative analysis, a single copy is completely
203 :     adequate. Adding genomes can usually be done without disrupting normal use, and a very occasional major
204 :     reorganization that runs over the weekend is not a big deal.
205 :     <p>
206 :     The situation is somewhat different when the system is being used to support a major sequencing/annotation
207 :     effort. In this case, you have a user community that is sensitive to disruptions of service, and you
208 :     have frequent demands to update versions of data. In this case, it is best to have two systems: the
209 :     <b>production system</b> is used to support the larger user community, and the <b>update system</b> is
210 : overbeek 1.7 used to prepare updated versions of the system.
211 :     New genomes are added to the update system, and then periodically a
212 :     revised Data directory is extracted to update the production system.
213 :     Even so, work stoppages of a few hours will occur when
214 :     new releases are swapped in.
215 :     <p>
216 :     This use of an "update" and a "production" system is quite analogous
217 :     to running a production system which is occasionally updated from new
218 :     Data DVDs (which FIG normally makes available about every 4-6 months).
219 :     That is, in both cases you are updating a production system from a
220 :     newly created <b>Data</b> directory that is lacking assignments and
221 :     annotations that exist on your production system. However, if you have
222 :     added new genomes to the production system (that are not part of the
223 :     releases you may acquire via DVDs), you should get the new release,
224 :     install the versions of your local genomes, and then do this update
225 :     procedure.
226 :     <p>
227 :     The plan we propose is to build a completely encapsulated new version
228 :     of the system, then capture updates from the old production system, update
229 :     the new production system, and then make the new version the actual
230 :     production system. This last step amounts to altering a symbolic link
231 :     to point at the new production system rather than the old. This has
232 :     the virtue of ease of recovery -- that is, if something goes wrong you
233 :     can flip back to the old system.
234 :     The actual steps are as follows:
235 : olson 1.1 <ol>
236 : gdpusch 1.9
237 :     <li> First, make sure that you are in the BASH shell by typing "echo $SHELL";
238 :     if the result is not "bash", type "bash" to enter the BASH shell.
239 :    
240 :     <li> Next, check that the result of typing "which perl" is the version
241 :     of perl owned by the SEED; it should look something like
242 :     <pre>
243 :     /Users/fig/FIGdisk/env/mac/bin/perl
244 :     </pre>
245 :     although the exact results will depend on where your existing copy
246 :     of the SEED is installed, whether your platform is a Macintosh or LINUX,
247 :     etc. If the result does not look similar to the above, type:
248 :     <pre>
249 :     source Path_to_FIGdisk/config/fig-user-env.sh
250 :     </pre>
251 :     to setup your FIG environment properly.
252 :    
253 :     <li> Next, make a copy of the Code Distribution Environment (from a DVD
254 : overbeek 1.7 or via the network). Suppose that we have made such a directory in
255 :     CodeDistEnv. Then use,
256 :     <pre>
257 :     cd CodeDistEnv
258 :     ./install-code TargetDirectory
259 :     </pre>
260 :     where <b>TargetDirectory</b> is where you wish to build the new
261 :     production version. We recommend calling it something like
262 :     <b>FIGdisk.July24</b>.
263 :    
264 : gdpusch 1.6 <li> Stop all work on the production machine for the duration of the update.
265 :     You do this by clicking on the "Seed Control Panel" link,
266 :     and then entering an explanatory message in the text box
267 :     and clicking on the "Disable SEED server" button.
268 : gdpusch 1.9
269 : gdpusch 1.6 <li> You now need to capture the assignments, annotations and
270 :     subsystems work that has been done on the production machine.
271 :     To do this, you need to know when the last production release
272 :     was installed. Suppose that it was July 1, 2004.
273 : gdpusch 1.9 If that was the date, we recommend that you run
274 : gdpusch 1.6 <pre>
275 :     <b>extract_data_for_syncing_after_update 7/1/2004 /tmp/sync.data.july.1.2004</b>
276 :     </pre>
277 : gdpusch 1.9
278 : gdpusch 1.6 This will capture your updates and save them in the directory
279 : gdpusch 1.9 /tmp/sync.data.july.1.2004.<br>
280 :    
281 : overbeek 1.7 <li>Now, you need to stop the existing production system using
282 :     <pre>
283 :     ~/FIGdisk/bin/stop-servers
284 :     </pre>
285 :    
286 :     <li>Now, you need to configure the runtime environment for the system
287 :     you are running on.
288 :     To do this, use
289 :     <pre>
290 :     cd TargetDirectory
291 :     ./configure MacOrLinux
292 :     </pre>
293 :     where <b>MacOrLinux</b> must be a currently supported environment.
294 :     Those that are supported on July 24, 2004 are <b>mac</b> for
295 :     Macintoshes running panther, <b>mac-jaguar</b> for those that have not
296 :     upgraded to panther, and <b>linux-postgres</b>.
297 :    
298 :     <li>Now, you need to insert the new Data directory into the newly
299 :     constructed version of the SEED. To do this use
300 :     <pre>
301 : gdpusch 1.9 chmod -R 777 TheNewData
302 : overbeek 1.7 cd TargetDirectory/FIG
303 :     ln -s TheNewData Data
304 :     </pre>
305 :     where TheNewData is the new Data directory, which normally comes from the
306 :     update system. If you acquired a new Data directory via Data DVDs, you
307 :     will need to unpack them using the README instructions, but what
308 :     results is a new version of the <b>Data</b> directory.
309 : gdpusch 1.9
310 : overbeek 1.7 <li>Now, you need to start the servers in order to load the databases
311 :     with the new release using
312 :     <pre>
313 :     cd TargetDirectory/bin
314 :     ./start-servers
315 :     cd ..
316 :     source config/fig-user-env.sh
317 :     init_FIG
318 :     fig load_all
319 :     </pre>
320 :     This last command will run for several hours.
321 : gdpusch 1.9
322 : gdpusch 1.6 <li> Now, you need to capture the changes made to the old production
323 :     version using something like
324 :     <pre>
325 :     <b>sync_new_system /tmp/sync.data.july.1.2004 make-assignments</b>
326 :     </pre>
327 : overbeek 1.7 <li>Run
328 :     <pre>
329 :     index_annotations
330 :     index_subsystems
331 :     make_indexes
332 :     </pre>
333 : gdpusch 1.9
334 :     <li> Now, finally, you should alter the symbolic link in <i>~fig</i> to
335 : overbeek 1.7 the current FIGdisk using something like:
336 :     <pre>
337 :     cd ~fig
338 :     rm FIGdisk # should be removing a symbolic link to the current SEED
339 :     ln -s TargetDirectory FIGdisk
340 :     </pre>
341 :     That should make the new SEED the one available through the Web interface.
342 : gdpusch 1.9
343 : gdpusch 1.6 <li> You should now bring your update system to the same state as the
344 :     production system. This can be done by making sure that
345 :     <b>/tmp/sync.data.july.1.2004</b> is accessible to the update system.
346 :     If the production and update systems are run on the same machine, then
347 :     the directory is already there. If not, copy it to <b>/tmp</b> on the
348 :     update machine. Then run
349 :     <br>
350 :     <pre>
351 :     <b>sync_new_system /tmp/sync.data.july.1.2004 make-assignments</b>
352 :     </pre>
353 :     <br>
354 :     on the update machine.
355 : olson 1.1 </ol>
356 : overbeek 1.7 <p>
357 :    
358 : olson 1.1 Our experience is that anytime a group wishes to share a common production environment,
359 : overbeek 1.4 this 2-system approach is the way to do it. You can, if necessary,
360 :     put both systems on the same physical machine. This does require some
361 :     special handling in setting up two different <b>FIGdisk</b>
362 :     directories. We recommend using <b>FIGdisk.production</b> and
363 :     <b>FIGdisk.update</b>. However, in general it makes sense to use two
364 :     separate physical machines, for backup if nothing else. The update
365 :     system can usually be run on a $2000 (or less) box, although it is
366 :     desirable to spend a little more and get at least 1 gigabyte of main
367 :     memory and 200 gigabytes of external disk.
368 : olson 1.1 <br>
369 : gdpusch 1.8 <h2 id="adding_genomes">Adding a New Genome to an Existing SEED</h2>
370 : olson 1.1 To add a new genome to a running SEED is fairly easy, but there are a
371 :     number of details that do have to be handled with care.
372 :     <p>
373 :     The first thing to note is that the SEED does not include tools to call genes -- you are expected
374 :     to provide gene calls. This may change at some point, but for now you must call your own genes. A
375 :     number of good tools now exist in the public domain, and you will need to find one that seems adequate
376 :     for your needs.
377 :     <p>
378 :     Let us now
379 :     cover how to prepare the actual data. You need to construct a directory (in somewhere like ~fig/Tmp)
380 :     of the following form:
381 :     <br>
382 :     <table width="100%">
383 :     <tr>
384 :     <td><tt>GenomeId</tt></td>
385 :     <td></td>
386 :     <td></td>
387 :     <td></td>
388 :     <td>of the form xxxx.y where xxxx is the taxon ID and y is an integer</td>
389 :     </tr>
390 :    
391 :     <tr>
392 :     <td></td>
393 :     <td><tt>PROJECT</tt></td>
394 :     <td></td>
395 :     <td></td>
396 :     <td> a file containg a description of the source of the data</td>
397 :     </tr>
398 :    
399 :     <tr>
400 :     <td></td>
401 :     <td><tt>GENOME</tt></td>
402 :     <td></td>
403 :     <td></td>
404 :     <td>a file containing a single line identifying the genus, species and strain</td>
405 :     </tr>
406 :    
407 :     <tr>
408 :     <td></td>
409 :     <td><tt>TAXONOMY</tt></td>
410 :     <td></td>
411 :     <td></td>
412 :     <td>a file containing a single line containing the NCBI taxonomy</td>
413 :     </tr>
414 :    
415 :     <tr>
416 :     <td></td>
417 :     <td><tt>RESTRICTIONS</tt></td>
418 :     <td></td>
419 :     <td></td>
420 :     <td>a file containing a description of distribution restrictions (optional)</td>
421 :     </tr>
422 :    
423 :     <tr>
424 :     <td></td>
425 :     <td><tt>CONTIGS</tt></td>
426 :     <td></td>
427 :     <td></td>
428 :     <td>contigs in fasta format</td>
429 :     </tr>
430 :    
431 :     <tr>
432 :     <td></td>
433 :     <td><tt>assigned_functions</tt></td>
434 :     <td></td>
435 :     <td></td>
436 :     <td>function assignments for the protein-encoding genes (optional)</td>
437 :     </tr>
438 :    
439 :     <tr>
440 :     <td></td>
441 :     <td><tt>Features</tt></td>
442 :     </tr>
443 :    
444 :     <tr>
445 :     <td></td>
446 :     <td></td>
447 :     <td><tt>peg</tt></td>
448 :     </tr>
449 :    
450 :     <tr>
451 :     <td></td>
452 :     <td></td>
453 :     <td></td>
454 :     <td><tt>tbl</tt></td>
455 :     <td>describes locations and aliases for the protein-encoding genes</td>
456 :     </td>
457 :     </tr>
458 :    
459 :     <tr>
460 :     <td></td>
461 :     <td></td>
462 :     <td></td>
463 :     <td><tt>fasta</tt></td>
464 :     <td>fasta file of translations of the protein-encoding genes</td>
465 :     </td>
466 :     </tr>
467 :    
468 :     <tr>
469 :     <td></td>
470 :     <td></td>
471 :     <td><tt>rna</tt></td>
472 :     </tr>
473 :    
474 :     <tr>
475 :     <td></td>
476 :     <td></td>
477 :     <td></td>
478 :     <td><tt>tbl</tt></td>
479 :     <td>describes locations and aliases for the rna-encoding genes</td>
480 :     </td>
481 :     </tr>
482 :    
483 :     <tr>
484 :     <td></td>
485 :     <td></td>
486 :     <td></td>
487 :     <td><tt>fasta</tt></td>
488 :     <td>fasta file of the DNA corresponding to the genes</td>
489 :     </td>
490 :     </tr>
491 :    
492 :    
493 :     </table>
494 :    
495 :     <!--
496 :    
497 :     <pre>
498 :     GenomeID of the form xxxx.y where xxxx is the taxon ID and y is an integer
499 :    
500 :     PROJECT a file containg a description of the source of the data
501 :    
502 :     GENOME a file containing a single line identifying the genus, species and strain
503 :    
504 :     TAXONOMY a file containing a single line containing the NCBI taxonomy
505 :    
506 :     RESTRICTIONS a file containing a description of distribution restrictions (optional)
507 :    
508 :     contigs contigs in fasta format
509 :    
510 :     assigned_functions function assignments for the protein-encoding genes (optional)
511 :    
512 :     Features
513 :    
514 :     peg
515 :     tbl descibes locations and aliases for the protein-encoding genes
516 :    
517 :     fasta fasta file of translations of the protein-encoding genes
518 :    
519 :     rna
520 :     tbl describes locations and aliases for the rna-encoding genes
521 :    
522 :     fasta fasta file of the DNA corresponding to the genes
523 :     </pre>
524 :     -->
525 :     <br>
526 :     <br>
527 :     Let us expand on this very brief description:
528 :     <ol>
529 :     <li>
530 :     The name of the directory must be of the form xxxx.y where xxxx is the
531 :     taxon ID, and y is a sequence number. For example, 562.1 might be
532 :     used for <i>E.coli</i>, since 562 is the NCBI taxon ID for
533 :     <i>Escherichia coli</i>. The sequence number (y) is used to
534 :     distinguish multiple genomes having the same taxon ID.
535 :     <br><br>
536 :     <li>
537 :     The assigned_functions file contains assignments of function for the
538 :     protein-encoding genes. is of the form
539 :     <pre>
540 :     Id\tFunction\tConfidence (\t stands for a tab character)
541 :     </pre>
542 :     The Id must be a valid PEG Id. These are of the form:
543 :     <pre>
544 :     fig|xxxx.y.peg.z
545 :     </pre>
546 :     where xxxx.y is the genome Id, and z is an integer that uniquely distinguishes
547 :     the peg (protein-encoding gene).
548 :     <br>
549 :     <i>Confidence</i> is a single character code:
550 :     <br>
551 :     <ul>
552 :     <li>a space for "normal"
553 :     <li>w for "weak"
554 :     <li>e for experimentally verified
555 :     <li>s for "strong evidence (but not experimental)"
556 :     </ul>
557 :     The second tab and the confidence code can be omitted (it will default to a space).
558 :     The assigned_functions file is optional. You can leave it blank and, after adding the genome
559 :     to the SEED, ask for automated assignments.
560 :     <br><br>
561 :     <li>
562 :     The tbl files specify the locations of genes, as well as any aliases. Each line in a tbl line
563 :     is of the form
564 :     <br>
565 :     <pre>
566 :     Id\tLocation\tAliases (the aliases are separated by tabs)
567 :     </pre>
568 :     The Id must conform to the fig|xxxx.y.peg.z format described above. The <i>Location</i> is of the form
569 :     <br>
570 :     <pre>
571 :     L1,L2,L3...Ln
572 :    
573 :     where each Li describes a region on a contig and is of the form
574 :    
575 :     <i>Contig_Begin_End</i> where
576 :    
577 :     Contig is the Id of the contig,
578 :     Begin is the position of the first character, and
579 :     End is the position of the last character
580 :     </pre>
581 :     <ul>
582 :     <li>if Begin > End, the region being described is on the complementary strand, and
583 :     <li>the End position is the last character preceding the stop codon (i.e., the region
584 :     corresponding to a protein-encoding gene is thought of as including all bases from the
585 :     first base of the start codon to the last base before the stop codon.
586 :     </ul>
587 :     For example,
588 :     <pre>
589 :     fig|562.1.peg.15 Escherichia_coli_K12_14168_15295 dnaJ b0015 sp|P08622 gi|16128009
590 :     </pre>
591 :     describes the <i>dnaJ</i> gene encoded on the positive strand from 14168 through 15295 on the contig Escherichia_coli_K12.
592 :     The gene is from the genome 562.1, and it has 4 specified aliases.
593 :     <li>
594 :     The fasta files must have gene Ids that match tbl file entries. The <i>peg</i> fasta file contains translations,
595 :     while the <i>rna</i> fasta file contains DNA sequences.
596 :     <li>
597 :     Both the <i>peg</i> and the <i>rna</i> subdirectories are optional.
598 :     </ol>
599 :     <br>
600 :     The SEED provides a utility that can be used to produce such a directory from a GenBank entry. Thus,
601 :     <br>
602 :     <pre>
603 :     parse_genbank 562.4 ~/Tmp/562.4 < genbank.entry.for.a.new.E.coli.genome
604 :     </pre>
605 :     would attempt to produce a properly formatted directory (~/Tmp/562.4) containing
606 :     the data encoded in the GenBank entry from the file <i>genbank.entry.for.a.new.E.coli.genome</i>.
607 :     This script is far from perfect, and there is huge variance in encodings in GenBank
608 :     files. So, use it at your own risk (and, manually check the output).
609 :     <p>
610 :     You would be well advised to look at some of the subdirectories included in the FIGdisk/FIG/Data/Organisms directory
611 :     to see examples of how it should be done.
612 :     <p>
613 :     So, supposing that you have built a valid directory (say, <i>/Users/fig/Tmp/562.4</i>), you can add the genome using
614 :     <pre>
615 :     fig add_genome /Users/fig/Tmp/562.4
616 :     </pre>
617 :     <br>
618 :     The <i>add_genome</i> request will add your new genome and queue a computational request that similarities
619 :     be computed for the protein-encoding genes.
620 :    
621 : gdpusch 1.8 <h2 id="sims">Computing Similarities</h2>
622 : olson 1.1
623 :     Adding a genome does not automatically get similarities computed for the new genome; it queues the request.
624 :     To get the similarities actually computed, you need to establish a computational environment on which
625 :     the blast runs will be made, and then initiate a request on the machine running the SEED.
626 :     <p>
627 :     This is not a completely trivial process because there are a variety of different ways to compute
628 :     similarities:
629 :     <ol>
630 :     <li> You can just compute them on the system running the SEED. This can take several days, but this
631 :     is often a perfectly reasonable way to get the job done.
632 :     <li>Alternatively, you may be in an environment where you have a set of networked machines (say, 4-5 machines),
633 :     and you wish to just exploit these machines to do the blast runs.
634 :     <li> Finally, you may be dealing with a large genome or genomes (and, hence, the need for many days of computation).
635 :     In this case, it makes sense to utilize a large computational resource, and this resource may either
636 :     be a local cluster or a service provided over the net.
637 :     </ol>
638 :     <br>
639 :     To establish the flexibility needed to support all of these alternatives, we implemented the following
640 :     approach:
641 :     <ul>
642 :     <li>
643 :     The user can describe one or more <b>similarity computational environments</b>
644 :     in a configuration file called <i>similarities.config</i>. The details of this encoding
645 :     are beyond the scope of this document.
646 :     These environments all represent potential ways to compute similarities.
647 :     <br>
648 :     <li>
649 :     When a SEED systems administrator (usually, the normal SEED user) wishes to run similarities,
650 :     he runs a program specifying a specific similarity computational environment. This causes all
651 :     the queued similarity requests to be batched up and sent off to the specified server (which may simply
652 :     be on the same machine). He would use the <b>generate_similarities</b> command specifying two parameters: the
653 :     first specifies a similarities computational environment, and the second specifies whether or not automated assignments
654 :     should be computed as the similarity computations complete and the results are installed.
655 :     As the similarities complete, they will automatically be installed. Further, if a set of similarities arrive
656 :     for a given protein-encoding gene, and if there is no current assignment of function for the gene,
657 :     an automated assignment may be computed. Whether or not such automated assignments are computed is determined
658 :     by the second parameter in the command used by the systems administrator to initiate the request. For example,
659 :     <pre>
660 :     generate_similarities local auto-assignments
661 :     </pre>
662 :     specifies a similarity computational environment labeled <i>local</i>, which presumably means "run the blast
663 :     requests on this machine", and requests automated assignments for all protein-encoding genes that currently either
664 :     have no assigned function or have an assigned function that is "hypothetical".
665 :     </ul>
666 :     <br>
667 :    
668 :     We anticipate that at least one major center (Argonne National Lab) and, perhaps, more will create well-defined
669 :     interfaces for handling high-volume requests. At FIG, we will maintain a set of instructions on how to set up
670 :     your configuration to exploit these resources.
671 :    
672 : gdpusch 1.8 <h2 id="deleting_genomes">Deleting Genomes from a Version of the SEED</h2>
673 : olson 1.1
674 :     There are two common instances in which one wishes to delete genomes from a running version of the SEED: one is
675 :     when you wish to replace an existing version of a genome (in which case the replacement is viewed as first
676 :     deleting the existing copy and then adding the new copy), and the second is when you wish to create a copy
677 :     of the SEED containing a subset of the entire collection of genomes.
678 :     <p>
679 :     To delete a set of genomes from a running version of the SEED, just use
680 :     <pre>
681 :     fig delete_genomes G1 G2 ...Gn (where G1 G2 ... Gn designates a list of genomes)
682 :     </pre>
683 :     For example,
684 :     <pre>
685 :     fig delete_genomes 562.1
686 :     </pre>
687 :     could be used to delete a single genome with a genome ID of 562.1.
688 :     <p>
689 :     To make a copy with some genomes deleted to give to someone else requires a little different approach.
690 :     To extract a set of genomes from an existing version of the SEED, you need to run the command
691 :     <pre>
692 :     extract_genomes Which ExistingData ExtractedData
693 :     </pre>
694 :    
695 :     The first argument is either the word "unrestricted" or the name of a file containing a list of
696 :     genome IDs (the genomes that are to be retained in the extraction). The second argument is
697 :     the path to the current Data directory. The third argument specifies the name of a directory
698 :     that is created holding the extraction. Thus,
699 :     <pre>
700 :     extract_genomes unrestricted /Users/fig/FIGdisk/FIG/Data /Volumes/Tmp/ExtractedData
701 :     </pre>
702 :     would created the extracted Data directory for you. If you wish to then produce a fully distributable
703 :     version of the SEED from the existing version and the extracted Data directory, you would
704 :     use
705 :     <pre>
706 :     make_a_SEED /Users/fig/FIGdisk /Volumes/Tmp/ExtractedData /Volumes/MyFriend/FIGdisk.ReadyToGo
707 :     rm -rf /Volumes/Tmp/ExtractedData
708 :     </pre>
709 :    
710 : gdpusch 1.8 <h2 id="reintegrate_sims">Periodic Reintegration of Similarities</h2>
711 : olson 1.1
712 :     When the initial SEED was constructed, similarities were computed. For most similarities of the form
713 :     "Id1 and Id2 are similar", entries were "recorded" for both Id1 and Id2. This is not always true,
714 :     since we truncate the number of similarities associated with any single Id (leaving us in a situation
715 :     in which we may have similarity recorded for Id1, but not Id2). When a genome is added, if Id1 was an added
716 :     protein-encoding gene (peg), then the similarity is "recorded" for Id1 but not Id2. This means that when looking
717 :     at genes from previously existing organisms, you never get links back to the added pegs. This is not totally
718 :     satisfactory.
719 :     <p>
720 :     Periodically, it is probably a good idea to "reinitegrate the similarities". This can be done by
721 :     just running
722 :     <pre>
723 :     reintegrate_sims
724 :     # update_sims /dev/null /dev/null ~/FIGdisk/FIG/Data/NewSims/* ; rm -f ~/FIGdisk/FIG/Data/NewSims/* index_sims
725 :     </pre>
726 :     The job will probably run for quite a while (perhaps as much as a day or two).
727 :    
728 : gdpusch 1.8 <h2 id="pins_and_clusters">Computing "Pins" and "Clusters"</h2>
729 : olson 1.1
730 :     The SEED displays potentially significant clusters on prokaryotic chromosomes. In the
731 :     process of finding preserved contiguity, it computes "pins", which are simply a set of genes
732 :     that are believed to be orthologs that cluster with similar genes. If you add your own genome,
733 :     you will probably want to compute and enter these into the active database. This can be done
734 :     using
735 :     <pre>
736 :     compute_pins_and_clusters G1 G2 G3 ...
737 :     </pre>
738 :     where the arguments are genome Ids. Thus,
739 :     <pre>
740 :     compute_pins_and_clusters 562.4
741 :     </pre>
742 :     would compute and add entries for all of the <i>pegs</i> in genome 562.4.

MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3