my ($retrieval_location, $retrieval_date) = retrieval_info($file);
$retrieval_date =~ /(\d+)\_(\d+)\_(\d\d)/;
- my $formatted_date = "20".$1."-".$2."-".$3;
+ my $formatted_date = "20".$3."-".$1."-".$2;
+ # insert version info into database. If species previously entered, location and date will be updated.
my $safe_info_table = $dbh->quote_identifier("version_info");
- $dbh->do("insert into $safe_info_table (?,?,?) on duplicate key update retrieval_location=$retrieval_location,date=$formatted_date",$species,$retrieval_location,$formatted_date);
+ # Create the database for version info if it doesn't already exist
+ $dbh->do("CREATE TABLE IF NOT EXISTS $safe_info_table (
+ `species` varchar(255) NOT NULL,
+ `retrieval_location` varchar(255) NOT NULL,
+ `date` date NOT NULL,
+ PRIMARY KEY (`species`)
+ ) ENGINE=MyISAM");
+
+
+ $dbh->do("insert into $safe_info_table (species,retrieval_location,date) values ('$species','$retrieval_location','$formatted_date') on duplicate key update retrieval_location='$retrieval_location', date='$formatted_date'");
- # create the database table
+ # create the database table for the species
my $safe_table = $dbh->quote_identifier($species);
+ # create the database table for all synonyms
+ my $safe_syn_table = $dbh->quote_identifier('synonyms');
+
$dbh->do("drop table if exists $safe_table");
$dbh->do("CREATE TABLE $safe_table (
`gene_id` VARCHAR( 255 ) NOT NULL ,
`sequence` TEXT NOT NULL ,
UNIQUE ( `gene_id` )
) TYPE = MYISAM");
-
+
+ $dbh->do("CREATE TABLE if NOT EXISTS $safe_syn_table(
+ `gene_id` VARCHAR( 255 ) NOT NULL ,
+ `species` VARCHAR( 255 ) NOT NULL ,
+ `synonyms` TEXT
+ ) TYPE = MYISAM");
+
# and the statement handler to do the inserts
my $insert_sth = $dbh->prepare("insert into $safe_table (gene_id, gene_header, sequence) values (?,?,?)");
+ my $insert_syn_sth = $dbh->prepare("insert into $safe_syn_table (gene_id, species, synonyms) values (?,?,?)");
- # create the variables:q!
+ # create the variables
my %seq_hash; # keys is $gene, values are $seq and $gene_header
my $gene;
my $seq;
my $gene_header;
+ my $synonyms;
open(in_file,$file);
$gene_header =~ s/^>//;
$gene = find_gene($gene_header,$species);
$gene =~ s/^\>//;
+ $synonyms = find_gene_synonym($gene_header,$species);
$seq = "";
}else{
$seq = "$seq"."$line";
foreach my $key (keys %seq_hash) {
$insert_sth->execute($key,$seq_hash{$key}->{'gene_header'},$seq_hash{$key}->{'sequence'});
+
+ if($synonyms ne "null") {
+ $insert_syn_sth->execute($key,$species,$synonyms);
+ }
}
}