~ubuntu-branches/ubuntu/lucid/bioperl/lucid

« back to all changes in this revision

Viewing changes to t/AlignIO.t

  • Committer: Bazaar Package Importer
  • Author(s): Matt Hope
  • Date: 2004-04-18 14:24:11 UTC
  • mfrom: (1.2.1 upstream) (2.1.1 warty)
  • Revision ID: james.westby@ubuntu.com-20040418142411-gr92uexquw4w8liq
Tags: 1.4-1
* New upstream release
* Examples and working code are installed by default to usr/bin,
  this has been moved to usr/share/doc/bioperl/bin

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
# This is -*-Perl-*- code
2
 
# $Id: AlignIO.t,v 1.24.2.3 2002/03/18 14:52:19 jason Exp $
 
2
# $Id: AlignIO.t,v 1.40 2003/11/25 18:59:42 jason Exp $
3
3
use strict;
4
4
 
 
5
my $DEBUG = $ENV{'BIOPERLDEBUG'} || 0;
5
6
BEGIN { 
6
7
    eval { require Test; };
7
8
    if( $@ ) { 
8
9
        use lib 't';
9
10
    }
10
11
    use Test;
11
 
    plan tests => 53;
 
12
    plan tests => 75;
12
13
}
13
14
 
14
15
use Bio::SimpleAlign;
19
20
 
20
21
END {
21
22
    unlink(Bio::Root::IO->catfile("t","data","testout2.pfam"),
22
 
         Bio::Root::IO->catfile("t","data","testout.selex"),
23
 
         Bio::Root::IO->catfile("t","data","testout.pfam"),
24
 
         Bio::Root::IO->catfile("t","data","testout.msf"),
25
 
         Bio::Root::IO->catfile("t","data","testout.fasta"), 
26
 
         Bio::Root::IO->catfile("t","data","testout.clustal"),
27
 
         Bio::Root::IO->catfile("t","data","testout.phylip"),
28
 
         Bio::Root::IO->catfile("t","data","testout.nexus"),
29
 
         Bio::Root::IO->catfile("t","data","testout.mega"),
 
23
           Bio::Root::IO->catfile("t","data","testout.selex"),
 
24
           Bio::Root::IO->catfile("t","data","testout.pfam"),
 
25
           Bio::Root::IO->catfile("t","data","testout.msf"),
 
26
           Bio::Root::IO->catfile("t","data","testout.fasta"), 
 
27
           Bio::Root::IO->catfile("t","data","testout.clustal"),
 
28
           Bio::Root::IO->catfile("t","data","testout.phylip"),
 
29
           Bio::Root::IO->catfile("t","data","testout.nexus"),
 
30
           Bio::Root::IO->catfile("t","data","testout.mega"),
30
31
           );
31
 
 
32
 
 
33
32
}
34
33
my ($str,$aln,$strout,$status);
35
34
 
36
 
# STOCKHOLM
37
 
$str = Bio::AlignIO->new('-file' => Bio::Root::IO->catfile("t","data","testaln.stockholm"),
38
 
                           '-format' => 'stockholm');
 
35
# STOCKHOLM (multiple concatenated files, as Pfam flatfile)
 
36
ok $str  = new Bio::AlignIO (
 
37
    '-file'     => Bio::Root::IO->catfile("t","data","testaln.stockholm"),
 
38
    '-format'   => 'stockholm');
39
39
ok defined($str) && ref($str) && $str->isa('Bio::AlignIO');
40
40
$aln = $str->next_aln();
41
41
ok $aln->get_seq_by_pos(1)->get_nse, '1433_LYCES/9-246';
 
42
$aln = $str->next_aln();
 
43
ok $aln->get_seq_by_pos(1)->get_nse, '1433_LYCES/9-246';
 
44
$aln = $str->next_aln();
 
45
ok $aln->get_seq_by_pos(1)->get_nse, '1433_LYCES/9-246';
42
46
 
43
47
# PFAM
44
48
$str = Bio::AlignIO->new('-file' => Bio::Root::IO->catfile("t","data","testaln.pfam"));
51
55
$status = $strout->write_aln($aln);
52
56
ok $status, 1, " failed pfam output test";
53
57
 
 
58
# MAF
 
59
$str = Bio::AlignIO->new('-file' => Bio::Root::IO->catfile("t","data","humor.maf"));
 
60
$aln = $str->next_aln();
 
61
ok $aln->get_seq_by_pos(1)->get_nse, 
 
62
    'NM_006987/0-5000', " failed maf input test";
 
63
 
54
64
# MSF
55
65
$str = Bio::AlignIO->new('-file' => Bio::Root::IO->catfile("t","data","testaln.msf"));
56
66
$aln = $str->next_aln();
67
77
                           '-format' => 'fasta');
68
78
$aln = $str->next_aln();
69
79
ok $aln->get_seq_by_pos(1)->get_nse, 'AK1H_ECOLI/114-431', " failed fasta input test ";
 
80
ok ($aln->get_seq_by_pos(1)->description, 'DESCRIPTION HERE', 
 
81
    " failed fasta input test for description");
 
82
ok ($aln->get_seq_by_pos(11)->display_id, 'AK_YEAST',
 
83
    " failed fasta input test for id");
 
84
 
 
85
ok ($aln->get_seq_by_pos(11)->description, 'A COMMENT FOR YEAST', 
 
86
    " failed fasta input test for description");
 
87
 
70
88
$strout = Bio::AlignIO->new('-file' => ">".Bio::Root::IO->catfile("t","data","testout.fasta"), 
71
89
                              '-format' => 'fasta');
72
90
$status = $strout->write_aln($aln);
105
123
                           '-format' => 'clustalw');
106
124
$aln = $str->next_aln($aln);
107
125
ok $aln->get_seq_by_pos(1)->get_nse, 'P04777/1-33', "  failed clustalw (.aln) input test";
 
126
my $io = Bio::AlignIO->new(-file => Bio::Root::IO->catfile("t","data","testaln.aln") );
 
127
$aln = $io->next_aln();
 
128
ok $aln->consensus_string, 'MNEGEHQIKLDELFEKLLRARKIFKNKDVLRHSWEPKDLPHRHEQIEALAQILVPVLRGETMKIIFCGHHACELGEDRGTKGFVIDELKDVDEDRNGKVDVIEINCEHMDTHYRVLPNIAKLFDDCTGIGVPMHGGPTDEVTAKLKQVIDMKERFVIIVLDEIDKLVKKSGDEVLYSLTRINTELKRAKVSVIGISNDLKFKEYLDPRVLSSLSEEEVVFPPYDANQLRDILTQRAEEAFYPGVLDEGVIPLCAALAAREHGDARKALDLLRVAGEIAEREGASKVTEKHVWKAQEKIEQDMMEEVIKTLPLQSKVLLYAIVLLDENGDLPANTGDVYAVYRELCEYIDLEPLTQRRISDLINELDMLGIINAKVVSKGRYGRTKEIRLMVTSYKIRNVLRYDYSIQPLLTISLKSEQRRLI', " failed clustalw consensus_string test";
108
129
 
109
130
# FASTA
110
131
my $in = Bio::AlignIO->newFh('-file'  => Bio::Root::IO->catfile("t","data","testaln.fasta"), 
120
141
 
121
142
# BL2SEQ
122
143
$str = Bio::AlignIO->new('-file'   => Bio::Root::IO->catfile("t","data","bl2seq.out"),
123
 
                           '-format' => 'bl2seq');
 
144
                         '-format' => 'bl2seq',
 
145
                         '-report_type' => 'blastp');
124
146
$aln = $str->next_aln();
125
147
ok $aln->get_seq_by_pos(2)->get_nse, 'ALEU_HORVU/60-360', 
126
148
    "failed BLAST bl2seq format test";
137
159
$status = $strout->write_aln($aln);
138
160
ok $status, 1, "  failed phylip output test";
139
161
 
 
162
# METAFASTA
 
163
 
 
164
$io = Bio::AlignIO->new(-file => Bio::Root::IO->catfile("t","data","testaln.metafasta"));
 
165
$aln = $io->next_aln;
 
166
ok $aln->consensus_string,'CDEFHIJKLMNOPQRSTUVWXYZhydrophobicIOIOIJOIIOOIOOOOUIIXstructuralABAEEIEIJEIIEOAEEAAUIAX', " failed consensus_string on metafasta";
 
167
ok $aln->percentage_identity,'100', " failed percentage_identity using metafasta";
 
168
ok $aln->symbol_chars,'39'," failed symbol_chars() using metafasta";
 
169
 
140
170
# NEXUS
141
171
$str = Bio::AlignIO->new('-file' => Bio::Root::IO->catfile("t","data","testaln.nexus"),
142
172
                          '-format' => 'nexus');
189
219
 
190
220
# EMBOSS water 2.2.x sparse needle
191
221
 
192
 
$str = new Bio::AlignIO(-verbose => 1,
 
222
$str = new Bio::AlignIO(-verbose => $DEBUG,
193
223
                        '-format' => 'emboss',
194
224
                        '-file'   => Bio::Root::IO->catfile("t", "data", 'sparsealn.needle'));
195
225
$aln = $str->next_aln();
196
226
ok($aln);
197
227
ok(sprintf("%.1f",$aln->overall_percentage_identity), 2.1);
198
 
ok(sprintf("%.1f",$aln->average_percentage_identity), 4.6);
 
228
ok(sprintf("%.1f",$aln->average_percentage_identity), 38.5);
199
229
ok($aln->get_seq_by_pos(1)->length, 238);
200
230
ok($aln->length,238);
201
231
ok($aln->get_seq_by_pos(1)->get_nse,'KV1K_HUMAN/1-108');
202
232
ok($aln->get_seq_by_pos(2)->get_nse,'IF1Y_HUMAN/1-143');
203
 
 
 
233
ok($aln->get_seq_by_pos(1)->seq(), 'DIQMTQSPSTLSVSVGDRVTITCEASQTVLSYLNWYQQKPGKAPKLLIYAASSLETGVPSRFSGQGSGTBFTFTISSVZPZBFATYYCQZYLDLPRTFGQGTKVDLKR'.'-'x130);
 
234
ok($aln->get_seq_by_pos(2)->seq(), ('-'x94).'PKNKGKGGK-NRRRGKNENESEKRELVFKEDGQEYAQVIKMLGNGRLEALCFDGVKRLCHIRGKLRKKVWINTSDIILVGLRDYQDNKADVILKYNADEARSLKAYGGLPEHAKINETDTFGPGDDDEIQFDDIGDDDEDIDDI');
 
235
ok($aln->is_flush);
204
236
# MEGA
205
237
 
206
238
$str = new Bio::AlignIO('-format' => 'mega',
218
250
 
219
251
$status = $strout->write_aln($aln);
220
252
ok $status, 1, "  failed mega output test";
 
253
 
 
254
 
 
255
 
256
 
 
257
$str = new Bio::AlignIO('-format' => 'emboss',
 
258
                        '-file'   => Bio::Root::IO->catfile('t','data','gf-s71.needle'));
 
259
$aln = $str->next_aln();
 
260
ok($aln);
 
261
ok($aln->get_seq_by_pos(2)->seq(), 'MEDVTLFQFTWRKPI-RLQGEIVYKTSETQTIETNKKDVECVANFQENKEVQTDS-VDNGVGENVKKDITISKEVLNLLYDFVRDDSKVNYDRLLEFHKFDKVALETVQKYHVETRNENIILMISSSSRKTLILFGGISHETFCSHQARALLCSSSTSFSIPLPVCAISAVFYSSTQFILGDVSGNISMCSKDKIIFEKKITDGAVTCLEMCRHGLLSGSDDGNIILWQIGTSGLEKLGGTKLTVSDLSRKIRRSSTSNKPVAIVSMQVYVWPSGEEACVATETGGLYLLTLPTLDYKPLSHQTATSINKILFENQFVAVIYHTSNAAVFNSEGLVDEIPFVATLAVR----------PKLVLF--YTSVCVQDITLNCTSPFREFNNEYNPVIKFSKIRFSADLSVING-FRTSSPNSNN-----------------------------------------------');
 
262
ok($aln->get_seq_by_pos(1)->seq(), 'MEDVTLHHFRWRKPVENKNGEIVYKTSETQTAEISRKDVECVANFQKSQESQTDDFMQNGVGDGIKKEIRISKEVLGHIYDFLRDDSKVNYDRLLEFHKFDKVSLETVQKYHVETRNENIILMISNSSRKTLILFGGLSHETFCSHQARAVLCSSSTTSSLPLPVCAISAVFYSSTQFLLGDISGNISMWTKEKMIFENKVTDGSVTSLELCRYGLLSGSDDGNVILWKVEESKIEKIEGIKLTVSDLSRKIRRSSTSNKPVAIVSMQV----SGDEVCVATETGGLYLLTLPTLESKPLT-QSATSIFKILYEHPYIAVVYHTSNSAIFNSEGLVDEIPFVATLAVRCGAYFIFSNQSRLIIWSMNTRSTVIDENLNCHS-ICSLSND--------------TLQVLDGDFNLNSQSENSATSESENLRISDLQNLRMLKLQNLRTSEFQNFRTSESQYFKKDNGEL');
 
263
ok($aln->is_flush());
 
264
ok($aln->get_seq_by_pos(1)->get_nse,'gf.s71.44/1-448');
 
265
ok($aln->get_seq_by_pos(2)->get_nse,'Y50C1A.2/1-406');
 
266
 
 
267
 
 
268
# Let's parse Phylip non-interleaved
 
269
$strout = Bio::AlignIO->new('-file'  =>
 
270
                            Bio::Root::IO->catfile("t","data",
 
271
                                                   "noninterleaved.phy"),
 
272
                            '-format' => 'phylip');
 
273
$aln = $strout->next_aln($aln);
 
274
ok($aln);
 
275
ok($aln->get_seq_by_pos(2)->seq(), 'CCTCAGATCACTCTTTGGCAACGACCCCTCGTCACAATAAAGGTAGGGGGGCAACTAAAGGAAGCTCTATTAGATACAGGAGCAGATGATACAGTATTAGAAGACATGAATTTGCCAGGAAGATGGAAACCAAAAATGATAGGGGGAATTGGAGGGTTTATCAAAGTAAGACAGTATGATCAGATACCCATAGAGATCTGTGGACATAAAGCTATAGGTACAGTATTAGTAGGACCCACACCTGTCAATATAATTGGAAGAAATCTGTTGACTCAGATTGGTTGCACTTTAAATTTT' );