This class extends the DBEntry in order to associate Evidence Tags
to the relationship between EnsEMBL objects and GO identifiers. The
relationship to GO that is stored in the database is actually derived
through the relationship of EnsEMBL peptides to SwissProt peptides, i.e.
the relationship is derived like this:
ENSP -> SWISSPROT -> GO
And the evidence tag describes the relationship between the SwissProt
Peptide and the GO entry.
In reality, however, we store this in the database like this:
ENSP -> SWISSPROT
ENSP -> GO
and the evidence tag hangs off of the relationship between the ENSP and
the GO identifier. Some ENSPs are associated with multiple closely
related Swissprot entries which may both be associated with the same GO
identifier but with different evidence tags. For this reason a single
'GoXref' can have multiple evidence tags.
sub add_linkage_type
{ my ( $self, $lt, $source_dbentry ) = @_;
if ( !defined($lt) ) {
$self->throw("linkage type argument required");
}
if ( defined($source_dbentry)
&& !$source_dbentry->isa('Bio::EnsEMBL::DBEntry') )
{
$self->throw("source_dbentry must be a Bio::EnsEMBL::DBEntry");
}
$self->{'linkage_types'} ||= [];
push @{ $self->{'linkage_types'} },
[ $lt, ( $source_dbentry || () ) ]; } |