[Bio] / Babel / bin / load_md5rna2db.pl Repository:
ViewVC logotype

Diff of /Babel/bin/load_md5rna2db.pl

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

revision 1.2, Thu Mar 24 21:05:43 2011 UTC revision 1.3, Fri Mar 25 18:50:31 2011 UTC
# Line 60  Line 60 
60                        org   => "organisms_ncbi",                        org   => "organisms_ncbi",
61                        src   => "sources"                        src   => "sources"
62                      },                      },
63               idx => { md5   => ["id","md5","function","organism","source"],               idx => { md5   => ["id","md5","function","organism","tax_rank","source"],
64                        func  => ["name"],                        func  => ["name"],
65                        src   => ["name"]                        src   => ["name"]
66                      } };                      } };
# Line 73  Line 73 
73    unless ($id && $tax) { next; }    unless ($id && $tax) { next; }
74    my @tax_set  = map { &clean_wsp($_) } split(/;/, $tax);    my @tax_set  = map { &clean_wsp($_) } split(/;/, $tax);
75    my $tax_rank = &rank_taxonomy($tax, join(" ", @tax_set[0,1]));    my $tax_rank = &rank_taxonomy($tax, join(" ", @tax_set[0,1]));
76    if ($tax_rank == 1) {    $taxa->{$id} = [ $tax_rank, [ reverse @tax_set ] ];
     $taxa->{$id} = [ reverse @tax_set ];  
   }  
77  }  }
78  close TFILE;  close TFILE;
79    
# Line 85  Line 83 
83  my $func_ids = &get_id_set($dbh, $psql, $tbls->{tbl}{func}, '3', 'name', $datafile, $verbose);  my $func_ids = &get_id_set($dbh, $psql, $tbls->{tbl}{func}, '3', 'name', $datafile, $verbose);
84  my $src_ids  = &get_id_set($dbh, $psql, $tbls->{tbl}{src}, '5', 'name', $datafile, $verbose);  my $src_ids  = &get_id_set($dbh, $psql, $tbls->{tbl}{src}, '5', 'name', $datafile, $verbose);
85  my $org_ids  = &get_name_id_from_db($dbh, $tbls->{tbl}{org}, $verbose);  my $org_ids  = &get_name_id_from_db($dbh, $tbls->{tbl}{org}, $verbose);
86  my ($funcID, $orgID, $srcID);  my ($funcID, $orgID, $srcID, $rankID);
87    
88  my $data_tmp = "$tmpdir/data." . unpack("H*", pack("Nn", time, $$));  my $data_tmp = "$tmpdir/data." . unpack("H*", pack("Nn", time, $$));
89  open(DTMP, ">$data_tmp") || die "Can not open $data_tmp: $!";  open(DTMP, ">$data_tmp") || die "Can not open $data_tmp: $!";
# Line 99  Line 97 
97    unless ($md5 && $id && exists($taxa->{$id})) { next; }    unless ($md5 && $id && exists($taxa->{$id})) { next; }
98    
99    $funcID = ($func   && exists($func_ids->{$func}))  ? $func_ids->{$func}  : '\\N';    $funcID = ($func   && exists($func_ids->{$func}))  ? $func_ids->{$func}  : '\\N';
100    $srcID  = ($source && exists($src_ids->{$source})) ? $src_ids->{$source} : '\\N';    $srcID  = ($source && exists($src_ids->{$source})) ? $src_ids->{$source} : '';
101    $orgID  = '\\N';    $orgID  = '';
102      $rankID = $taxa->{$id}[0];
103    
104    if ($org && exists($org_ids->{$org})) {    if ($org && exists($org_ids->{$org})) {
105      $orgID = $org_ids->{$org};      $orgID = $org_ids->{$org};
106    }    }
107    elsif (exists $taxa->{$id}) {    else {
108      foreach my $t ( @{$taxa->{$id}} ) {      foreach my $t ( @{$taxa->{$id}[1]} ) {
109        if (exists $org_ids->{$t}) {        if (exists $org_ids->{$t}) {
110          $orgID = $org_ids->{$t};          $orgID = $org_ids->{$t};
111          last;          last;
# Line 114  Line 113 
113      }      }
114    }    }
115    
116    if ($md5 && $id && $funcID && $orgID && $srcID) {    if ($md5 && $id && $funcID && $orgID && $srcID && $rankID) {
117      print DTMP join("\t", ($md5, $id, $funcID, $orgID, $srcID)) . "\n";      print DTMP join("\t", ($md5, $id, $funcID, $orgID, $rankID, $srcID)) . "\n";
118    }    }
119    
120    $count += 1;    $count += 1;
121    unless ($count % 500000) {    unless ($count % 100000) {
122      if ($verbose) { print STDERR "$count\t $md5 , $id , $func ($funcID) , $org ($orgID) , $source ($srcID)\n"; }      if ($verbose) { print STDERR "$count\t $md5 , $id , $func ($funcID) , $org ($orgID) , $rankID, $source ($srcID)\n"; }
123    }    }
124  }  }
125  close DFILE;  close DFILE;
126  close DTMP;  close DTMP;
127    
128  &drop_table_indexes($dbh, $tbls->{tbl}{md5}, $verbose);  &drop_table_indexes($dbh, $tbls->{tbl}{md5}, $verbose);
129  &psql_copy($psql, $tbls->{tbl}{md5}, 'md5,id,function,organism,source', $data_tmp, $verbose);  &psql_copy($psql, $tbls->{tbl}{md5}, 'md5,id,function,organism,tax_rank,source', $data_tmp, $verbose);
130  $dbh->commit;  $dbh->commit;
131    
132  if ($index) {  if ($index) {

Legend:
Removed from v.1.2  
changed lines
  Added in v.1.3

MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3