1
// -*- mode: C++; tab-width: 2; -*-
4
// --------------------------------------------------------------------------
5
// OpenMS Mass Spectrometry Framework
6
// --------------------------------------------------------------------------
7
// Copyright (C) 2003-2011 -- Oliver Kohlbacher, Knut Reinert
9
// This library is free software; you can redistribute it and/or
10
// modify it under the terms of the GNU Lesser General Public
11
// License as published by the Free Software Foundation; either
12
// version 2.1 of the License, or (at your option) any later version.
14
// This library is distributed in the hope that it will be useful,
15
// but WITHOUT ANY WARRANTY; without even the implied warranty of
16
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17
// Lesser General Public License for more details.
19
// You should have received a copy of the GNU Lesser General Public
20
// License along with this library; if not, write to the Free Software
21
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
1
// --------------------------------------------------------------------------
2
// OpenMS -- Open-Source Mass Spectrometry
3
// --------------------------------------------------------------------------
4
// Copyright The OpenMS Team -- Eberhard Karls University Tuebingen,
5
// ETH Zurich, and Freie Universitaet Berlin 2002-2013.
7
// This software is released under a three-clause BSD license:
8
// * Redistributions of source code must retain the above copyright
9
// notice, this list of conditions and the following disclaimer.
10
// * Redistributions in binary form must reproduce the above copyright
11
// notice, this list of conditions and the following disclaimer in the
12
// documentation and/or other materials provided with the distribution.
13
// * Neither the name of any author or any participating institution
14
// may be used to endorse or promote products derived from this software
15
// without specific prior written permission.
16
// For a full list of authors, refer to the file AUTHORS.
17
// --------------------------------------------------------------------------
18
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
19
// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20
// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
21
// ARE DISCLAIMED. IN NO EVENT SHALL ANY OF THE AUTHORS OR THE CONTRIBUTING
22
// INSTITUTIONS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
23
// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
24
// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
25
// OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
26
// WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
27
// OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
28
// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
23
30
// --------------------------------------------------------------------------
24
31
// $Maintainer: Clemens Groepl, Andreas Bertsch $
40
@brief Iterator for a FASTA file
42
In comparision to FastaIterator the FASTA file will be loaded first and stored to RAM, while the FastaIterator just iterates over the FASTA file without loading it completly to memory.
46
class OPENMS_DLLAPI FastaIteratorIntern : public PepIterator
51
typedef std::pair<String,String> FASTAEntry;
56
FastaIteratorIntern();
59
@brief copy constructor
61
FastaIteratorIntern(const FastaIteratorIntern&);
66
virtual ~FastaIteratorIntern();
69
@brief * Operator for derefering of iterator
70
@return FASTEEntry iterator at actual position
71
@throw Exception::InvalidIterator if iterator has not been initialized
73
virtual FASTAEntry operator*();
76
@brief ++ Operator for the iterator
77
@return reference to PepIterator
78
@throw Exception::InvalidIterator if iterator has not been initialized
80
virtual PepIterator & operator++();
83
@brief ++ Operator for the iterator
84
@return pointer to PepIterator
85
@throw Exception::InvalidIterator if iterator has not been initialized
87
virtual PepIterator * operator++(int i);
90
@brief setter for FASTA file
91
@param f const String reference representing file location
92
@throw Exception::FileNotFound
93
@throw Exception::ParseError
95
virtual void setFastaFile (const String & f);
98
@brief getter for FASTA file
99
@return String with file location
101
virtual String getFastaFile();
104
@brief setter for spectrum
105
@note note availeble for FastaIterator
106
@throw Exception::NotImplemented
108
virtual void setSpectrum (const std::vector<DoubleReal> & /*spec*/)
110
throw Exception::NotImplemented(__FILE__, __LINE__, __PRETTY_FUNCTION__);
114
@brief getter for spectrum
115
@note note availeble for FastaIterator
116
@throw Exception::NotImplemented
118
virtual const std::vector<DoubleReal> & getSpectrum ()
120
throw Exception::NotImplemented(__FILE__, __LINE__, __PRETTY_FUNCTION__);
124
@brief setter for tolerance
125
@note note availeble for FastaIterator
126
@throw Exception::NotImplemented
128
virtual void setTolerance (DoubleReal /* t */)
130
throw Exception::NotImplemented(__FILE__, __LINE__, __PRETTY_FUNCTION__);
134
@brief getter for tolerance
135
@note note availeble for FastaIterator
137
@throw Exception::NotImplemented
139
virtual DoubleReal getTolerance()
141
throw Exception::NotImplemented(__FILE__, __LINE__, __PRETTY_FUNCTION__);
145
@brief initializing of iterator
146
@return true if everything went rigth
147
@throw Exception::InvalidIterator if fastaFile was not set
149
virtual bool begin ();
152
@brief indicates whether iterator is at end
153
@return bool true if interator is at end
155
virtual bool isAtEnd ();
158
@brief needed by Factory
159
@return const string name of class
161
static const std::string getProductName()
163
return "FastaIteratorIntern";
167
@brief needed by Factory
168
@return poiter to new object
170
static PepIterator * create()
172
return new FastaIteratorIntern;
179
String fasta_file_; ///< location of the fasta file
181
std::vector<FASTAEntry > entrys_; ///< content of fasta file
183
std::vector<FASTAEntry >::iterator it_; ///< iterator over fasta file content
47
@brief Iterator for a FASTA file
49
In comparision to FastaIterator the FASTA file will be loaded first and stored to RAM, while the FastaIterator just iterates over the FASTA file without loading it completly to memory.
53
class OPENMS_DLLAPI FastaIteratorIntern :
59
typedef std::pair<String, String> FASTAEntry;
64
FastaIteratorIntern();
67
@brief copy constructor
69
FastaIteratorIntern(const FastaIteratorIntern &);
74
virtual ~FastaIteratorIntern();
77
@brief * Operator for derefering of iterator
78
@return FASTEEntry iterator at actual position
79
@throw Exception::InvalidIterator if iterator has not been initialized
81
virtual FASTAEntry operator*();
84
@brief ++ Operator for the iterator
85
@return reference to PepIterator
86
@throw Exception::InvalidIterator if iterator has not been initialized
88
virtual PepIterator & operator++();
91
@brief ++ Operator for the iterator
92
@return pointer to PepIterator
93
@throw Exception::InvalidIterator if iterator has not been initialized
95
virtual PepIterator * operator++(int i);
98
@brief setter for FASTA file
99
@param f const String reference representing file location
100
@throw Exception::FileNotFound
101
@throw Exception::ParseError
103
virtual void setFastaFile(const String & f);
106
@brief getter for FASTA file
107
@return String with file location
109
virtual String getFastaFile();
112
@brief setter for spectrum
113
@note note availeble for FastaIterator
114
@throw Exception::NotImplemented
116
virtual void setSpectrum(const std::vector<DoubleReal> & /*spec*/)
118
throw Exception::NotImplemented(__FILE__, __LINE__, __PRETTY_FUNCTION__);
122
@brief getter for spectrum
123
@note note availeble for FastaIterator
124
@throw Exception::NotImplemented
126
virtual const std::vector<DoubleReal> & getSpectrum()
128
throw Exception::NotImplemented(__FILE__, __LINE__, __PRETTY_FUNCTION__);
132
@brief setter for tolerance
133
@note note availeble for FastaIterator
134
@throw Exception::NotImplemented
136
virtual void setTolerance(DoubleReal /* t */)
138
throw Exception::NotImplemented(__FILE__, __LINE__, __PRETTY_FUNCTION__);
142
@brief getter for tolerance
143
@note note availeble for FastaIterator
145
@throw Exception::NotImplemented
147
virtual DoubleReal getTolerance()
149
throw Exception::NotImplemented(__FILE__, __LINE__, __PRETTY_FUNCTION__);
153
@brief initializing of iterator
154
@return true if everything went rigth
155
@throw Exception::InvalidIterator if fastaFile was not set
157
virtual bool begin();
160
@brief indicates whether iterator is at end
161
@return bool true if interator is at end
163
virtual bool isAtEnd();
166
@brief needed by Factory
167
@return const string name of class
169
static const std::string getProductName()
171
return "FastaIteratorIntern";
175
@brief needed by Factory
176
@return poiter to new object
178
static PepIterator * create()
180
return new FastaIteratorIntern;
185
String fasta_file_; ///< location of the fasta file
187
std::vector<FASTAEntry> entrys_; ///< content of fasta file
189
std::vector<FASTAEntry>::iterator it_; ///< iterator over fasta file content