# -*-Perl-*- Test Harness script for Bioperl # $Id: Splicedseq.t 15112 2008-12-08 18:12:38Z sendu $ use strict; BEGIN { use lib '.'; use Bio::Root::Test; test_begin(-tests => 14); use_ok('Bio::SeqIO'); } ok my $str = Bio::SeqIO->new( '-file'=> test_input_file('U58726.gb'), '-format' => 'GenBank'); my $seq; ok ( $seq = $str->next_seq() ); # Here is a cute way to verify the sequence by seeing if the # the translation matches what is annotated in the file -js foreach my $ft ( grep { $_->primary_tag eq 'CDS'} $seq->top_SeqFeatures ) { if( $ft->has_tag('translation') ) { my ($translation) = $ft->each_tag_value('translation'); my $t = $ft->spliced_seq(-nosort => 1); my $pepseq = $t->translate()->seq(); chop($pepseq);# chop is to remove stop codon is($translation,$pepseq); } } my $stream = Bio::SeqIO->new(-file => test_input_file('M12730.gb'), -format => 'genbank'); # Jump down to M12730 which lists CDS join(1959..2355,1..92) while ($seq->accession ne "M12730") { $seq = $stream->next_seq; } ok(my @features = $seq->get_SeqFeatures(), "get_SeqFeatures()"); my $feat; foreach my $feat2 ( @features ) { next unless ($feat2->primary_tag eq "CDS"); my @db_xrefs = $feat2->get_tag_values("db_xref"); if (grep { $_ eq "GI:150830" } @db_xrefs) { $feat = $feat2; last; } } my ($protein_seq) = $feat->get_tag_values("translation"); like($protein_seq, qr(^MKERYGTVYKGSQRLIDE.*ANEKQENALYLIIILSRTSIT$), "protein sequence"); my ($nucleotide_seq) = $feat->spliced_seq(-nosort => 1)->seq; like($nucleotide_seq, qr(^ATGAAAGAAAGATATGGA.*TCAAGGACTAGTATAACATAA$), "nucleotide sequence - correct CDS range"); is(length($nucleotide_seq), 489, "nucleotide length");