diff --git a/misc-scripts/xref_mapping/XrefMapper/Interpro.pm b/misc-scripts/xref_mapping/XrefMapper/Interpro.pm index 68831350eed48f3737622b91e18e5b5fbb17b779..6629427c53faa2e727666daad994aa7f0b3cd705 100644 --- a/misc-scripts/xref_mapping/XrefMapper/Interpro.pm +++ b/misc-scripts/xref_mapping/XrefMapper/Interpro.pm @@ -52,6 +52,8 @@ sub process{ $domain_to_translation{$domain} ||= []; push @{$domain_to_translation{$domain}}, $translation; } + + my $dep_sth = $self->xref->dbc->prepare("select dependent_xref_id, linkage_annotation from dependent_xref where master_xref_id = ?"); # Get a list of interpro data, including dependent xrefs if avail $sth = $self->xref->dbc->prepare(" @@ -87,6 +89,33 @@ sub process{ $add_go_xref_sth->execute($object_xref_id, $go_linkage ); $goxref_count ++; } + + + + # + # Also add dependents of the xref and its etc...!!! + # + my @master_xref_ids; + push @master_xref_ids, $dx_xref_id; + while (my $new_master_id = pop(@master_xref_ids)){ + $dep_sth->execute($new_master_id); + my $dep_xref_id; + my $link; + $dep_sth->bind_columns(\$dep_xref_id, \$link); + while($dep_sth->fetch()){ + $add_object_xref_sth->execute($object_xref_id, $ensembl_id, 'Translation', $dep_xref_id, 'DEPENDENT', $new_master_id); + if(!$add_object_xref_sth->err){ + push @master_xref_ids, $dep_xref_id; + if($link){ + $add_go_xref_sth->execute($object_xref_id, $link ); + } + } + $object_xref_id++; + } + } + + + $object_xref_id++; } }