sub official_naming
{ my $self = shift;
my $dbname = $self->get_official_name();
if(!defined($dbname)){
my $sth_stat = $self->xref->dbc->prepare("insert into process_status (status, date) values('official_naming_done',now())");
$sth_stat->execute();
$sth_stat->finish;
return;
}
if($dbname eq "MGI"){ $self->biomart_fix("MGI","Translation","Gene");
$self->biomart_fix("MGI","Transcript","Gene");
}
print "Official naming started. Copy $dbname from gene to canonical transcript\n" if($self->verbose);
my ($max_object_xref_id, $max_xref_id);
$self->species_id($self->get_id_from_species_name($self->core->species));
my $sth = $self->xref->dbc->prepare("SELECT MAX(object_xref_id) FROM object_xref");
$sth->execute();
$sth->bind_columns(\$max_object_xref_id);
$sth->fetch;
$sth = $self->xref->dbc->prepare("SELECT MAX(xref_id) FROM xref");
$sth->execute();
$sth->bind_columns(\$max_xref_id);
$sth->fetch;
my $sth_add_ox = $self->xref->dbc->prepare("insert ignore into object_xref (object_xref_id, xref_id, ensembl_id, ensembl_object_type, linkage_type, ox_status) values(?, ?, ?, 'Transcript', ?, ?)");
$max_object_xref_id++;
if($max_object_xref_id == 1){
die "max_object_xref_id should not be 1\n";
}
my $object_sql = (<<FSQL);
select x.xref_id, o.ensembl_id, o.linkage_type, o.ox_status, ix.query_identity, ix.target_identity
from xref x, source s, object_xref o, identity_xref ix where x.source_id = s.source_id and ix.object_xref_id = o.object_xref_id and o.ox_status = "DUMP_OUT" and s.name like "$dbname" and o.xref_id = x.xref_id and o.ensembl_object_type = "Gene"; FSQL
my $sql = "select gene_id, canonical_transcript_id from gene";
$sth = $self->core->dbc->prepare($sql);
$sth->execute();
my ($gene_id, $tran_id);
$sth->bind_columns(\$gene_id,\$tran_id);
my %gene_to_tran_canonical;
while ($sth->fetch){
$gene_to_tran_canonical{$gene_id} = $tran_id;
}
$sth->finish;
print "Pre copy all $dbname from gene to canonical transcripts\n" if($self->verbose);
$self->biomart_test();
my $ins_dep_ix_sth = $self->xref->dbc->prepare("insert into identity_xref (object_xref_id, query_identity, target_identity) values(?, ?, ?)");
$sth = $self->xref->dbc->prepare($object_sql);
$sth->execute();
my ($xref_id, $linkage_type, $ox_status, $q_id, $t_id);
$sth->bind_columns(\$xref_id,\$ gene_id,\$ linkage_type,\$ ox_status,\$ q_id,\$ t_id);
while ($sth->fetch){
if(defined($gene_to_tran_canonical{$gene_id})){
$max_object_xref_id++;
$sth_add_ox->execute($max_object_xref_id, $xref_id, $gene_to_tran_canonical{$gene_id}, $linkage_type, $ox_status) || print STDERR "(Gene id - $gene_id) Could not add $max_object_xref_id, .".$gene_to_tran_canonical{$gene_id}.", $xref_id, $linkage_type, $ox_status to object_xref\n";
$ins_dep_ix_sth->execute($max_object_xref_id, $q_id, $t_id);
}
else{
print STDERR "Could not find canonical for gene $gene_id\n";
}
}
$sth->finish;
print "Post copy all $dbname from gene to canonical transcripts\n" if($self->verbose);
$self->biomart_test();
##########################################################################################
# HGNC/MGI synonyms are special as they are only on some prioritys so copy all the synonyms
# from the xref database to the xref database. Granted some will already be there but use
# update ignore just in case.
###########################################################################################
#get the xref synonyms store as a hash of arrays.
my $syn_hash = $self->get_official_synonyms();
$sql = "insert into synonym (xref_id, synonym) values (?, ?)";
my $add_syn_sth = $self->xref->dbc->prepare($sql);
#
# get the OFDN (HGNC/MGI) xrefs in the xrefs and add the synonyms, plus create hash to get id from the display name
# This is becouse not all MGI.HGNC's are loaded as these are priority xrefs.
#
my %display_label_to_id;
$sql = 'select x.accession, sy.synonym from synonym sy, xref x, source so where x.xref_id = sy.xref_id and so.source_id = x.source_id and so.name like "'.$dbname.'"';
$sth = $self->xref->dbc->prepare($sql);
$sth->execute();
my ($display_label, $acc, $syn,);
$sth->bind_columns(\$acc,\$display_label);
while($sth->fetch){
$display_label_to_id{$display_label} = $acc;
}
$sth->finish;
# get label to id from xref database to start with.
$sql = 'select x.accession, x.label from xref x, source s where s.source_id = x.source_id and s.name like "'.$dbname.'"';
$sth = $self->xref->dbc->prepare($sql);
$sth->execute();
$sth->bind_columns(\$acc,\$display_label);
while($sth->fetch){
$display_label_to_id{$display_label} = $acc;
}
$sth->finish;
my %synonym;
$sth = $self->xref->dbc->prepare('select es.synonym, x.label from synonym es, xref x, source s where x.xref_id = es.xref_id and x.source_id = s.source_id and
s.name = "'.$dbname.'"' );
$sth->execute();
my ($name);
$sth->bind_columns(\$syn,\$name);
while($sth->fetch){
$synonym{$syn} = $name;
}
$sth->finish;
$sth = $self->xref->dbc->prepare('select es.synonym, x.label from synonym es, xref x, source s where x.xref_id = es.xref_id and x.source_id = s.source_id and
s.name = "EntrezGene"' );
$sth->execute();
$sth->bind_columns(\$syn,\$name);
while($sth->fetch){
$synonym{$syn} = $name;
}
$sth->finish;
#######################
#Do the naming bit now.
#######################
# get the vega external_sources
my ($odn_curated_gene_id, $odn_automatic_gene_id, $clone_based_vega_gene_id, $clone_based_ensembl_gene_id);
my ($odn_curated_tran_id, $odn_automatic_tran_id, $clone_based_vega_tran_id, $clone_based_ensembl_tran_id);
my $odn_id;
$sth = $self->xref->dbc->prepare("select source_id from source where name like ?");
$sth->execute($dbname."_curated_gene");
$sth->bind_columns(\$odn_curated_gene_id);
$sth->fetch;
$sth->execute($dbname."_automatic_gene");
$sth->bind_columns(\$odn_automatic_gene_id);
$sth->fetch;
$sth->execute("Clone_based_vega_gene");
$sth->bind_columns(\$clone_based_vega_gene_id);
$sth->fetch;
$sth->execute("Clone_based_ensembl_gene");
$sth->bind_columns(\$clone_based_ensembl_gene_id);
$sth->fetch;
if(!defined($odn_curated_gene_id)){
die "Could not find external database name ".$dbname."_curated_gene\n";
}
if(!defined($odn_automatic_gene_id)){
die "Could not find external database name ".$dbname."_automatic_gene\n";
}
if(!defined($clone_based_vega_gene_id)){
die "Could not find external database name Clone_based_vega_gene\n";
}
if(!defined($clone_based_ensembl_gene_id)){
die "Could not find external database name Clone_based_ensembl_gene\n";
}
$sth->execute($dbname."_curated_transcript");
$sth->bind_columns(\$odn_curated_tran_id);
$sth->fetch;
$sth->execute($dbname."_automatic_transcript");
$sth->bind_columns(\$odn_automatic_tran_id);
$sth->fetch;
$sth->execute("Clone_based_vega_transcript");
$sth->bind_columns(\$clone_based_vega_tran_id);
$sth->fetch;
$sth->execute("Clone_based_ensembl_transcript");
$sth->bind_columns(\$clone_based_ensembl_tran_id);
$sth->fetch;
if(!defined($odn_curated_tran_id)){
die "Could not find external database name ".$dbname."_curated_transcript\n";
}
if(!defined($odn_automatic_tran_id)){
die "Could not find external database name ".$dbname."_automatic_transcript\n";
}
if(!defined($clone_based_vega_tran_id)){
die "Could not find external database name Clone_based_vega_transcript\n";
}
if(!defined($clone_based_ensembl_tran_id)){
die "Could not find external database name Clone_based_ensembl_transcript\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.source_id in ( $odn_curated_gene_id, $odn_automatic_gene_id, $clone_based_vega_gene_id, $clone_based_ensembl_gene_id,$odn_automatic_tran_id, $clone_based_ensembl_tran_id)";
$sth = $self->xref->dbc->prepare($del_vega_sql);
$sth->execute();
$del_vega_sql = "delete x from xref x where x.source_id in ($odn_curated_gene_id, $odn_automatic_gene_id, $clone_based_vega_gene_id, $clone_based_ensembl_gene_id,$odn_automatic_tran_id, $clone_based_ensembl_tran_id)";
$sth = $self->xref->dbc->prepare($del_vega_sql);
$sth->execute();
$del_vega_sql = "delete x from xref x where x.source_id = $clone_based_vega_tran_id and x.info_type = 'MISC'"; # original ones added have info type of "DIRECT"
$sth = $self->xref->dbc->prepare($del_vega_sql);
$sth->execute();
######################################################
# Get the current max values for xref and object_xref
######################################################
my $db = new Bio::EnsEMBL::DBSQL::DBAdaptor(-dbconn => $self->core->dbc);
my $ga = $db->get_GeneAdaptor();
# if(!defined($max_xref_id) or $max_xref_id == 0){
# die "Sorry i dont believe there are no xrefs max xref = 0\n";
# }
# if(!defined($max_object_xref_id) or $max_object_xref_id == 0){
# die "Sorry i dont believe there are no object_xrefs max object_xref = 0\n";
# }
###########################
# Process each Gene
###########################
my %gene_to_transcripts;
my %gene_id_to_stable_id;
my %tran_id_to_stable_id;
$sth = $self->xref->dbc->prepare("select gtt.gene_id, gtt.transcript_id, gsi.stable_id, tsi.stable_id
from gene_transcript_translation gtt, gene_stable_id gsi, transcript_stable_id tsi
where gtt.gene_id = gsi.internal_id and gtt.transcript_id = tsi.internal_id");
$sth->execute;
my $gsi;
my $tsi;
$sth->bind_columns(\$gene_id,\$ tran_id,\$ gsi,\$ tsi);
while ($sth->fetch){
push @{$gene_to_transcripts{$gene_id}}, $tran_id;
$gene_id_to_stable_id{$gene_id} = $gsi;
$tran_id_to_stable_id{$tran_id} = $tsi;
}
my $total_gene_vega = 0;
my $total_gene = 0;
my $total_clone_name = 0;
my $odn_count = 0;
my $dbentrie_sth = $self->xref->dbc->prepare("select x.label from xref x, object_xref ox, source s where x.xref_id = ox.xref_id and
x.source_id = s.source_id and s.name = ? and ox.ox_status = 'DUMP_OUT' and ox.ensembl_id = ? and ox.ensembl_object_type = ? ");
$sql = "insert into xref (xref_id, source_id, accession, label, version, species_id, info_type) values (?, ?, ?, ?, 0, ".$self->species_id.", 'MISC' )";
my $ins_xref_sth = $self->xref->dbc->prepare($sql);
# important or will crash and burn!!!
my %xref_added; # store those added already $xref_added{$accession:$source_id} = $xref_id;
my $ins_object_xref_sth = $self->xref->dbc->prepare("insert into object_xref (object_xref_id, ensembl_id, ensembl_object_type, xref_id, linkage_type, ox_status) values (?, ?, ?, ?, 'MISC', 'DUMP_OUT')");
foreach my $gene_id (keys %gene_to_transcripts){
my @ODN=();
my @VEGA_NAME=();
my $CLONE_NAME = undef;
my $display;
$dbentrie_sth->execute($dbname, $gene_id, "Gene");
$dbentrie_sth->bind_columns(\$display);
while($dbentrie_sth->fetch){
push @ODN, $display;
}
if(scalar(@ODN)){
$odn_count++;
}
my %no_vega; # hash now as we want to sort by stable id and hence need a key value pair
my $vega_count = 0;
my $count = 0;
foreach my $tran_id ( @{$gene_to_transcripts{$gene_id}} ){
my $VEGA = undef;
$count = 0 ;
$dbentrie_sth->execute($dbname."_curated_transcript", $tran_id, "Transcript");
$dbentrie_sth->bind_columns(\$display);
while($dbentrie_sth->fetch){
my($hgnc_bit, $num) = split(/-0\d\d/,$display);
$VEGA = $hgnc_bit;
$vega_count++;
my $multiple = 1;
if(scalar(@VEGA_NAME)){
foreach my $name (@VEGA_NAME){
if($name ne $VEGA){
if(defined($synonym{$name}) and uc($synonym{$name}) eq $VEGA){
$multiple = 0;
}
if(defined($synonym{$VEGA}) and uc($synonym{$VEGA}) eq uc($name)){
$multiple = 0;
}
}
else{
$multiple = 0;
}
}
if($multiple){
push @VEGA_NAME , $hgnc_bit;
}
}
else{
push @VEGA_NAME , $hgnc_bit;
}
$count++;
}
$dbentrie_sth->execute("Clone_based_vega_transcript", $tran_id, "Transcript");
$dbentrie_sth->bind_columns(\$display);
while($dbentrie_sth->fetch){
my($hgnc_bit, $num) = split(/-0\d\d/,$display);
$CLONE_NAME = $hgnc_bit;
$count++;
}
if($count == 0){
$no_vega{$tran_id_to_stable_id{$tran_id}} = $tran_id;
}
if($count > 1){
print STDERR "Problem: ".$tran_id_to_stable_id{$tran_id}." has more than one vega_transcript\n";
}
if($count == 1){
if(defined($VEGA) and scalar(@ODN)){
my $found = 0;
foreach my $odn_name (@ODN){
if(uc($VEGA) eq uc($odn_name)){
$found = 1;
}
elsif(defined($synonym{$VEGA}) and uc($synonym{$VEGA}) eq uc($odn_name)){
$found = 1;
}
}
if(!$found){
print STDERR "Problem: ".$gene_id_to_stable_id{$gene_id}." linked to ".$dbname." (".join(', ',@ODN).") BUT ".$tran_id_to_stable_id{$tran_id}." linked to vega_transcript $VEGA????\n";
}
}
}
} # end for each transcript
####################################################################################
# if there is at least one transcript
# set vega_gene
# loop through no_vega array and set vega_transcript_like for each starting at 201
####################################################################################
if(scalar(@VEGA_NAME) > 1){
print STDERR "Warning: gene ".$gene_id_to_stable_id{$gene_id}." has more than one vega_transcript these are (".join(', ',@VEGA_NAME).")\n";
}
if($vega_count){
foreach my $name (@VEGA_NAME){
my $id = $display_label_to_id{$name};
if(!defined($id)){
$id = $name;
print STDERR "Warning Could not find id for $name\n";
}
if(!defined($xref_added{$id.":".$odn_curated_gene_id})){
$max_xref_id++;
$ins_xref_sth->execute($max_xref_id, $odn_curated_gene_id, $id, $name);
$xref_added{$id.":".$odn_curated_gene_id} = $max_xref_id;
if(defined($syn_hash->{$name})){
foreach my $syn (@{$syn_hash->{$name}}){
$add_syn_sth->execute($max_xref_id, $syn);
}
}
}
$max_object_xref_id++;
$ins_object_xref_sth->execute($max_object_xref_id, $gene_id, 'Gene', $xref_added{$id.":".$odn_curated_gene_id});
$ins_dep_ix_sth->execute($max_object_xref_id, 100, 100);
}
my $name = $VEGA_NAME[0];
my $tran_name_ext = 201;
foreach my $tran (sort keys %no_vega){
my $id = $name."-".$tran_name_ext;
if(!defined($xref_added{$id.":".$odn_automatic_tran_id})){
$max_xref_id++;
$ins_xref_sth->execute($max_xref_id, $odn_automatic_tran_id, $id, $id);
$xref_added{$id.":".$odn_automatic_tran_id} = $max_xref_id;
}
$max_object_xref_id++;
$ins_object_xref_sth->execute($max_object_xref_id, $no_vega{$tran}, 'Transcript', $xref_added{$id.":".$odn_automatic_tran_id});
$ins_dep_ix_sth->execute($max_object_xref_id, 100, 100);
$tran_name_ext++;
}
}
####################################################################################
# if no vega_transcript but hgnc/mgi
# set vega_gene_like to hgnc/mgi
# loop through both arrays and set vega_transcript_like to hgnc-101 etc
####################################################################################
elsif(scalar(@ODN)){
foreach my $name (@ODN){
my $id = $display_label_to_id{$name};
if(!defined($id)){
$id = $name;
print STDERR "Warning Could not find id for $name\n";
}
if(!defined($xref_added{$id.":".$odn_automatic_gene_id})){
$max_xref_id++;
$ins_xref_sth->execute($max_xref_id, $odn_automatic_gene_id, $id, $name);
$xref_added{$id.":".$odn_automatic_gene_id} = $max_xref_id;
if(defined($syn_hash->{$name})){
foreach my $syn (@{$syn_hash->{$name}}){
$add_syn_sth->execute($max_xref_id, $syn);
}
}
}
$max_object_xref_id++;
$ins_object_xref_sth->execute($max_object_xref_id, $gene_id, 'Gene', $xref_added{$id.":".$odn_automatic_gene_id});
$ins_dep_ix_sth->execute($max_object_xref_id, 100, 100);
}
my $name = $ODN[0];
my $tran_name_ext = 201;
foreach my $tran (sort keys %no_vega){
my $id = $name."-".$tran_name_ext;
while(defined($xref_added{$id.":".$odn_automatic_tran_id})){
$tran_name_ext++;
$id = $name."-".$tran_name_ext;
}
if(!defined($xref_added{$id.":".$odn_automatic_tran_id})){
$max_xref_id++;
$ins_xref_sth->execute($max_xref_id, $odn_automatic_tran_id, $id, $id);
$xref_added{$id.":".$odn_automatic_tran_id} = $max_xref_id;
}
else{
print "ERROR: should not get here $id already defined?\n";
}
$max_object_xref_id++;
$ins_object_xref_sth->execute($max_object_xref_id, $no_vega{$tran}, 'Transcript', $xref_added{$id.":".$odn_automatic_tran_id});
$ins_dep_ix_sth->execute($max_object_xref_id, 100, 100);
$tran_name_ext++;
}
}
####################################################################################
# if no vega_transcript and no hgnc/mgi use clone name
# set vega_gene_like to clone name
# loop through both arrays and set vega_transcript_like to clone_name-101 etc
####################################################################################
else{
if(defined($CLONE_NAME)){
my $id = $CLONE_NAME;
if(!defined($xref_added{$id.":".$clone_based_vega_gene_id})){
$max_xref_id++;
$ins_xref_sth->execute($max_xref_id, $clone_based_vega_gene_id, $id, $id);
$xref_added{$id.":".$clone_based_vega_gene_id} = $max_xref_id;
}
$max_object_xref_id++;
$ins_object_xref_sth->execute($max_object_xref_id, $gene_id, 'Gene', $xref_added{$id.":".$clone_based_vega_gene_id});
$ins_dep_ix_sth->execute($max_object_xref_id, 100 , 100);
my $tran_name_ext = 201;
foreach my $tran (sort keys %no_vega){
my $id = $CLONE_NAME."-".$tran_name_ext;
if(!defined($xref_added{$id.":".$clone_based_vega_tran_id})){
$max_xref_id++;
$ins_xref_sth->execute($max_xref_id, $clone_based_vega_tran_id, $id, $id);
$xref_added{$id.":".$clone_based_vega_tran_id} = $max_xref_id;
}
$max_object_xref_id++;
$ins_object_xref_sth->execute($max_object_xref_id, $no_vega{$tran}, 'Transcript', $xref_added{$id.":".$clone_based_vega_tran_id});
$ins_dep_ix_sth->execute($max_object_xref_id, 100, 100);
$tran_name_ext++;
}
}
else{
#get the clone name
my $gene= $ga->fetch_by_dbID($gene_id);
my $new_gene = $gene->transform('clone');
my $new_clone_name = undef;
if(defined($new_gene)){
$new_clone_name = $new_gene->slice->seq_region_name;
}
else{
# on more than one clone?? try
my $slice = $gene->slice->sub_Slice($gene->start,$gene->end,$gene->strand);
my $clone_projection = $slice->project('clone');
foreach my $seg (@$clone_projection) {
my $clone = $seg->to_Slice();
$new_clone_name = $clone->seq_region_name;
}
if(!defined($new_clone_name)){
# try going via contig
my $super_projection = $slice->project('contig');
my $super;
foreach my $seg (@$super_projection) {
$super = $seg->to_Slice();
$new_clone_name = $super->seq_region_name;
}
my $clone_projection = $super->project('clone');
foreach my $seg (@$clone_projection) {
my $clone = $seg->to_Slice();
$new_clone_name = $clone->seq_region_name;
}
if(!defined($new_clone_name)){
print STDERR "PROJECT failed for ".$gene->stable_id."\n";
next;
}
}
}
# store the data
if(!defined($xref_added{$new_clone_name.":".$clone_based_ensembl_gene_id})){
$max_xref_id++;
$ins_xref_sth->execute($max_xref_id, $clone_based_ensembl_gene_id, $new_clone_name, $new_clone_name);
$xref_added{$new_clone_name.":".$clone_based_ensembl_gene_id} = $max_xref_id;
}
$max_object_xref_id++;
$ins_object_xref_sth->execute($max_object_xref_id, $gene->dbID, 'Gene', $xref_added{$new_clone_name.":".$clone_based_ensembl_gene_id});
$ins_dep_ix_sth->execute($max_object_xref_id, 100, 100);
my $tran_name_ext = 201;
foreach my $tran (sort keys %no_vega){
my $id = $new_clone_name."-".$tran_name_ext;
if(!defined($xref_added{$id.":".$clone_based_ensembl_tran_id})){
$max_xref_id++;
$ins_xref_sth->execute($max_xref_id, $clone_based_ensembl_tran_id, $id, $id);
$xref_added{$id.":".$clone_based_ensembl_tran_id} = $max_xref_id;
}
$max_object_xref_id++;
$ins_object_xref_sth->execute($max_object_xref_id, $no_vega{$tran}, 'Transcript', $xref_added{$id.":".$clone_based_ensembl_tran_id});
$ins_dep_ix_sth->execute($max_object_xref_id, 100, 100);
$tran_name_ext++;
}
}
}
if($vega_count){
$total_gene_vega++;
}
$total_gene++;
# print "Finished Gene ".$gene->stable_id."\t$ODN\t $vega_count\n"
}
$add_syn_sth->finish;
#
# Now check for duplicate clone names as gene names.
#
my $xref_list_sql = 'select x.xref_id, x.label, count(*) as count from source s, xref x, object_xref ox where s.source_id = x.source_id and s.name like "Clone_based_ensembl_gene" and x.xref_id = ox.xref_id and ox.ensembl_object_type = "Gene" group by xref_id having count >1';
# may need to add gsi to get the order the same each time
my $object_xref_list = "select object_xref_id, ensembl_id from object_xref where xref_id = ? order by ensembl_id"; # Can only be linked to a gene so no point checking really.
my $ox_list_sth = $self->xref->dbc->prepare($object_xref_list);
my $update_first_xref = "update xref set accession = ?, label = ? where xref_id = ?"; # just rename xref;
my $update_first_sth = $self->xref->dbc->prepare($update_first_xref);
my $change_object_xref = "update object_xref set xref_id = ? where xref_id = ? and ensembl_id = ?";
my $change_ox_sth = $self->xref->dbc->prepare($change_object_xref);
$sth = $self->xref->dbc->prepare($xref_list_sql);
$sth->execute;
my ($xref, $count);
$sth->bind_columns(\$xref,\$ name,\$ count);
while($sth->fetch){
$ox_list_sth->execute($xref);
my ($object_xref_id, $ensembl_id);
$count = 1;
$ox_list_sth->bind_columns(\$object_xref_id,\$ ensembl_id);
while($ox_list_sth->fetch){
my $new_name = $name."-".$count;
if($count == 1){
$update_first_sth->execute($new_name, $new_name, $xref);
$xref_added{$new_name.":".$clone_based_ensembl_gene_id} = $xref;
}
else{
#add new one
if(!defined($xref_added{$new_name.":".$clone_based_ensembl_gene_id})){
$max_xref_id++;
$ins_xref_sth->execute($max_xref_id, $clone_based_ensembl_gene_id, $new_name, $new_name);
$xref_added{$new_name.":".$clone_based_ensembl_gene_id} = $max_xref_id;
}
else{
print STDERR "$new_name already exists????\n";
}
$change_ox_sth->execute($max_xref_id, $xref, $ensembl_id);
}
$count++;
}
}
$change_ox_sth->finish;
$update_first_sth->finish;
$ox_list_sth->finish;
$ins_dep_ix_sth->finish;
my $sth_stat = $self->xref->dbc->prepare("insert into process_status (status, date) values('official_naming_done',now())");
$sth_stat->execute();
$sth_stat->finish; } |