[Bio] / FigKernelScripts / load_features.pl Repository:
ViewVC logotype

Diff of /FigKernelScripts/load_features.pl

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

revision 1.1, Mon Dec 1 20:46:40 2003 UTC revision 1.9, Wed Apr 28 00:06:34 2004 UTC
# Line 15  Line 15 
15  # usage: load_features [G1 G2 G3 ... ]  # usage: load_features [G1 G2 G3 ... ]
16    
17  open(REL,">$temp_dir/tmpfeat$$") || die "could not open $temp_dir/tmpfeat$$";  open(REL,">$temp_dir/tmpfeat$$") || die "could not open $temp_dir/tmpfeat$$";
18    open(ALIAS,">$temp_dir/tmpalias$$") || die "could not open $temp_dir/tmpalias$$";
19    
20  my $dbf = $fig->{_dbf};  my $dbf = $fig->{_dbf};
21    
# Line 24  Line 25 
25  if (@ARGV == 0)  if (@ARGV == 0)
26  {  {
27      $dbf->drop_table( tbl => "features" );      $dbf->drop_table( tbl => "features" );
28        $dbf->drop_table( tbl => "ext_alias" );
29    
30        $dbf->create_table( tbl => 'ext_alias',
31                            flds => "id varchar(32), alias varchar(32), genome varchar(16)"
32                            );
33    
34      if ($FIG_Config::dbms eq "Pg")      if ($FIG_Config::dbms eq "Pg")
35      {      {
36          $dbf->create_table( tbl  => "features",          $dbf->create_table( tbl  => "features",
37                              flds => "id varchar(32) UNIQUE NOT NULL, type varchar(16),genome varchar(16),"  .                              flds => "id varchar(32), type varchar(16),genome varchar(16),"  .
38                                      "location varchar(5000),"  .                                      "location varchar(5000),"  .
39                                      "contig varchar(96), minloc INTEGER, maxloc INTEGER,"  .                                      "contig varchar(96), minloc INTEGER, maxloc INTEGER,"  .
40                                      "aliases TEXT, PRIMARY KEY ( id )"                                      "aliases TEXT"
41                              );                              );
42      }      }
43      elsif ($FIG_Config::dbms eq "mysql")      elsif ($FIG_Config::dbms eq "mysql")
44      {      {
45          $dbf->create_table( tbl  => "features",          $dbf->create_table( tbl  => "features",
46                              flds => "id varchar(32) UNIQUE NOT NULL, type varchar(16),genome varchar(16),"  .                              flds => "id varchar(32), type varchar(16),genome varchar(16),"  .
47                                      "location TEXT,"  .                                      "location TEXT,"  .
48                                      "contig varchar(96), minloc INTEGER, maxloc INTEGER,"  .                                      "contig varchar(96), minloc INTEGER, maxloc INTEGER,"  .
49                                      "aliases TEXT, PRIMARY KEY ( id )"                                      "aliases TEXT"
50                              );                              );
51      }      }
52    
     $dbf->create_index( idx  => "features_org_ix",  
                         tbl  => "features",  
                         type => "btree",  
                         flds => "genome" );  
     $dbf->create_index( idx  => "features_type_ix",  
                         type => "btree",  
                         tbl  => "features",  
                         flds => "type" );  
     $dbf->create_index( idx  => "features_beg_ix",  
                         type => "btree",  
                         tbl  => "features",  
                         flds => "genome,contig,minloc" );  
   
53      @genomes = $fig->genomes;      @genomes = $fig->genomes;
54  }  }
55  else  else
56  {  {
57      @genomes = @ARGV;      @genomes = @ARGV;
58        foreach $genome (@genomes)
59        {
60            $dbf->SQL("DELETE FROM features WHERE ( genome = \'$genome\' )");
61            $dbf->SQL("DELETE FROM ext_alias WHERE ( genome = \'$genome\' )");
62        }
63  }  }
64    
65  foreach $genome (@genomes)  foreach $genome (@genomes)
# Line 101  Line 100 
100                      if (@aliases > 0)                      if (@aliases > 0)
101                      {                      {
102                          $aliases = join(",",grep(/\S/,@aliases));                          $aliases = join(",",grep(/\S/,@aliases));
103                            my $alias;
104                            foreach $alias (@aliases)
105                            {
106                                if ($alias =~ /^(NP_|gi\||sp\|\tr\||kegg\|)/)
107                                {
108    
109                                    print ALIAS "$id\t$alias\t$genome\n";
110                                }
111                            }
112                      }                      }
113                      else                      else
114                      {                      {
# Line 108  Line 116 
116                      }                      }
117                      $minloc = (! $minloc) ? 0 : $minloc;                      $minloc = (! $minloc) ? 0 : $minloc;
118                      $maxloc = (! $maxloc) ? 0 : $maxloc;                      $maxloc = (! $maxloc) ? 0 : $maxloc;
119                        if ((length($loc) < 5000) && (length($contig) < 96) && (length($id) < 32))
120                        {
121                      print REL "$id\t$type\t$genome\t$loc\t$contig\t$minloc\t$maxloc\t$aliases\n";                      print REL "$id\t$type\t$genome\t$loc\t$contig\t$minloc\t$maxloc\t$aliases\n";
122                  }                  }
123              }              }
124                }
125              close(TBL);              close(TBL);
126          }          }
127      }      }
128  }  }
129  close(REL);  close(REL);
130    close(ALIAS);
131    
132  $dbf->load_table( tbl => "features",  $dbf->load_table( tbl => "features",
133                    file => "$temp_dir/tmpfeat$$" );                    file => "$temp_dir/tmpfeat$$" );
134    
135  if (@ARGV == 0) {  $dbf->vacuum_it("features") }  $dbf->load_table( tbl => "ext_alias",
136                      file => "$temp_dir/tmpalias$$" );
137    
138    if (@ARGV == 0)
139    {
140        $dbf->create_index( idx  => "ext_alias_alias_ix",
141                            tbl  => "ext_alias",
142                            type => "btree",
143                            flds => "alias" );
144    
145        $dbf->create_index( idx  => "ext_alias_genome_ix",
146                            tbl  => "ext_alias",
147                            type => "btree",
148                            flds => "genome" );
149    
150        $dbf->create_index( idx  => "features_id_ix",
151                            tbl  => "features",
152                            type => "btree",
153                            flds => "id" );
154        $dbf->create_index( idx  => "features_org_ix",
155                            tbl  => "features",
156                            type => "btree",
157                            flds => "genome" );
158        $dbf->create_index( idx  => "features_type_ix",
159                            type => "btree",
160                            tbl  => "features",
161                            flds => "type" );
162        $dbf->create_index( idx  => "features_beg_ix",
163                            type => "btree",
164                            tbl  => "features",
165                            flds => "genome,contig,minloc" );
166    
167        $dbf->vacuum_it("features")
168    }
169  unlink("$temp_dir/tmpfeat$$");  unlink("$temp_dir/tmpfeat$$");
170    unlink("$temp_dir/tmpalias$$");

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.9

MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3