annotate variant_effect_predictor/Bio/SeqIO/raw.pm @ 0:2bc9b66ada89 draft default tip

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