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

Annotation of /FigKernelPackages/GenomeLists.pm

Parent Directory Parent Directory | Revision Log Revision Log


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

1 : bartels 1.1 #
2 :     # Copyright (c) 2003-2006 University of Chicago and Fellowship
3 :     # for Interpretations of Genomes. All Rights Reserved.
4 :     #
5 :     # This file is part of the SEED Toolkit.
6 :     #
7 :     # The SEED Toolkit is free software. You can redistribute
8 :     # it and/or modify it under the terms of the SEED Toolkit
9 :     # Public License.
10 :     #
11 :     # You should have received a copy of the SEED Toolkit Public License
12 :     # along with this program; if not write to the University of Chicago
13 :     # at info@ci.uchicago.edu or the Fellowship for Interpretation of
14 :     # Genomes at veronika@thefig.info or download a copy from
15 :     # http://www.theseed.org/LICENSE.TXT.
16 :     #
17 :    
18 :     package GenomeLists;
19 :    
20 :     use FileHandle;
21 :     use strict;
22 :    
23 :     my $listdir = $FIG_Config::data . '/Sets/Genome_Sets/';
24 :    
25 :     sub new {
26 :    
27 :     my ( $class, $self ) = @_;
28 :     bless( $self, $class );
29 :    
30 :     return $self;
31 :     }
32 :    
33 :     sub save {
34 :    
35 :     my ( $self ) = @_;
36 :     my $file = $listdir . $self->{ 'name' };
37 :    
38 :     open ( FILE, ">$file" );
39 :    
40 :     print FILE "Name:\t";
41 :     print FILE $self->{ 'name' };
42 :     print FILE "\n\nDescription:\t";
43 :     print FILE $self->{ 'description' };
44 :     my $genomes = $self->{ 'genomes' };
45 :    
46 :     print FILE "\n\n";
47 :     foreach my $g ( @$genomes ) {
48 :     print FILE "Genome:\t$g\n";
49 :     }
50 :    
51 :     return 1;
52 :     }
53 :    
54 :     sub load {
55 :     my ( $name ) = @_;
56 :    
57 :     my $file = $listdir . $name;
58 :     open ( FILE, $file ) or return -1;
59 :     my $self;
60 :    
61 :     my @genomes = ();
62 :     while ( <FILE> ) {
63 :     chomp;
64 :     next if ( $_ eq '' );
65 :     # get name
66 :     if ( $_ =~ /Name:\t(.*)/ ) {
67 :     $self->{ 'name' } = $1;
68 :     }
69 :     # get description
70 :     if ( $_ =~ /Description:\t(.*)/ ) {
71 :     $self->{ 'description' } = $1;
72 :     }
73 :     # get genomes
74 :     if ( $_ =~ /Genome:\t(.*)/ ) {
75 :     my $g = $1;
76 :     if ( $g ne '' ) {
77 :     push @genomes, $g;
78 :     }
79 :     }
80 :     }
81 :     $self->{ 'genomes' } = \@genomes;
82 :    
83 :     bless( $self, 'GenomeLists' );
84 :     return $self;
85 :     }
86 :    
87 :     sub getListsForUser {
88 :     my ( $class, $user ) = @_;
89 :    
90 :     opendir( D, "$listdir" );
91 :     my @filesR = grep { not /^\./ } readdir( D );
92 :     my @files;
93 :    
94 :     return @filesR if ( !defined( $user ) );
95 :    
96 :     foreach my $f ( @filesR ) {
97 :     if ( $f =~ /$user\_(.*)/ ) {
98 :     push @files, $1;
99 :     }
100 :     }
101 :    
102 :     return @files;
103 :    
104 :     }

MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3