SequenceReaderLocal Class Reference

#include <SequenceReaderLocal.h>

Inheritance diagram for SequenceReaderLocal:

Inheritance graph
[legend]
Collaboration diagram for SequenceReaderLocal:

Collaboration graph
[legend]
List of all members.

Public Types

typedef pair< WordSequence,
std::string > 
SequenceInfo

Public Member Functions

 SequenceReaderLocal (SequenceReader &seqFile, int wordLength, ostream &monitoringStream=cerr)
 SequenceReaderLocal (int wordLength, int bitsPerSymbol, ostream &monitoringStream=cerr)
 SequenceReaderLocal (const SequenceReaderLocal &rhs)
 ~SequenceReaderLocal ()
virtual SequenceReaderclone (void)
virtual void changeMode (SequenceReaderMode *pMode)
virtual void rewind (void)
virtual bool findSequence (SequenceNumber seqNum)
virtual int getNextSequence (WordSequence &nextSeq, int wordLength)
virtual int getSequence (WordSequence &nextSeq, SequenceNumber sequenceNumber, int wordLength)
virtual void getLastSequenceName (string &seqName) const
virtual int getBitsPerSymbol (void) const
virtual SourceDataType getSourceDataType (void) const
virtual bool printName (ostream &os, SequenceNumber seqNum)
virtual bool printSideInfo (ostream &os, SequenceNumber seqNum)
virtual bool printSource (ostream &os, SequenceNumber seqNum)
SequenceInfoback (void)
void push_back (void)
void pop_back (void)
const SequenceInfooperator[] (vector< SequenceInfo >::size_type i)

Protected Member Functions

virtual SequenceNumber computeNumSequencesInFile (void)

Protected Attributes

vector< SequenceInfoseqData_
int wordLength_
int bitsPerSymbol_
SourceDataType sourceData_

Private Member Functions

SequenceReaderLocaloperator= (const SequenceReaderLocal &)

Detailed Description

Definition at line 54 of file SequenceReaderLocal.h.


Member Typedef Documentation

typedef pair< WordSequence, std::string> SequenceReaderLocal::SequenceInfo

Definition at line 60 of file SequenceReaderLocal.h.


Constructor & Destructor Documentation

SequenceReaderLocal::SequenceReaderLocal ( SequenceReader seqFile,
int  wordLength,
ostream &  monitoringStream = cerr 
)

Definition at line 48 of file SequenceReaderLocal.cpp.

References SequenceReader::getLastSequenceName(), SequenceReader::getNextSequence(), and SequenceReader::rewind().

Referenced by clone().

00048                                                                        :
00049 sourceData_( seqFile.getSourceDataType() ),
00050 wordLength_( wordLength ),
00051 bitsPerSymbol_( seqFile.getBitsPerSymbol() ),
00052 SequenceReader( monitoringStream )
00053 {
00054   monitoringStream_ 
00055     << "constructing SequenceReaderLocal from SequenceReader" << endl;
00056     seqFile.rewind();
00057     const pair< WordSequence, std::string> dummy; 
00058 
00059     seqData_.push_back(dummy);
00060     //    seqNames_.push_back();
00061 
00062     while(  seqFile.getNextSequence( seqData_.back().first, wordLength_ ) != -1 ) 
00063     {      
00064       seqFile.getLastSequenceName( seqData_.back().second );
00065       seqData_.push_back(dummy);
00066     } // ~while
00067       seqData_.pop_back();
00068     //    numSequencesInFile_ = seqFile.getNumSequencesInFile();
00069     rewind();
00070     seqFile.rewind();
00071 } // ~constructor

Here is the call graph for this function:

Here is the caller graph for this function:

SequenceReaderLocal::SequenceReaderLocal ( int  wordLength,
int  bitsPerSymbol,
ostream &  monitoringStream = cerr 
)

Definition at line 74 of file SequenceReaderLocal.cpp.

00074                                                                  :
00075 sourceData_( gUnknownData ),
00076 wordLength_( wordLength ),
00077 bitsPerSymbol_( bitsPerSymbol ),
00078 SequenceReader( monitoringStream )
00079 {
00080   monitoringStream_ 
00081     << "constructing empty SequenceReaderLocal" << endl;
00082 }

SequenceReaderLocal::SequenceReaderLocal ( const SequenceReaderLocal rhs  ) 

Definition at line 89 of file SequenceReaderLocal.cpp.

References SequenceReader::monitoringStream_.

00090 {
00091   monitoringStream_ << "copy constructing SequenceReaderLocal" << endl;
00092 } // ~destructor

SequenceReaderLocal::~SequenceReaderLocal (  ) 

Definition at line 96 of file SequenceReaderLocal.cpp.

References SequenceReader::monitoringStream_.

00097 {
00098   monitoringStream_ << "destructing SequenceReaderLocal" << endl;
00099 } // ~destructor


Member Function Documentation

virtual SequenceReader* SequenceReaderLocal::clone ( void   )  [inline, virtual]

Implements SequenceReader.

Definition at line 90 of file SequenceReaderLocal.h.

References SequenceReaderLocal().

00091   { return new SequenceReaderLocal( *this ); }

Here is the call graph for this function:

virtual void SequenceReaderLocal::changeMode ( SequenceReaderMode pMode  )  [inline, virtual]

Implements SequenceReader.

Definition at line 103 of file SequenceReaderLocal.h.

00103 {}

virtual void SequenceReaderLocal::rewind ( void   )  [inline, virtual]

Implements SequenceReader.

Definition at line 113 of file SequenceReaderLocal.h.

References SequenceReader::lastSequenceNumber_.

00114   {
00115     lastSequenceNumber_ = 0;
00116     // don't need to do anything else, because we're set up for random access
00117   } // ~rewind 

bool SequenceReaderLocal::findSequence ( SequenceNumber  seqNum  )  [virtual]

Implements SequenceReader.

Definition at line 165 of file SequenceReaderLocal.cpp.

References SequenceReader::lastSequenceNumber_, and seqData_.

00166   {
00167 
00168     if (( seqNum <= seqData_.size()) && ( seqNum != 0 ))
00169     {
00170       lastSequenceNumber_ = seqNum - 1;
00171       return true;
00172     } // ~if
00173     else
00174     {
00175       return false;
00176     } // ~else
00177   }

int SequenceReaderLocal::getNextSequence ( WordSequence nextSeq,
int  wordLength 
) [virtual]

Implements SequenceReader.

Definition at line 108 of file SequenceReaderLocal.cpp.

References SequenceReader::getNumSequencesInFile(), SequenceReader::lastSequenceNumber_, SequenceReader::monitoringStream_, seqData_, and wordLength_.

Referenced by main().

00109   {
00110     if ( lastSequenceNumber_ == getNumSequencesInFile() )
00111     {
00112       monitoringStream_ << "End of file has been reached." << endl;
00113       return (-1);
00114     } // if
00115     if ( wordLength != wordLength_ )
00116     {
00117       monitoringStream_ 
00118       << "Error: sequence data word length is fixed (" 
00119       << wordLength_ << " base pairs)." << endl;
00120       throw SSAHAException("Wrong word length for SequenceReaderLocal");
00121     } // if
00122     // NB sequences are numbered 1 ... n but seqData_ is numbered
00123     // 0 ... n-1
00124     lastSequenceNumber_++;
00125     nextSeq = seqData_[lastSequenceNumber_-1].first; 
00126     //    nextSeq.numBasesInLast
00127     //   = seqData_[lastSequenceNumber_-1].first.numBasesInLast;
00128     return (seqData_[lastSequenceNumber_-1].first.getNumBasesInLast());
00129   } // ~SequenceReaderLocal::getNextSequence

Here is the call graph for this function:

Here is the caller graph for this function:

int SequenceReaderLocal::getSequence ( WordSequence nextSeq,
SequenceNumber  sequenceNumber,
int  wordLength 
) [virtual]

Implements SequenceReader.

Definition at line 137 of file SequenceReaderLocal.cpp.

References WordSequence::getNumBasesInLast(), SequenceReader::monitoringStream_, SequenceReader::numSequencesInFile_, seqData_, and wordLength_.

00138   {
00139 
00140     if ( sequenceNumber > numSequencesInFile_ )
00141     {
00142       monitoringStream_ << "End of file has been reached." << endl;
00143       return (-1);
00144     } // if
00145     if ( wordLength != wordLength_ )
00146     {
00147       monitoringStream_ 
00148       << "Error: sequence data word length is fixed (" 
00149       << wordLength_ << " base pairs)." << endl;
00150       throw SSAHAException("Wrong word length for SequenceReaderLocal");
00151     } // if
00152     // NB sequences are numbered 1 ... n but seqData_ is numbered
00153     // 0 ... n-1
00154     nextSeq = seqData_[sequenceNumber - 1].first; 
00155     //    nextSeq.numBasesInLast=seqData_[sequenceNumber-1].first.numBasesInLast;
00156     return nextSeq.getNumBasesInLast();
00157   } // ~getSequence

Here is the call graph for this function:

void SequenceReaderLocal::getLastSequenceName ( string &  seqName  )  const [virtual]

Implements SequenceReader.

Definition at line 184 of file SequenceReaderLocal.cpp.

References SequenceReader::lastSequenceNumber_, and seqData_.

00185   {
00186     seqName = seqData_[lastSequenceNumber_ - 1].second;
00187   }

virtual int SequenceReaderLocal::getBitsPerSymbol ( void   )  const [inline, virtual]

Implements SequenceReader.

Definition at line 154 of file SequenceReaderLocal.h.

References bitsPerSymbol_.

00155   {
00156     return bitsPerSymbol_;
00157   }

virtual SourceDataType SequenceReaderLocal::getSourceDataType ( void   )  const [inline, virtual]

Implements SequenceReader.

Definition at line 163 of file SequenceReaderLocal.h.

References sourceData_.

00164   {
00165     return sourceData_;
00166   }

bool SequenceReaderLocal::printName ( ostream &  os,
SequenceNumber  seqNum 
) [virtual]

Implements SequenceReader.

Definition at line 193 of file SequenceReaderLocal.cpp.

References SequenceReader::monitoringStream_, SequenceReader::numSequencesInFile_, and seqData_.

00194   {
00195     if ( seqNum > numSequencesInFile_ )
00196     {
00197       monitoringStream_ << "Error: requested sequence number (" << seqNum
00198                         << ") exceeds num seqs in file ("
00199                         << numSequencesInFile_ << ")." << endl;
00200       return false;
00201     } // if
00202     os <<  seqData_[seqNum - 1].second << endl;
00203     return true;
00204   }  

bool SequenceReaderLocal::printSideInfo ( ostream &  os,
SequenceNumber  seqNum 
) [virtual]

Implements SequenceReader.

Definition at line 211 of file SequenceReaderLocal.cpp.

00212   {
00213     return false;
00214   }

bool SequenceReaderLocal::printSource ( ostream &  os,
SequenceNumber  seqNum 
) [virtual]

Implements SequenceReader.

Definition at line 221 of file SequenceReaderLocal.cpp.

00222   {
00223     return false;
00224   }

SequenceInfo& SequenceReaderLocal::back ( void   )  [inline]

Definition at line 186 of file SequenceReaderLocal.h.

References seqData_.

Referenced by processQuery().

00186 { return seqData_.back(); }

Here is the caller graph for this function:

void SequenceReaderLocal::push_back ( void   )  [inline]

Definition at line 187 of file SequenceReaderLocal.h.

References seqData_.

Referenced by processQuery().

00187 { seqData_.push_back(SequenceInfo());   }

Here is the caller graph for this function:

void SequenceReaderLocal::pop_back ( void   )  [inline]

Definition at line 188 of file SequenceReaderLocal.h.

References seqData_.

00188 { seqData_.pop_back();    }

const SequenceInfo& SequenceReaderLocal::operator[] ( vector< SequenceInfo >::size_type  i  )  [inline]

Definition at line 189 of file SequenceReaderLocal.h.

References seqData_.

00190   { 
00191     if ( i >= seqData_.size() )
00192       throw SSAHAException
00193         ("Tried to access non-existent sequence in SequenceReaderLocal"); 
00194     else return seqData_[i]; 
00195   }

virtual SequenceNumber SequenceReaderLocal::computeNumSequencesInFile ( void   )  [inline, protected, virtual]

Implements SequenceReader.

Definition at line 210 of file SequenceReaderLocal.h.

References seqData_.

00211   { return seqData_.size(); }

SequenceReaderLocal& SequenceReaderLocal::operator= ( const SequenceReaderLocal  )  [private]


Member Data Documentation

vector<SequenceInfo> SequenceReaderLocal::seqData_ [protected]

Definition at line 222 of file SequenceReaderLocal.h.

Referenced by back(), computeNumSequencesInFile(), findSequence(), getLastSequenceName(), getNextSequence(), getSequence(), operator[](), pop_back(), printName(), and push_back().

int SequenceReaderLocal::wordLength_ [protected]

Definition at line 224 of file SequenceReaderLocal.h.

Referenced by getNextSequence(), and getSequence().

int SequenceReaderLocal::bitsPerSymbol_ [protected]

Definition at line 225 of file SequenceReaderLocal.h.

Referenced by getBitsPerSymbol().

SourceDataType SequenceReaderLocal::sourceData_ [protected]

Definition at line 226 of file SequenceReaderLocal.h.

Referenced by getSourceDataType().


The documentation for this class was generated from the following files:
Generated on Fri Dec 21 13:21:27 2007 for ssaha by  doxygen 1.5.2