my$sql='select distinct(s.synonym), x.accession from xref x, synonym s, source so where so.source_id = x.source_id and x.xref_id = s.xref_id and so.name like "HGNC"';
#+--------------------------+-----------+
#| synonym | accession |
#+--------------------------+-----------+
#| FWP007 | 7 |
#| S863-7 | 7 |
#| CPAMD5 | 7 |
#| AACT | 16 |
#| ACT | 16 |
$sth=$self->xref->dbc->prepare($sql);
$sth->execute();
my($syn,$acc);
$sth->bind_columns(\$syn,\$acc);
my%acc_to_syn;
while($sth->fetch){
push@{$acc_to_syn{$acc}},$syn;
}
$sth->finish;
# get the HGNC xrefs in the core and add the synonyms
my$hgnc_file=$self->core->dir()."/hgnc_syn.txt";
open(SYN,">$hgnc_file")||die"Could not open file $hgnc_file";
$sql='select x.dbprimary_acc, x.xref_id from xref x, external_db e where e.external_db_id = x.external_db_id and e.db_name like "HGNC"';
$sth=$self->core->dbc->prepare($sql);
$sth->execute();
my($xref_id);
$sth->bind_columns(\$acc,\$xref_id);
while($sth->fetch){
if(defined($acc_to_syn{$acc})){
foreachmy$a(@{$acc_to_syn{$acc}}){
printSYN"$xref_id\t$a\n";
}
}
}
$sth->finish;
closeSYN;
#
# import hgnc synonyms
#
$sth=$self->core->dbc->prepare("LOAD DATA LOCAL INFILE \'$hgnc_file\' IGNORE INTO TABLE external_synonym");
print"Uploading data in $hgnc_file to external_synonym\n";
die"Could not find external database name Vega_gene\n";
if(!defined($hgnc_curated_tran_id)){
die"Could not find external database name HGNC_curated_transcript\n";
}
if(!defined($vega_transcript_id)){
die"Could not find external database name Vega_transcript\n";
if(!defined($hgnc_automatic_tran_id)){
die"Could not find external database name HGNC_automatic_transcript\n";
}
if(!defined($vega_gene_like_id)){
die"Could not find external database name Vega_gene_like\n";
if(!defined($clone_based_vega_tran_id)){
die"Could not find external database name Clone_based_vega_transcript\n";
}
if(!defined($vega_transcript_like_id)){
die"Could not find external database name Vega_transcript_like\n";
if(!defined($clone_based_ensembl_tran_id)){
die"Could not find external database name Clone_based_ensembl_transcri\n";
}
###########################
# Delete the old ones.
###########################
my$del_vega_sql="delete o from object_xref o, xref x where x.xref_id = o.xref_id and x.external_db_id in ($vega_gene_id, $vega_gene_like_id, $vega_transcript_like_id)";
print$del_vega_sql."\n";
my$del_vega_sql="delete o from object_xref o, xref x where x.xref_id = o.xref_id and x.external_db_id in ($hgnc_curated_gene_id, $hgnc_automatic_gene_id, $clone_based_vega_gene_id, $clone_based_ensembl_gene_id,$hgnc_automatic_tran_id, $clone_based_ensembl_tran_id)";
$sth=$self->core->dbc->prepare($del_vega_sql);
$sth->execute();
$del_vega_sql="delete x from xref x where x.external_db_id in ($vega_gene_id, $vega_gene_like_id, $vega_transcript_like_id)";
print$del_vega_sql."\n";
$del_vega_sql="delete x from xref x where x.external_db_id in ($hgnc_curated_gene_id, $hgnc_automatic_gene_id, $clone_based_vega_gene_id, $clone_based_ensembl_gene_id,$hgnc_automatic_tran_id, $clone_based_ensembl_tran_id)";