Sync'ed RichSeqI with the implementation. RichSeq provides backward
[bioperl-live.git] / t / SeqUtils.t
blob73bce9570a347a48625b9150738398aeb338d13a
1 # -*-Perl-*-
2 ## Bioperl Test Harness Script for Modules
3 ##$Id$
5 use strict;
7 BEGIN {     
8     # to handle systems with no installed Test module
9     # we include the t dir (where a copy of Test.pm is located)
10     # as a fallback
11     eval { require Test; };
12     if( $@ ) {
13         use lib 't';
14     }
15     use Test;
16     plan tests => 18;
19 use Bio::PrimarySeq;
20 use Bio::SeqUtils;
21 ok 1;
23 my ($seq, $util, $ascii, $ascii_aa, $ascii3);
25 #                     !    !          
26 $ascii =    'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
27 $ascii_aa = 'ABCDEFGHIXKLMNXPQRSTUVWXYZ';
29 $ascii3 = 
30     'AlaAsxCysAspGluPheGlyHisIleXaaLysLeuMetAsnXaaProGlnArgSerThrSelValTrpXaaTyrGlx';
32 $seq = Bio::PrimarySeq->new('-seq'=> $ascii,
33                                '-alphabet'=>'protein', 
34                                '-id'=>'test');
36 # one letter amino acid code to three letter code
37 ok $util = new Bio::SeqUtils;
38 ok $util->seq3($seq), $ascii3;
40 #using anonymous hash
41 ok (Bio::SeqUtils->seq3($seq), $ascii3); 
42 ok (Bio::SeqUtils->seq3($seq, undef, ','), 
43     'Ala,Asx,Cys,Asp,Glu,Phe,Gly,His,Ile,Xaa,Lys,'.
44     'Leu,Met,Asn,Xaa,Pro,Gln,Arg,Ser,Thr,Sel,Val,Trp,Xaa,Tyr,Glx');
46 $seq->seq('asd-KJJK-');
47 ok (Bio::SeqUtils->seq3($seq, '-', ':'), 
48     'Ala:Ser:Asp:Ter:Lys:Xaa:Xaa:Lys:Ter');
50 # three letter amino acid code to one letter code
51 ok (Bio::SeqUtils->seq3in($seq, 'AlaPYHCysAspGlu')), 
52 ok  $seq->seq, 'AXCDE';
53 ok (Bio::SeqUtils->seq3in($seq, $ascii3)->seq, $ascii_aa);
54 #ok ();
57 # Tests for multiframe translations
60 $seq = Bio::PrimarySeq->new('-seq'=> 'agctgctgatcggattgtgatggctggatggcttgggatgctgg',
61                             '-alphabet'=>'dna', 
62                             '-id'=>'test2');
64 my @a = $util->translate_3frames($seq);
65 ok scalar @a, 3;
66 #foreach $a (@a) {
67 #    print 'ID: ', $a->id, ' ', $a->seq, "\n";
70 @a = $util->translate_6frames($seq);
71 ok scalar @a, 6;
72 #foreach $a (@a) {
73 #    print 'ID: ', $a->id, ' ', $a->seq, "\n";
77 # test for valid AA return
80 my @valid_aa = sort Bio::SeqUtils->valid_aa;
81 ok(@valid_aa, 25);
82 ok ($valid_aa[1], 'A');
84 @valid_aa = sort Bio::SeqUtils->valid_aa(1);
85 ok(@valid_aa, 25);
86 ok ($valid_aa[1], 'Arg');
88 my %valid_aa = Bio::SeqUtils->valid_aa(2);
89 ok keys %valid_aa, 50;
90 ok($valid_aa{'C'}, 'Cys');
91 ok( $valid_aa{'Cys'}, 'C');