diff --git a/misc-scripts/xref_mapping/XrefMapper/XrefLoader.pm b/misc-scripts/xref_mapping/XrefMapper/XrefLoader.pm index 0e2f5d1fbc851a7bf131e2c8bffe3611e48af16d..f34cecc69023848195372b3907a1b902e151d86d 100644 --- a/misc-scripts/xref_mapping/XrefMapper/XrefLoader.pm +++ b/misc-scripts/xref_mapping/XrefMapper/XrefLoader.pm @@ -341,6 +341,8 @@ GSQL else{ my $count = 0; my $ox_count = 0; + my @master_problems; + my $err_master_count=0; $dependent_sth->execute($source_id, $type); my ($xref_id, $acc, $label, $version, $desc, $info, $object_xref_id, $ensembl_id, $ensembl_type, $master_xref_id); $dependent_sth->bind_columns(\$xref_id, \$acc, \$label, \$version, \$desc, \$info, \$object_xref_id, \$ensembl_id, \$ensembl_type, \$master_xref_id); @@ -354,15 +356,25 @@ GSQL } if($last_xref != $xref_id or $last_ensembl != $ensembl_id){ $add_object_xref_sth->execute(($object_xref_id+$object_xref_offset), $ensembl_id, $ensembl_type, ($xref_id+$xref_offset), $analysis_ids{$ensembl_type}); - if (defined($master_xref_id)){ # need to sort this out for FlyBase since there are EMBL direct entries from the GFF and dependent xrefs from Uniprot - $add_dependent_xref_sth->execute(($object_xref_id+$object_xref_offset), ($master_xref_id+$xref_offset), ($xref_id+$xref_offset) ); - } - + if (defined($master_xref_id)){ # need to sort this out for FlyBase since there are EMBL direct entries from the GFF and dependent xrefs from Uniprot + $add_dependent_xref_sth->execute(($object_xref_id+$object_xref_offset), ($master_xref_id+$xref_offset), ($xref_id+$xref_offset) ); + } + else{ + if($err_master_count < 10){ + push @master_problems, $acc; + } + $err_master_count++; + } $ox_count++; } $last_xref = $xref_id; $last_ensembl = $ensembl_id; - } + } + if(@master_problems){ + print "WARNING:: for $name $err_master_count problem master xrefs\nExamples are :-\t"; + print join ", ",@master_problems; + print "\n"; + } print "DEP $count xrefs, $ox_count object_xrefs\n" if ($verbose); } } @@ -517,7 +529,7 @@ GSQL $get_xref_interpro_sth->bind_columns(\$xref_id, \$acc, \$version, \$label, \$desc, \$type, \$info); while($get_xref_interpro_sth->fetch){ - $add_xref_sth->execute(($xref_id+$xref_offset), $ex_id, $acc, $label, $version, $desc, $type, $info); + $add_xref_sth->execute(($xref_id+$xref_offset), $ex_id, $acc, $label, $version, $desc, 'UNMAPPED', $info); $set_unmapped_sth->execute($analysis_id, $ex_id, $acc, $reason_id{"NO_MAPPING"} ); push @xref_list, $xref_id; } @@ -575,7 +587,7 @@ DIR while($direct_unmapped_sth->fetch()){ my $ex_id = $name_to_external_db_id{$dbname}; if(defined($name_to_external_db_id{$dbname})){ - $add_xref_sth->execute(($xref_id+$xref_offset), $ex_id, $acc, $label, $version, $desc, $type, $info); + $add_xref_sth->execute(($xref_id+$xref_offset), $ex_id, $acc, $label, $version, $desc, 'UNMAPPED', $info); $set_unmapped_sth->execute($analysis_id, $ex_id, $acc, $reason_id{"NO_STABLE_ID"}); push @xref_list, $xref_id; } @@ -611,7 +623,7 @@ MIS while($misc_unmapped_sth->fetch()){ my $ex_id = $name_to_external_db_id{$dbname}; if(defined($name_to_external_db_id{$dbname})){ - $add_xref_sth->execute(($xref_id+$xref_offset), $ex_id, $acc, $label, $version, $desc, $type, $info); + $add_xref_sth->execute(($xref_id+$xref_offset), $ex_id, $acc, $label, $version, $desc, 'UNMAPPED', $info); $set_unmapped_sth->execute($analysis_id, $ex_id, $acc, $reason_id{"NO_MAPPING"}); push @xref_list, $xref_id; } @@ -658,7 +670,7 @@ DEP next; } if($last_acc ne $acc){ - $add_xref_sth->execute(($xref_id+$xref_offset), $ex_id, $acc, $label||$acc, $version, $desc, $type, $info); + $add_xref_sth->execute(($xref_id+$xref_offset), $ex_id, $acc, $label||$acc, $version, $desc, 'UNMAPPED', $info); } $last_acc = $acc; $set_unmapped_sth->execute($analysis_id, $ex_id, $acc, $parent); @@ -712,7 +724,7 @@ SEQ next; } if($last_xref != $xref_id){ - $add_xref_sth->execute(($xref_id+$xref_offset), $ex_id, $acc, $label, $version, $desc, $type, $info); + $add_xref_sth->execute(($xref_id+$xref_offset), $ex_id, $acc, $label, $version, $desc, 'UNMAPPED', $info); } $last_xref = $xref_id; if(defined($ensembl_id)){ @@ -772,7 +784,7 @@ WEL if(!defined($ex_id)){ next; } - $add_xref_sth->execute(($xref_id+$xref_offset), $ex_id, $acc, $label, $version, $desc, $type, $info); + $add_xref_sth->execute(($xref_id+$xref_offset), $ex_id, $acc, $label, $version, $desc, 'UNMAPPED', $info); $set_unmapped_sth->execute($analysis_id, $ex_id, $acc); push @xref_list, $xref_id; }