[Bio] / Clearinghouse / utils.pm Repository:
ViewVC logotype

Diff of /Clearinghouse/utils.pm

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.5, Thu May 5 16:58:31 2005 UTC revision 1.6, Tue May 10 16:33:03 2005 UTC
# Line 26  Line 26 
26                   insert_ch_record                   insert_ch_record
27                   insert_meta_data                   insert_meta_data
28                   insert_package_location                   insert_package_location
29                     check_for_duplicates
30                  );                  );
31    
32  sub validate_package  sub validate_package
# Line 101  Line 102 
102          return @$ar; #length = 0, if no rows          return @$ar; #length = 0, if no rows
103  }  }
104    
105    sub check_for_duplicates {
106            my ($type, $meta_data) = @_;
107            my $db = db_init();
108            if ($type eq 'GENOME') {
109                    return check_for_duplicate_genome($meta_data);
110            } elsif ($type eq 'SUBSYSTEM') {
111                    return check_for_duplicate_subsystem($meta_data);
112            } else {
113                    return 1;
114            }
115    }
116    
117    sub check_for_duplicate_genome {
118            my ($meta_data) = @_;
119            my $genome_id;
120    
121    
122            my @md = split (/\n/, $meta_data);
123            for my $i (@md) {
124                    my ($tag, $value) = split(/\t/, $i);
125                    if ($tag eq 'genome_id') {
126                            $genome_id = $value;
127                            last;
128                    }
129            }
130    
131            my $db = db_init();
132            my $ar = $db->SQL(qq(SELECT ch_id FROM meta_data WHERE tag = 'genome_id' AND value = '$genome_id'));
133            return @$ar; #length = 0, if no rows
134    }
135    
136    sub check_for_duplicate_subsystem {
137            my ($meta_data) = @_;
138            my ($name, $version);
139            my @md = split (/\n/, $meta_data);
140            for my $i (@md) {
141                    my ($tag, $value) = split(/\t/, $i);
142                    if ($tag eq 'name') {
143                            $name = $value;
144                    }
145                    if ($tag eq 'version') {
146                            $version = $value;
147                    }
148            }
149            my $db = db_init();
150    
151            print STDERR "NAME $name, VERSION $version\n";
152            my $ar = $db->SQL(qq(SELECT c.id FROM meta_data m1, meta_data m2, clearing_house c              WHERE (c.id = m1.ch_id AND c.id = m2.ch_id AND
153                    m1.tag = 'name' and m1.value = '$name' AND
154                    m2.tag = 'version' and m2.value = '$version' AND
155                    c.type = 'SUBSYSTEM')));
156    
157            return @$ar; #length = 0, if no rows
158    }
159    
160    
161    
162  sub lock_init {  sub lock_init {
163      my ($dbh) = @_;      my ($dbh) = @_;
164    

Legend:
Removed from v.1.5  
changed lines
  Added in v.1.6

MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3