annotate variant_effect_predictor/Bio/SeqIO/raw.pm @ 3:d30fa12e4cc5 default tip

Merge heads 2:a5976b2dce6f and 1:09613ce8151e which were created as a result of a recently fixed bug.
author devteam <devteam@galaxyproject.org>
date Mon, 13 Jan 2014 10:38:30 -0500
parents 1f6dce3d34e0
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1 #-----------------------------------------------------------------------------
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
2 # PACKAGE : Bio::SeqIO::raw
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
3 # AUTHOR : Ewan Birney <birney@ebi.ac.uk>
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
4 # CREATED : Feb 16 1999
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
5 # REVISION: $Id: raw.pm,v 1.15.2.1 2003/02/05 21:55:21 jason Exp $
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
6 #
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
7 # Copyright (c) 1997-9 bioperl, Ewan Birney. All Rights Reserved.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
8 # This module is free software; you can redistribute it and/or
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
9 # modify it under the same terms as Perl itself.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
10 #
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
11 # _History_
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
12 #
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
13 # Ewan Birney <birney@ebi.ac.uk> developed the SeqIO
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
14 # schema and the first prototype modules.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
15 #
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
16 # This code is based on his Bio::SeqIO::Fasta module with
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
17 # the necessary minor tweaks necessary to get it to read
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
18 # and write raw formatted sequences made by
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
19 # chris dagdigian <dag@sonsorol.org>
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
20 #
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
21 # October 18, 1999 Largely rewritten by Lincoln Stein
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
22 #
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
23 # Copyright Ewan Birney
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
24 #
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
25 # You may distribute this module under the same terms as perl itself
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
26
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
27 # POD documentation - main docs before the code
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
28
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
29 =head1 NAME
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
30
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
31 Bio::SeqIO::raw - raw sequence file input/output stream
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
32
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
33 =head1 SYNOPSIS
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
34
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
35 Do not use this module directly. Use it via the L<Bio::SeqIO> class.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
36
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
37 =head1 DESCRIPTION
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
38
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
39 This object can transform Bio::Seq objects to and from raw flat
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
40 file databases.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
41
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
42
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
43 =head1 FEEDBACK
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
44
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
45 =head2 Mailing Lists
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
46
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
47 User feedback is an integral part of the evolution of this
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
48 and other Bioperl modules. Send your comments and suggestions preferably
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
49 to one of the Bioperl mailing lists.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
50 Your participation is much appreciated.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
51
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
52 bioperl-l@bioperl.org - General discussion
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
53 http://www.bioperl.org/MailList.shtml - About the mailing lists
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
54
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
55 =head2 Reporting Bugs
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
56
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
57 Report bugs to the Bioperl bug tracking system to help us keep track
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
58 the bugs and their resolution.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
59 Bug reports can be submitted via email or the web:
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
60
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
61 bioperl-bugs@bio.perl.org
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
62 http://bugzilla.bioperl.org/
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
63
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
64 =head1 AUTHORS
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
65
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
66 Ewan Birney E<lt>birney@ebi.ac.ukE<gt>
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
67 Lincoln Stein E<lt>lstein@cshl.orgE<gt>
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
68
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
69 =head1 CONTRIBUTORS
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
70
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
71 Jason Stajich E<lt>jason@bioperl.org<gt>
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
72
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
73 =head1 APPENDIX
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
74
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
75 The rest of the documentation details each of the object methods.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
76 Internal methods are usually preceded with a _
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
77
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
78 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
79
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
80
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
81 # Let the code begin...
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
82
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
83 package Bio::SeqIO::raw;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
84 use strict;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
85 use vars qw(@ISA);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
86
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
87 use Bio::SeqIO;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
88 use Bio::Seq::SeqFactory;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
89
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
90 @ISA = qw(Bio::SeqIO);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
91
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
92 sub _initialize {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
93 my($self,@args) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
94 $self->SUPER::_initialize(@args);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
95 if( ! defined $self->sequence_factory ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
96 $self->sequence_factory(new Bio::Seq::SeqFactory
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
97 (-verbose => $self->verbose(),
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
98 -type => 'Bio::Seq'));
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
99 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
100 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
101
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
102 =head2 next_seq
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
103
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
104 Title : next_seq
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
105 Usage : $seq = $stream->next_seq()
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
106 Function: returns the next sequence in the stream
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
107 Returns : Bio::Seq object
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
108 Args :
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
109
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
110
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
111 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
112
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
113 sub next_seq{
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
114 my ($self,@args) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
115 ## When its 1 sequence per line with no formatting at all,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
116 ## grabbing it should be easy :)
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
117
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
118 my $nextline = $self->_readline();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
119 if( !defined $nextline ){ return undef; }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
120
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
121 my $sequence = uc($nextline);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
122 $sequence =~ s/\W//g;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
123
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
124 return $self->sequence_factory->create(-seq => $sequence);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
125 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
126
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
127 =head2 write_seq
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
128
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
129 Title : write_seq
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
130 Usage : $stream->write_seq($seq)
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
131 Function: writes the $seq object into the stream
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
132 Returns : 1 for success and 0 for error
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
133 Args : Array of Bio::PrimarySeqI objects
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
134
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
135
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
136 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
137
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
138 sub write_seq {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
139 my ($self,@seq) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
140 foreach my $seq (@seq) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
141 $self->throw("Must provide a valid Bio::PrimarySeqI object")
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
142 unless defined $seq && ref($seq) && $seq->isa('Bio::PrimarySeqI');
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
143 $self->_print($seq->seq, "\n") or return;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
144 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
145 $self->flush if $self->_flush_on_write && defined $self->_fh;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
146 return 1;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
147 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
148
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
149 =head2 write_qual
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
150
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
151 Title : write_qual
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
152 Usage : $stream->write_qual($seq)
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
153 Function: writes the $seq object into the stream
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
154 Returns : 1 for success and 0 for error
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
155 Args : Bio::Seq object
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
156
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
157
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
158 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
159
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
160 sub write_qual {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
161 my ($self,@seq) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
162 my @qual = ();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
163 foreach (@seq) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
164 unless ($_->isa("Bio::Seq::SeqWithQuality")){
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
165 warn("You cannot write raw qualities without supplying a Bio::Seq::SeqWithQuality object! You passed a ", ref($_), "\n");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
166 next;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
167 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
168 @qual = @{$_->qual};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
169 if(scalar(@qual) == 0) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
170 $qual[0] = "\n";
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
171 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
172
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
173 $self->_print (join " ", @qual,"\n") or return;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
174
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
175 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
176 return 1;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
177 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
178 1;