[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.8 - (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 : overbeek 1.7 <li>First make a copy of the Code Distribution Environment (from a DVD
237 :     or via the network). Suppose that we have made such a directory in
238 :     CodeDistEnv. Then use,
239 :     <br>
240 :     <pre>
241 :     cd CodeDistEnv
242 :     ./install-code TargetDirectory
243 :     </pre>
244 :     where <b>TargetDirectory</b> is where you wish to build the new
245 :     production version. We recommend calling it something like
246 :     <b>FIGdisk.July24</b>.
247 :    
248 : gdpusch 1.6 <li> Stop all work on the production machine for the duration of the update.
249 :     You do this by clicking on the "Seed Control Panel" link,
250 :     and then entering an explanatory message in the text box
251 :     and clicking on the "Disable SEED server" button.
252 :     <li> You now need to capture the assignments, annotations and
253 :     subsystems work that has been done on the production machine.
254 :     To do this, you need to know when the last production release
255 :     was installed. Suppose that it was July 1, 2004.
256 :     If that was the date, we recommend that you run<br><br>
257 :     <pre>
258 :     <b>extract_data_for_syncing_after_update 7/1/2004 /tmp/sync.data.july.1.2004</b>
259 :     </pre>
260 :     <br><br>
261 :     This will capture your updates and save them in the directory
262 :     /tmp/sync.data.july.1.2004.
263 : overbeek 1.7 <li>Now, you need to stop the existing production system using
264 :     <br>
265 :     <pre>
266 :     ~/FIGdisk/bin/stop-servers
267 :     </pre>
268 :     <br>
269 :    
270 :     <li>Now, you need to configure the runtime environment for the system
271 :     you are running on.
272 :     To do this, use
273 :     <br>
274 :     <pre>
275 :     cd TargetDirectory
276 :     ./configure MacOrLinux
277 :     </pre>
278 :     where <b>MacOrLinux</b> must be a currently supported environment.
279 :     Those that are supported on July 24, 2004 are <b>mac</b> for
280 :     Macintoshes running panther, <b>mac-jaguar</b> for those that have not
281 :     upgraded to panther, and <b>linux-postgres</b>.
282 :    
283 :     <li>Now, you need to insert the new Data directory into the newly
284 :     constructed version of the SEED. To do this use
285 :     <br>
286 :     <pre>
287 :     cd TargetDirectory/FIG
288 :     chmod -R 777 Data
289 :     ln -s TheNewData Data
290 :     </pre>
291 :     where TheNewData is the new Data directory, which normally comes from the
292 :     update system. If you acquired a new Data directory via Data DVDs, you
293 :     will need to unpack them using the README instructions, but what
294 :     results is a new version of the <b>Data</b> directory.
295 :     <li>Now, you need to start the servers in order to load the databases
296 :     with the new release using
297 :     <br>
298 :     <pre>
299 :     cd TargetDirectory/bin
300 :     ./start-servers
301 :     cd ..
302 :     source config/fig-user-env.sh
303 :     init_FIG
304 :     fig load_all
305 :     </pre>
306 :     <br>
307 :     This last command will run for several hours.
308 : gdpusch 1.6 <li> Now, you need to capture the changes made to the old production
309 :     version using something like
310 :     <br>
311 :     <pre>
312 :     <b>sync_new_system /tmp/sync.data.july.1.2004 make-assignments</b>
313 :     </pre>
314 :     <br>
315 : overbeek 1.7 <li>Run
316 :     <br>
317 :     <pre>
318 :     index_annotations
319 :     index_subsystems
320 :     make_indexes
321 :     </pre>
322 :     <li>Now, finally, you should alter the symbolic link in <i>~fig</i> to
323 :     the current FIGdisk using something like:
324 :     <br>
325 :     <pre>
326 :     cd ~fig
327 :     rm FIGdisk # should be removing a symbolic link to the current SEED
328 :     ln -s TargetDirectory FIGdisk
329 :     </pre>
330 :     That should make the new SEED the one available through the Web interface.
331 : gdpusch 1.6 <li> You should now bring your update system to the same state as the
332 :     production system. This can be done by making sure that
333 :     <b>/tmp/sync.data.july.1.2004</b> is accessible to the update system.
334 :     If the production and update systems are run on the same machine, then
335 :     the directory is already there. If not, copy it to <b>/tmp</b> on the
336 :     update machine. Then run
337 :     <br>
338 :     <pre>
339 :     <b>sync_new_system /tmp/sync.data.july.1.2004 make-assignments</b>
340 :     </pre>
341 :     <br>
342 :     on the update machine.
343 : olson 1.1 </ol>
344 : overbeek 1.7 <p>
345 :    
346 : olson 1.1 Our experience is that anytime a group wishes to share a common production environment,
347 : overbeek 1.4 this 2-system approach is the way to do it. You can, if necessary,
348 :     put both systems on the same physical machine. This does require some
349 :     special handling in setting up two different <b>FIGdisk</b>
350 :     directories. We recommend using <b>FIGdisk.production</b> and
351 :     <b>FIGdisk.update</b>. However, in general it makes sense to use two
352 :     separate physical machines, for backup if nothing else. The update
353 :     system can usually be run on a $2000 (or less) box, although it is
354 :     desirable to spend a little more and get at least 1 gigabyte of main
355 :     memory and 200 gigabytes of external disk.
356 : olson 1.1 <br>
357 : gdpusch 1.8 <h2 id="adding_genomes">Adding a New Genome to an Existing SEED</h2>
358 : olson 1.1 To add a new genome to a running SEED is fairly easy, but there are a
359 :     number of details that do have to be handled with care.
360 :     <p>
361 :     The first thing to note is that the SEED does not include tools to call genes -- you are expected
362 :     to provide gene calls. This may change at some point, but for now you must call your own genes. A
363 :     number of good tools now exist in the public domain, and you will need to find one that seems adequate
364 :     for your needs.
365 :     <p>
366 :     Let us now
367 :     cover how to prepare the actual data. You need to construct a directory (in somewhere like ~fig/Tmp)
368 :     of the following form:
369 :     <br>
370 :     <table width="100%">
371 :     <tr>
372 :     <td><tt>GenomeId</tt></td>
373 :     <td></td>
374 :     <td></td>
375 :     <td></td>
376 :     <td>of the form xxxx.y where xxxx is the taxon ID and y is an integer</td>
377 :     </tr>
378 :    
379 :     <tr>
380 :     <td></td>
381 :     <td><tt>PROJECT</tt></td>
382 :     <td></td>
383 :     <td></td>
384 :     <td> a file containg a description of the source of the data</td>
385 :     </tr>
386 :    
387 :     <tr>
388 :     <td></td>
389 :     <td><tt>GENOME</tt></td>
390 :     <td></td>
391 :     <td></td>
392 :     <td>a file containing a single line identifying the genus, species and strain</td>
393 :     </tr>
394 :    
395 :     <tr>
396 :     <td></td>
397 :     <td><tt>TAXONOMY</tt></td>
398 :     <td></td>
399 :     <td></td>
400 :     <td>a file containing a single line containing the NCBI taxonomy</td>
401 :     </tr>
402 :    
403 :     <tr>
404 :     <td></td>
405 :     <td><tt>RESTRICTIONS</tt></td>
406 :     <td></td>
407 :     <td></td>
408 :     <td>a file containing a description of distribution restrictions (optional)</td>
409 :     </tr>
410 :    
411 :     <tr>
412 :     <td></td>
413 :     <td><tt>CONTIGS</tt></td>
414 :     <td></td>
415 :     <td></td>
416 :     <td>contigs in fasta format</td>
417 :     </tr>
418 :    
419 :     <tr>
420 :     <td></td>
421 :     <td><tt>assigned_functions</tt></td>
422 :     <td></td>
423 :     <td></td>
424 :     <td>function assignments for the protein-encoding genes (optional)</td>
425 :     </tr>
426 :    
427 :     <tr>
428 :     <td></td>
429 :     <td><tt>Features</tt></td>
430 :     </tr>
431 :    
432 :     <tr>
433 :     <td></td>
434 :     <td></td>
435 :     <td><tt>peg</tt></td>
436 :     </tr>
437 :    
438 :     <tr>
439 :     <td></td>
440 :     <td></td>
441 :     <td></td>
442 :     <td><tt>tbl</tt></td>
443 :     <td>describes locations and aliases for the protein-encoding genes</td>
444 :     </td>
445 :     </tr>
446 :    
447 :     <tr>
448 :     <td></td>
449 :     <td></td>
450 :     <td></td>
451 :     <td><tt>fasta</tt></td>
452 :     <td>fasta file of translations of the protein-encoding genes</td>
453 :     </td>
454 :     </tr>
455 :    
456 :     <tr>
457 :     <td></td>
458 :     <td></td>
459 :     <td><tt>rna</tt></td>
460 :     </tr>
461 :    
462 :     <tr>
463 :     <td></td>
464 :     <td></td>
465 :     <td></td>
466 :     <td><tt>tbl</tt></td>
467 :     <td>describes locations and aliases for the rna-encoding genes</td>
468 :     </td>
469 :     </tr>
470 :    
471 :     <tr>
472 :     <td></td>
473 :     <td></td>
474 :     <td></td>
475 :     <td><tt>fasta</tt></td>
476 :     <td>fasta file of the DNA corresponding to the genes</td>
477 :     </td>
478 :     </tr>
479 :    
480 :    
481 :     </table>
482 :    
483 :     <!--
484 :    
485 :     <pre>
486 :     GenomeID of the form xxxx.y where xxxx is the taxon ID and y is an integer
487 :    
488 :     PROJECT a file containg a description of the source of the data
489 :    
490 :     GENOME a file containing a single line identifying the genus, species and strain
491 :    
492 :     TAXONOMY a file containing a single line containing the NCBI taxonomy
493 :    
494 :     RESTRICTIONS a file containing a description of distribution restrictions (optional)
495 :    
496 :     contigs contigs in fasta format
497 :    
498 :     assigned_functions function assignments for the protein-encoding genes (optional)
499 :    
500 :     Features
501 :    
502 :     peg
503 :     tbl descibes locations and aliases for the protein-encoding genes
504 :    
505 :     fasta fasta file of translations of the protein-encoding genes
506 :    
507 :     rna
508 :     tbl describes locations and aliases for the rna-encoding genes
509 :    
510 :     fasta fasta file of the DNA corresponding to the genes
511 :     </pre>
512 :     -->
513 :     <br>
514 :     <br>
515 :     Let us expand on this very brief description:
516 :     <ol>
517 :     <li>
518 :     The name of the directory must be of the form xxxx.y where xxxx is the
519 :     taxon ID, and y is a sequence number. For example, 562.1 might be
520 :     used for <i>E.coli</i>, since 562 is the NCBI taxon ID for
521 :     <i>Escherichia coli</i>. The sequence number (y) is used to
522 :     distinguish multiple genomes having the same taxon ID.
523 :     <br><br>
524 :     <li>
525 :     The assigned_functions file contains assignments of function for the
526 :     protein-encoding genes. is of the form
527 :     <pre>
528 :     Id\tFunction\tConfidence (\t stands for a tab character)
529 :     </pre>
530 :     The Id must be a valid PEG Id. These are of the form:
531 :     <pre>
532 :     fig|xxxx.y.peg.z
533 :     </pre>
534 :     where xxxx.y is the genome Id, and z is an integer that uniquely distinguishes
535 :     the peg (protein-encoding gene).
536 :     <br>
537 :     <i>Confidence</i> is a single character code:
538 :     <br>
539 :     <ul>
540 :     <li>a space for "normal"
541 :     <li>w for "weak"
542 :     <li>e for experimentally verified
543 :     <li>s for "strong evidence (but not experimental)"
544 :     </ul>
545 :     The second tab and the confidence code can be omitted (it will default to a space).
546 :     The assigned_functions file is optional. You can leave it blank and, after adding the genome
547 :     to the SEED, ask for automated assignments.
548 :     <br><br>
549 :     <li>
550 :     The tbl files specify the locations of genes, as well as any aliases. Each line in a tbl line
551 :     is of the form
552 :     <br>
553 :     <pre>
554 :     Id\tLocation\tAliases (the aliases are separated by tabs)
555 :     </pre>
556 :     The Id must conform to the fig|xxxx.y.peg.z format described above. The <i>Location</i> is of the form
557 :     <br>
558 :     <pre>
559 :     L1,L2,L3...Ln
560 :    
561 :     where each Li describes a region on a contig and is of the form
562 :    
563 :     <i>Contig_Begin_End</i> where
564 :    
565 :     Contig is the Id of the contig,
566 :     Begin is the position of the first character, and
567 :     End is the position of the last character
568 :     </pre>
569 :     <ul>
570 :     <li>if Begin > End, the region being described is on the complementary strand, and
571 :     <li>the End position is the last character preceding the stop codon (i.e., the region
572 :     corresponding to a protein-encoding gene is thought of as including all bases from the
573 :     first base of the start codon to the last base before the stop codon.
574 :     </ul>
575 :     For example,
576 :     <pre>
577 :     fig|562.1.peg.15 Escherichia_coli_K12_14168_15295 dnaJ b0015 sp|P08622 gi|16128009
578 :     </pre>
579 :     describes the <i>dnaJ</i> gene encoded on the positive strand from 14168 through 15295 on the contig Escherichia_coli_K12.
580 :     The gene is from the genome 562.1, and it has 4 specified aliases.
581 :     <li>
582 :     The fasta files must have gene Ids that match tbl file entries. The <i>peg</i> fasta file contains translations,
583 :     while the <i>rna</i> fasta file contains DNA sequences.
584 :     <li>
585 :     Both the <i>peg</i> and the <i>rna</i> subdirectories are optional.
586 :     </ol>
587 :     <br>
588 :     The SEED provides a utility that can be used to produce such a directory from a GenBank entry. Thus,
589 :     <br>
590 :     <pre>
591 :     parse_genbank 562.4 ~/Tmp/562.4 < genbank.entry.for.a.new.E.coli.genome
592 :     </pre>
593 :     would attempt to produce a properly formatted directory (~/Tmp/562.4) containing
594 :     the data encoded in the GenBank entry from the file <i>genbank.entry.for.a.new.E.coli.genome</i>.
595 :     This script is far from perfect, and there is huge variance in encodings in GenBank
596 :     files. So, use it at your own risk (and, manually check the output).
597 :     <p>
598 :     You would be well advised to look at some of the subdirectories included in the FIGdisk/FIG/Data/Organisms directory
599 :     to see examples of how it should be done.
600 :     <p>
601 :     So, supposing that you have built a valid directory (say, <i>/Users/fig/Tmp/562.4</i>), you can add the genome using
602 :     <pre>
603 :     fig add_genome /Users/fig/Tmp/562.4
604 :     </pre>
605 :     <br>
606 :     The <i>add_genome</i> request will add your new genome and queue a computational request that similarities
607 :     be computed for the protein-encoding genes.
608 :    
609 : gdpusch 1.8 <h2 id="sims">Computing Similarities</h2>
610 : olson 1.1
611 :     Adding a genome does not automatically get similarities computed for the new genome; it queues the request.
612 :     To get the similarities actually computed, you need to establish a computational environment on which
613 :     the blast runs will be made, and then initiate a request on the machine running the SEED.
614 :     <p>
615 :     This is not a completely trivial process because there are a variety of different ways to compute
616 :     similarities:
617 :     <ol>
618 :     <li> You can just compute them on the system running the SEED. This can take several days, but this
619 :     is often a perfectly reasonable way to get the job done.
620 :     <li>Alternatively, you may be in an environment where you have a set of networked machines (say, 4-5 machines),
621 :     and you wish to just exploit these machines to do the blast runs.
622 :     <li> Finally, you may be dealing with a large genome or genomes (and, hence, the need for many days of computation).
623 :     In this case, it makes sense to utilize a large computational resource, and this resource may either
624 :     be a local cluster or a service provided over the net.
625 :     </ol>
626 :     <br>
627 :     To establish the flexibility needed to support all of these alternatives, we implemented the following
628 :     approach:
629 :     <ul>
630 :     <li>
631 :     The user can describe one or more <b>similarity computational environments</b>
632 :     in a configuration file called <i>similarities.config</i>. The details of this encoding
633 :     are beyond the scope of this document.
634 :     These environments all represent potential ways to compute similarities.
635 :     <br>
636 :     <li>
637 :     When a SEED systems administrator (usually, the normal SEED user) wishes to run similarities,
638 :     he runs a program specifying a specific similarity computational environment. This causes all
639 :     the queued similarity requests to be batched up and sent off to the specified server (which may simply
640 :     be on the same machine). He would use the <b>generate_similarities</b> command specifying two parameters: the
641 :     first specifies a similarities computational environment, and the second specifies whether or not automated assignments
642 :     should be computed as the similarity computations complete and the results are installed.
643 :     As the similarities complete, they will automatically be installed. Further, if a set of similarities arrive
644 :     for a given protein-encoding gene, and if there is no current assignment of function for the gene,
645 :     an automated assignment may be computed. Whether or not such automated assignments are computed is determined
646 :     by the second parameter in the command used by the systems administrator to initiate the request. For example,
647 :     <pre>
648 :     generate_similarities local auto-assignments
649 :     </pre>
650 :     specifies a similarity computational environment labeled <i>local</i>, which presumably means "run the blast
651 :     requests on this machine", and requests automated assignments for all protein-encoding genes that currently either
652 :     have no assigned function or have an assigned function that is "hypothetical".
653 :     </ul>
654 :     <br>
655 :    
656 :     We anticipate that at least one major center (Argonne National Lab) and, perhaps, more will create well-defined
657 :     interfaces for handling high-volume requests. At FIG, we will maintain a set of instructions on how to set up
658 :     your configuration to exploit these resources.
659 :    
660 : gdpusch 1.8 <h2 id="deleting_genomes">Deleting Genomes from a Version of the SEED</h2>
661 : olson 1.1
662 :     There are two common instances in which one wishes to delete genomes from a running version of the SEED: one is
663 :     when you wish to replace an existing version of a genome (in which case the replacement is viewed as first
664 :     deleting the existing copy and then adding the new copy), and the second is when you wish to create a copy
665 :     of the SEED containing a subset of the entire collection of genomes.
666 :     <p>
667 :     To delete a set of genomes from a running version of the SEED, just use
668 :     <pre>
669 :     fig delete_genomes G1 G2 ...Gn (where G1 G2 ... Gn designates a list of genomes)
670 :     </pre>
671 :     For example,
672 :     <pre>
673 :     fig delete_genomes 562.1
674 :     </pre>
675 :     could be used to delete a single genome with a genome ID of 562.1.
676 :     <p>
677 :     To make a copy with some genomes deleted to give to someone else requires a little different approach.
678 :     To extract a set of genomes from an existing version of the SEED, you need to run the command
679 :     <pre>
680 :     extract_genomes Which ExistingData ExtractedData
681 :     </pre>
682 :    
683 :     The first argument is either the word "unrestricted" or the name of a file containing a list of
684 :     genome IDs (the genomes that are to be retained in the extraction). The second argument is
685 :     the path to the current Data directory. The third argument specifies the name of a directory
686 :     that is created holding the extraction. Thus,
687 :     <pre>
688 :     extract_genomes unrestricted /Users/fig/FIGdisk/FIG/Data /Volumes/Tmp/ExtractedData
689 :     </pre>
690 :     would created the extracted Data directory for you. If you wish to then produce a fully distributable
691 :     version of the SEED from the existing version and the extracted Data directory, you would
692 :     use
693 :     <pre>
694 :     make_a_SEED /Users/fig/FIGdisk /Volumes/Tmp/ExtractedData /Volumes/MyFriend/FIGdisk.ReadyToGo
695 :     rm -rf /Volumes/Tmp/ExtractedData
696 :     </pre>
697 :    
698 : gdpusch 1.8 <h2 id="reintegrate_sims">Periodic Reintegration of Similarities</h2>
699 : olson 1.1
700 :     When the initial SEED was constructed, similarities were computed. For most similarities of the form
701 :     "Id1 and Id2 are similar", entries were "recorded" for both Id1 and Id2. This is not always true,
702 :     since we truncate the number of similarities associated with any single Id (leaving us in a situation
703 :     in which we may have similarity recorded for Id1, but not Id2). When a genome is added, if Id1 was an added
704 :     protein-encoding gene (peg), then the similarity is "recorded" for Id1 but not Id2. This means that when looking
705 :     at genes from previously existing organisms, you never get links back to the added pegs. This is not totally
706 :     satisfactory.
707 :     <p>
708 :     Periodically, it is probably a good idea to "reinitegrate the similarities". This can be done by
709 :     just running
710 :     <pre>
711 :     reintegrate_sims
712 :     # update_sims /dev/null /dev/null ~/FIGdisk/FIG/Data/NewSims/* ; rm -f ~/FIGdisk/FIG/Data/NewSims/* index_sims
713 :     </pre>
714 :     The job will probably run for quite a while (perhaps as much as a day or two).
715 :    
716 : gdpusch 1.8 <h2 id="pins_and_clusters">Computing "Pins" and "Clusters"</h2>
717 : olson 1.1
718 :     The SEED displays potentially significant clusters on prokaryotic chromosomes. In the
719 :     process of finding preserved contiguity, it computes "pins", which are simply a set of genes
720 :     that are believed to be orthologs that cluster with similar genes. If you add your own genome,
721 :     you will probably want to compute and enter these into the active database. This can be done
722 :     using
723 :     <pre>
724 :     compute_pins_and_clusters G1 G2 G3 ...
725 :     </pre>
726 :     where the arguments are genome Ids. Thus,
727 :     <pre>
728 :     compute_pins_and_clusters 562.4
729 :     </pre>
730 :     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