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

Annotation of /FigKernelPackages/GenomeLists.pm

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.2 - (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 : bartels 1.2 use FIG;
21 : bartels 1.1 use FileHandle;
22 :     use strict;
23 :    
24 : bartels 1.2 my $fig = new FIG;
25 :    
26 :     my $setdir = $FIG_Config::data . '/Sets/';
27 :     $fig->verify_dir( $setdir );
28 : bartels 1.1 my $listdir = $FIG_Config::data . '/Sets/Genome_Sets/';
29 : bartels 1.2 $fig->verify_dir( $listdir );
30 :    
31 :     1;
32 : bartels 1.1
33 :     sub new {
34 :    
35 :     my ( $class, $self ) = @_;
36 :     bless( $self, $class );
37 :    
38 :     return $self;
39 :     }
40 :    
41 :     sub save {
42 :    
43 :     my ( $self ) = @_;
44 :     my $file = $listdir . $self->{ 'name' };
45 :    
46 :     open ( FILE, ">$file" );
47 :    
48 :     print FILE "Name:\t";
49 :     print FILE $self->{ 'name' };
50 :     print FILE "\n\nDescription:\t";
51 :     print FILE $self->{ 'description' };
52 :     my $genomes = $self->{ 'genomes' };
53 :    
54 :     print FILE "\n\n";
55 :     foreach my $g ( @$genomes ) {
56 :     print FILE "Genome:\t$g\n";
57 :     }
58 :    
59 :     return 1;
60 :     }
61 :    
62 :     sub load {
63 :     my ( $name ) = @_;
64 :    
65 :     my $file = $listdir . $name;
66 :     open ( FILE, $file ) or return -1;
67 :     my $self;
68 :    
69 :     my @genomes = ();
70 :     while ( <FILE> ) {
71 :     chomp;
72 :     next if ( $_ eq '' );
73 :     # get name
74 :     if ( $_ =~ /Name:\t(.*)/ ) {
75 :     $self->{ 'name' } = $1;
76 :     }
77 :     # get description
78 :     if ( $_ =~ /Description:\t(.*)/ ) {
79 :     $self->{ 'description' } = $1;
80 :     }
81 :     # get genomes
82 :     if ( $_ =~ /Genome:\t(.*)/ ) {
83 :     my $g = $1;
84 :     if ( $g ne '' ) {
85 :     push @genomes, $g;
86 :     }
87 :     }
88 :     }
89 :     $self->{ 'genomes' } = \@genomes;
90 :    
91 :     bless( $self, 'GenomeLists' );
92 :     return $self;
93 :     }
94 :    
95 :     sub getListsForUser {
96 :     my ( $class, $user ) = @_;
97 :    
98 :     opendir( D, "$listdir" );
99 :     my @filesR = grep { not /^\./ } readdir( D );
100 :     my @files;
101 :    
102 :     return @filesR if ( !defined( $user ) );
103 :    
104 :     foreach my $f ( @filesR ) {
105 :     if ( $f =~ /$user\_(.*)/ ) {
106 :     push @files, $1;
107 :     }
108 :     }
109 :    
110 :     return @files;
111 :    
112 :     }

MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3