[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.7 - (view) (download) (as text)

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