Newer
Older
use lib 't';
use strict;
use warnings;
BEGIN { $| = 1;
use Test;
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
}
use MultiTestDB;
use Bio::EnsEMBL::DBSQL::ArchiveStableIdAdaptor;
use TestUtils qw(test_getter_setter debug);
our $verbose = 0;
#
# 1 ArchiveStableId adaptor compiles
#
ok(1);
my $multi = MultiTestDB->new;
my $db = $multi->get_DBAdaptor('core');
my $asia = $db->get_ArchiveStableIdAdaptor();
my $asi = $asia->fetch_by_stable_id( "G1" );
_print_asi( $asi );
#
# 2 retrieval of an archiveStableId
#
ok( $asi );
my $pre_asis = $asi->get_all_predecessors();
for my $asi ( @$pre_asis ) {
debug( "Pre G1" );
_print_asi( $asi );
}
#
# 3 how many predecessors does it have
#
ok( scalar( @$pre_asis ) == 2 );
my $transcripts = $pre_asis->[0]->get_all_transcript_archive_ids();
for my $asi ( @$transcripts ) {
debug( "Transcripts G1" );
_print_asi( $asi );
my $tl = $asi->get_translation_archive_id();
_print_asi( $tl );
}
#
# 4 transcripts for a gene
#
ok( scalar( @$transcripts ) == 1);
$pre_asis = $pre_asis->[0]->get_all_predecessors();
debug( "Predecessors: ".scalar( @$pre_asis ) );
#
# 5 no predecessor case
#
ok( scalar( @$pre_asis ) == 0 );
$asi = $asia->fetch_by_stable_id_dbname( "G4", "release_1" );
my $succ_asis = $asi->get_all_successors();
for my $asi ( @$succ_asis ) {
debug( "Succ G4.1" );
_print_asi( $asi );
}
#
# 6 successor case
#
ok( scalar( @$succ_asis ) == 1 );
$succ_asis = $succ_asis->[0]->get_all_successors();
for my $asi ( @$succ_asis ) {
debug( "Succ Succ G4.1" );
_print_asi( $asi );
}
#
# 7 no successor case
#
ok( scalar( @$succ_asis ) == 0 );
#
# 8 fetch_all_currently_related
#
$asi = $asia->fetch_by_stable_id_dbname( "G2", "release_1" );
my $asis = $asia->fetch_all_currently_related( $asi );
debug( "Currently related from G2.release_1" );
for my $asi ( @$asis ) {
_print_asi( $asi );
}
ok(( $asis->[0]->db_name eq "release_4" ) &&
( scalar @$asis == 2 ));
#
# 9 reject unknown stable ids
#
ok( ! defined $asia->fetch_by_stable_id_dbname( "FooBar", "release_unknown" ));
sub _print_asi {
my $asi = shift;
debug( "stable id: ".$asi->stable_id().
"\nversion: ".$asi->version().
"\ntype: ".$asi->type().
"\ndbname: ".$asi->db_name().
"\nTranscripts ".($asi->get_all_transcript_archive_ids()||"").
"\nTranslation ".($asi->get_translation_archive_id()||"").
"\nPeptide ".($asi->get_peptide()||"")."\n" );
}