File: SeqFeatAnnotated.t

package info (click to toggle)
bioperl 1.6.1-2
  • links: PTS, VCS
  • area: main
  • in suites: squeeze
  • size: 40,768 kB
  • ctags: 12,005
  • sloc: perl: 174,299; xml: 13,923; sh: 1,941; lisp: 1,803; asm: 109; makefile: 53
file content (97 lines) | stat: -rw-r--r-- 2,809 bytes parent folder | download
1
2
3
4
5
6
7
8
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
# -*-Perl-*- Test Harness script for Bioperl
# $Id: SeqFeatAnnotated.t 15112 2008-12-08 18:12:38Z sendu $

use strict;

BEGIN { 
    use lib '.';
    use Bio::Root::Test;
    
    test_begin(-tests => 34, 
	       -requires_modules => [qw(URI::Escape Graph::Directed)],
	       -requires_networking => 1
	);
	
	use_ok('Bio::SeqFeature::Generic');
	use_ok('Bio::SeqFeature::Annotated');
}

my $sfa = Bio::SeqFeature::Annotated->new(-start => 1,
					  -end => 5,
					  -strand => "+",
					  -frame => 2,
					  -type => 'nucleotide_motif',
					  -phase => 2,
					  -score => 12,
					  -source => 'program_b',
					  -display_name => 'test.annot',
					  -seq_id => 'test.displayname' );

ok (defined $sfa);
my $loc = $sfa->location;
ok $loc->isa("Bio::Location::Simple");    
ok $sfa->display_name eq 'test.annot';

#test bsfa::from_feature
my $sfg = Bio::SeqFeature::Generic->new ( -start => 400,
					  -end => 440,
					  -strand => 1,
					  -primary => 'nucleotide_motif',
					  -source  => 'program_a',
					  -tag => {
					  silly => 20,
					  new => 1
					  }
					  );
my $sfa2;
$sfa2 = Bio::SeqFeature::Annotated->new(-feature => $sfg);

is $sfa2->type->name,'nucleotide_motif';
is $sfa2->primary_tag, 'nucleotide_motif';
is $sfa2->source->display_text,'program_a';
is $sfa2->source_tag,'program_a';
is $sfa2->strand,1;
is $sfa2->start,400;
is $sfa2->end,440;
is $sfa2->get_Annotations('silly')->value,20;
is $sfa2->get_Annotations('new')->value,1;
my $sfaa = Bio::SeqFeature::Annotated->new(-feature => $sfa);
is $sfaa->type->name,'nucleotide_motif';
is $sfaa->primary_tag, 'nucleotide_motif';
is $sfaa->source->display_text,'program_b';
is $sfaa->source_tag,'program_b';
is $sfaa->strand,1;
is $sfaa->start,1;
is $sfaa->end,5;
is $sfaa->score,12;

my $sfa3 = Bio::SeqFeature::Annotated->new( -start => 1,
					-end => 5,
					-strand => "+",
					-frame => 2,
					-phase => 2,
					-score => 12,
					-display_name => 'test.annot',
					-seq_id => 'test.displayname' );
$sfa3->from_feature($sfg);

is $sfa3->type->name,'nucleotide_motif', 'type->name';
is $sfa3->primary_tag, 'nucleotide_motif', 'primary_tag';
is $sfa3->source->display_text,'program_a';
is $sfa3->source_tag,'program_a';
is $sfa3->strand,1;
is $sfa3->start,400;
is $sfa3->end,440;
is $sfa3->get_Annotations('silly')->value,20;
is $sfa3->get_Annotations('new')->value,1;

# Note there is an API conflict with SeqFeature::Generic, where score is a
# simple scalar, and here it is a Bio::Annotation::SimpleValue
# By popular vote there is no operator overloading, so this needs to be
# resolved
is $sfa3->score(), 12; 
$sfa3->score(11);
is $sfa3->score(), 11; 
$sfa3->score(0);
is $sfa3->score(), 0;	# test that setting to 0 no longer is overriddent to set score to '.' (fixed in Bio::SeqFeature::Annotated version 1.3.7)