From 600f9d5ac8bc1a6dd62170f27526dae1efa62fbb Mon Sep 17 00:00:00 2001 From: Rhoda Kinsella <rhoda@ebi.ac.uk> Date: Wed, 1 Jun 2011 15:32:15 +0000 Subject: [PATCH] Ian modified code to deal with name change for Corf genes when there are one to many. --- .../xref_projection/project_display_xrefs.pl | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/misc-scripts/xref_projection/project_display_xrefs.pl b/misc-scripts/xref_projection/project_display_xrefs.pl index 9264da5128..9a5f0b715c 100644 --- a/misc-scripts/xref_projection/project_display_xrefs.pl +++ b/misc-scripts/xref_projection/project_display_xrefs.pl @@ -13,6 +13,8 @@ use Bio::EnsEMBL::Utils::Eprof qw(eprof_start eprof_end eprof_dump); my $method_link_type = "ENSEMBL_ORTHOLOGUES"; +my %seen; + my ($conf, $registryconf, $version, $compara, $from_species, @to_multi, $print, $names, $go_terms, $delete_names, $delete_go_terms, $no_backup, $full_stats, $descriptions, $release, $no_database, $quiet, $max_genes, $one_to_many, $go_check, $all_sources, $delete_only, $to_species, $from_gene); GetOptions('conf=s' => \$conf, @@ -278,7 +280,7 @@ sub project_display_names { my $from_latin_species = ucfirst(Bio::EnsEMBL::Registry->get_alias($from_species)); # if no display name set, do the projection - if (check_overwrite_display_xref($to_gene, $from_source, $to_source, $dbEntry)) { + if (check_overwrite_display_xref($to_gene, $from_source, $to_source, $dbEntry, $gene_number)) { if ($dbEntry) { @@ -626,7 +628,7 @@ sub delete_go_terms { sub check_overwrite_display_xref { - my ($to_gene, $from_dbname, $to_dbname, $ref_dbEntry) = @_; + my ($to_gene, $from_dbname, $to_dbname, $ref_dbEntry, $gene_number) = @_; return 1 if (!$to_gene->external_name() && $to_species ne "zebrafish"); @@ -651,9 +653,14 @@ sub check_overwrite_display_xref { return 1 if ($to_dbname eq "Clone_based_ensembl_gene" or $to_dbname eq "Clone_based_vega_gene"); - if ($ref_dbEntry->display_id =~ /C(\w+)orf(\w+)/){ - $ref_dbEntry->display_id("C".$to_seq_region_name."H".$1."orf".$2); - return 1; + my $name = $ref_dbEntry->display_id; + if($seen{$ref_dbEntry->dbID}){ + $name = $seen{$ref_dbEntry->dbID}; + } + if ( $name =~ /C(\w+)orf(\w+)/){ + $seen{$ref_dbEntry->dbID} = $name; + $ref_dbEntry->display_id("C".$to_seq_region_name."H".$1."orf".$2); + return 1; } if (!defined ($to_dbEntry) || (($to_dbEntry->display_id =~ /:/) and $to_dbname eq "ZFIN_ID") ){ -- GitLab