From f395526460e0cce46f71bc6a9e33b5b7286a2e1f Mon Sep 17 00:00:00 2001 From: Glenn Proctor <gp1@sanger.ac.uk> Date: Fri, 15 Oct 2004 15:03:59 +0000 Subject: [PATCH] Added storing of ensembl object types for dependent xrefs. --- .../xref_mapping/XrefMapper/BasicMapper.pm | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/misc-scripts/xref_mapping/XrefMapper/BasicMapper.pm b/misc-scripts/xref_mapping/XrefMapper/BasicMapper.pm index a0c84dcf0f..ca2754e105 100644 --- a/misc-scripts/xref_mapping/XrefMapper/BasicMapper.pm +++ b/misc-scripts/xref_mapping/XrefMapper/BasicMapper.pm @@ -694,9 +694,12 @@ sub store { my $object_xref_id = $max_object_xref_id + 1; # keep a (unique) list of xref IDs that need to be written out to file as well - # this is a hash of lists, keyed on xref id that relates xrefs to e! objects (may be 1-many) + # this is a hash of hashes, keyed on xref id that relates xrefs to e! objects (may be 1-many) my %primary_xref_ids = (); + # also keep track of types of ensembl objects + my %ensembl_object_types; + my $dir = $self->dir(); foreach my $file (glob("$dir/*.map")) { @@ -726,6 +729,8 @@ sub store { # TODO - evalue? $object_xref_id++; + $ensembl_object_types{$target_id} = $type; + #push @{$primary_xref_ids{$query_id}}, $target_id; $primary_xref_ids{$query_id}{$target_id} = $target_id; @@ -749,7 +754,7 @@ sub store { print "Read $total_lines lines from $total_files exonerate output files\n"; # write relevant xrefs to file - $self->dump_xrefs(\%primary_xref_ids, $object_xref_id+1); + $self->dump_xrefs(\%primary_xref_ids, $object_xref_id+1, \%ensembl_object_types); } @@ -816,9 +821,10 @@ sub get_analysis_id { sub dump_xrefs { - my ($self, $xref_ids_hashref, $start_object_xref_id) = @_; + my ($self, $xref_ids_hashref, $start_object_xref_id, $ensembl_object_types_hashref) = @_; my @xref_ids = keys %$xref_ids_hashref; my %xref_to_objects = %$xref_ids_hashref; + my %ensembl_object_types = %$ensembl_object_types_hashref; open (XREF, ">xref.txt"); open (OBJECT_XREF, ">>object_xref.txt"); @@ -894,9 +900,8 @@ sub dump_xrefs { if (defined $xref_to_objects{$xref_id}) { my @objects = keys( %{$xref_to_objects{$xref_id}} ); print "xref $accession has " . scalar(@objects) . " associated ensembl objects\n"; - # TODO type - keep hash in store method? - my $type = "xxx"; foreach my $object_id (@objects) { + my $type = $ensembl_object_types{$object_id}; print OBJECT_XREF "$object_xref_id\t$object_id\t$type\t$core_xref_id DEPENDENT\n"; $object_xref_id++; } -- GitLab