From 00741db6445c5d88d91d34f05c812fea57e2061b Mon Sep 17 00:00:00 2001 From: Magali Ruffier <mr6@ebi.ac.uk> Date: Thu, 11 Aug 2016 17:02:51 +0100 Subject: [PATCH] iENSCORESW-1890: keep correct master of dependent --- misc-scripts/xref_mapping/XrefMapper/ProcessPrioritys.pm | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/misc-scripts/xref_mapping/XrefMapper/ProcessPrioritys.pm b/misc-scripts/xref_mapping/XrefMapper/ProcessPrioritys.pm index cfe4d1adec..60e2e347cc 100644 --- a/misc-scripts/xref_mapping/XrefMapper/ProcessPrioritys.pm +++ b/misc-scripts/xref_mapping/XrefMapper/ProcessPrioritys.pm @@ -281,12 +281,16 @@ sub process_dependents{ push @{ $ensembl_ids{$new_object_type} }, $new_ensembl_id; } + ## Loop through all dependent xrefs of old master xref, and recurse while(my $xref_id = pop(@master_xrefs)){ # Get dependent xrefs, be they gene, transcript or translation $dep_sth->execute($xref_id); $dep_sth->bind_columns(\$dep_xref_id, \$linkage_annotation, \$linkage_source_id, \$object_type); + if ($recursive) { + $new_master_xref_id = $xref_id; + } while($dep_sth->fetch()){ @@ -314,10 +318,11 @@ sub process_dependents{ } } } - push @master_xrefs, $dep_xref_id; # remember chained dependent xrefs + unless ($dep_xref_id == $xref_id) { + push @master_xrefs, $dep_xref_id; # remember chained dependent xrefs + } } $recursive = 1; - $new_master_xref_id = $dep_xref_id; } $matching_ens_sth->finish(); -- GitLab