SequenceReader/SequenceEncoder.h File Reference

#include "GlobalDefinitions.h"

Include dependency graph for SequenceEncoder.h:

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  SequenceEncoder
class  SequenceEncoderDNA
class  SequenceEncoderProtein
class  SequenceEncoderCodon

Typedefs

typedef Word TranslationTable [numPossibleChars]
typedef Word ExpandedTranslationTable [numPossibleChars *numPossibleChars]
typedef vector< char > CodonList

Functions

static const int numPossibleChars (1<< 8)
static const Word nv (0xFF)
static const Word firstCharInvalid (1<< 31)
static const Word secondCharInvalid (1<< 30)
static const Word someCharInvalid (firstCharInvalid|secondCharInvalid)
static const Word maskBase (0x3)
static const Word mask2Bases ((maskBase<< gBaseBits)|maskBase)
static const Word maskCodon ((mask2Bases<< gBaseBits)|maskBase)
static const char flaggedChar ('^')
ostream & operator<< (ostream &os, CodonList &c)
void codonize (const WordSequence &in, CodonList &codons, int readingFrame)
template<int CODON_SHIFT, int BASE_SHIFT>
Word getCodonFromWord (const Word &w)
void codonizeAndFlag (const WordSequence &in, CodonList &codons, int readingFrame)
void codonizeAndFlagReverse (const WordSequence &in, CodonList &codons, int readingFrame)
void print (const TranslationTable &tt)

Variables

static const TranslationTable ttDNA
static const TranslationTable ttProtein
static const TranslationTable ttCodon
static const TranslationTable ttCodonReverse


Typedef Documentation

typedef vector<char> CodonList

Definition at line 326 of file SequenceEncoder.h.

typedef Word ExpandedTranslationTable[numPossibleChars *numPossibleChars]

Definition at line 49 of file SequenceEncoder.h.

typedef Word TranslationTable[numPossibleChars]

Definition at line 48 of file SequenceEncoder.h.


Function Documentation

void codonize ( const WordSequence in,
CodonList codons,
int  readingFrame 
)

Definition at line 340 of file SequenceEncoder.cpp.

References gBaseBits, gBasesPerCodon, gBitsPerWord, gCodonBits, WordSequence::getNumBasesInLast(), and gMaxBasesPerWord.

Referenced by MatchAlignerTranslated::createAlignment(), main(), HashTablePackedProtein::matchSequenceTranslatedDNA(), and HashTableTranslated::matchSequenceTranslatedDNA().

00341   {
00342     //    cout << "Codonizing for reading frame " << readingFrame << endl;
00343     static const Word mask((1<<gCodonBits)-1);
00344 
00345     int shift( gBitsPerWord-gCodonBits-gBaseBits*readingFrame );
00346 
00347 
00348     WordSequence::const_iterator i(in.begin());
00349     //    vector<char> codons;
00350     int codonsSoFar(0);
00351     int totalCodons
00352       ( (gMaxBasesPerWord*(in.size()-1) 
00353           + in.getNumBasesInLast() - readingFrame)/gBasesPerCodon );
00354 
00355     Word thisCodon;
00356 
00357     while( 1 )
00358     {
00359     
00360       if (shift>=0)
00361       {
00362         thisCodon = 0;
00363       }
00364       else
00365       {
00366         thisCodon = (*i<<-shift);
00367         i++;
00368         shift += gBitsPerWord;
00369       } 
00370       thisCodon |= (*i>>shift);
00371       thisCodon &= mask;
00372 
00373       codons.push_back(thisCodon);
00374       if (++codonsSoFar==totalCodons) break;
00375       if (shift == 0) { shift = gBitsPerWord; i++; }
00376       shift -= gCodonBits;
00377 
00378     } // ~while
00379   
00380     //    pEncoder_->encode( codons );
00381 
00382 
00383   } // ~SequenceReaderCodon::codonize

Here is the call graph for this function:

Here is the caller graph for this function:

void codonizeAndFlag ( const WordSequence in,
CodonList codons,
int  readingFrame 
)

Definition at line 402 of file SequenceEncoder.cpp.

References flaggedChar(), gBaseBits, gCodonBits, gCursedWord, WordSequence::getNumBasesInLast(), gMaxBasesPerWord, gNumReadingFrames, mask2Bases(), and maskBase().

Referenced by HashTableTranslated::countWordsAndGetNames(), HashTableTranslated::hashAllWords(), and main().

00403 {
00404 
00405   static const int DNAWordSizeForHashing(gMaxBasesPerWord-1);
00406 
00407   int codonsInLast((in.getNumBasesInLast()-readingFrame)/gNumReadingFrames);
00408 
00409   //  cout << "blx: " << in.size() << " " << in.getNumBasesInLast() << " " << codonsInLast << endl;
00410   int numCodons
00411     (   ( (in.size() == 0) 
00412           ? 0
00413           : ((in.size()-1)*DNAWordSizeForHashing)+in.getNumBasesInLast()
00414           -readingFrame )
00415       / gNumReadingFrames );
00416 
00417   codons.resize(numCodons);
00418   char* pCodon(static_cast<char*>(&(*codons.begin())));
00419   char* pEnd(static_cast<char*>(&(*codons.end())));
00420   WordSequence::const_iterator i(in.begin());
00421   WordSequence::const_iterator lastWord(in.end()-1);
00422   Word toCarry(~0);
00423   Word lastWordFlag(0);
00424 
00425   //  const Word maskBase(0x3);
00426   //  const Word maskCodon((0x3>>4)|(0x3>>2)|(0x3>>4));
00427   
00428 
00429   if (readingFrame==0)
00430   {
00431     for( ; i!=lastWord ; ++i )
00432     {
00433 
00434       *(pCodon++) = getCodonFromWord<4,0>(*i);
00435       *(pCodon++) = getCodonFromWord<3,0>(*i);
00436       *(pCodon++) = getCodonFromWord<2,0>(*i);
00437       *(pCodon++) = getCodonFromWord<1,0>(*i);
00438       *(pCodon++) = getCodonFromWord<0,0>(*i);
00439 
00440     } // ~for
00441 
00442     if (codonsInLast>=1)
00443       *(pCodon++) = getCodonFromWord<4,0>(*i);
00444     if (codonsInLast>=2)
00445       *(pCodon++) = getCodonFromWord<3,0>(*i);
00446     if (codonsInLast>=3)
00447       *(pCodon++) = getCodonFromWord<2,0>(*i);
00448     if (codonsInLast==4)
00449       *(pCodon++) = getCodonFromWord<1,0>(*i);
00450   } // ~if 
00451   else if (readingFrame==1)
00452   {
00453 
00454     for( ; i!=lastWord ; ++i )
00455     {
00456       if (toCarry!=~0)
00457       (*pCodon++) = ( ((*i)&gCursedWord)|lastWordFlag )
00458         ? flaggedChar
00459         : ( toCarry | (((*i) >> (4*gCodonBits + 2*gBaseBits))&maskBase ));
00460 
00461       *(pCodon++) = getCodonFromWord<3,2>(*i);
00462       *(pCodon++) = getCodonFromWord<2,2>(*i);
00463       *(pCodon++) = getCodonFromWord<1,2>(*i);
00464       *(pCodon++) = getCodonFromWord<0,2>(*i);
00465 
00466       lastWordFlag = (*i)&gCursedWord;
00467       toCarry = ((*i)& mask2Bases) << gBaseBits;
00468  
00469     } // ~for
00470     if (in.getNumBasesInLast() >= readingFrame )
00471     {
00472       *(pCodon++) = ( ((*i)&gCursedWord)|lastWordFlag )
00473         ? flaggedChar
00474         : ( toCarry | (((*i) >> (4*gCodonBits + 2*gBaseBits))&maskBase ));
00475     }
00476     if (codonsInLast>=1)
00477       *(pCodon++) = getCodonFromWord<3,2>(*i);
00478     if (codonsInLast>=2)
00479       *(pCodon++) = getCodonFromWord<2,2>(*i);
00480     if (codonsInLast>=3)
00481       *(pCodon++) = getCodonFromWord<1,2>(*i);
00482     if (codonsInLast>=4)
00483       *(pCodon++) = getCodonFromWord<0,2>(*i);
00484 
00485   } // ~else if
00486   else // if (readingFrame==2)
00487   {
00488 
00489     for( ; i!=lastWord ; ++i )
00490     {
00491       if (toCarry!=~0)
00492       (*pCodon++) = ( ((*i)&gCursedWord)|lastWordFlag )
00493         ? flaggedChar
00494         : ( toCarry | (((*i) >> (4*gCodonBits + gBaseBits))&mask2Bases ));
00495 
00496       *(pCodon++) = getCodonFromWord<3,1>(*i);
00497       *(pCodon++) = getCodonFromWord<2,1>(*i);
00498       *(pCodon++) = getCodonFromWord<1,1>(*i);
00499       *(pCodon++) = getCodonFromWord<0,1>(*i);
00500 
00501       lastWordFlag = (*i)&gCursedWord;
00502       toCarry = ((*i)& maskBase) << (2*gBaseBits);
00503  
00504     } // ~for
00505     if (in.getNumBasesInLast() >= readingFrame )
00506     {
00507     
00508       *(pCodon++) = ( ((*i)&gCursedWord)|lastWordFlag )
00509         ? flaggedChar
00510         : ( toCarry | (((*i) >> (4*gCodonBits + gBaseBits))&mask2Bases ));
00511     }
00512     if (codonsInLast>=1)
00513       *(pCodon++) = getCodonFromWord<3,1>(*i);
00514     if (codonsInLast>=2)
00515       *(pCodon++) = getCodonFromWord<2,1>(*i);
00516     if (codonsInLast>=3)
00517       *(pCodon++) = getCodonFromWord<1,1>(*i);
00518     if (codonsInLast>=4)
00519       *(pCodon++) = getCodonFromWord<0,1>(*i);
00520 
00521   } // ~else if
00522 
00523   //  cout << "codons fwd: " << codons << endl;
00524   assert(pCodon==pEnd);
00525 
00526 } // ~void codonizeAndFlag

Here is the call graph for this function:

Here is the caller graph for this function:

void codonizeAndFlagReverse ( const WordSequence in,
CodonList codons,
int  readingFrame 
)

Definition at line 536 of file SequenceEncoder.cpp.

References flaggedChar(), gBaseBits, gCodonBits, gCursedWord, WordSequence::getNumBasesInLast(), gMaxBasesPerWord, gNumReadingFrames, mask2Bases(), maskBase(), and maskCodon().

Referenced by HashTableTranslated::countWordsAndGetNames(), HashTableTranslated::hashAllWords(), and main().

00537 {
00538 
00539   static const int DNAWordSizeForHashing(gMaxBasesPerWord-1);
00540 
00541   int codonsInLast((in.getNumBasesInLast()-readingFrame)/gNumReadingFrames);
00542 
00543 
00544   int numCodons
00545     (   ( (in.size() == 0) 
00546           ? 0
00547           : ((in.size()-1)*DNAWordSizeForHashing)+in.getNumBasesInLast()
00548           -readingFrame )
00549       / gNumReadingFrames );
00550 
00551   readingFrame = (in.getNumBasesInLast()-readingFrame+gNumReadingFrames)%gNumReadingFrames;
00552 
00553 
00554 
00555   //  cout << "blx: " << in.size() << " " << in.getNumBasesInLast() << " " << readingFrame << " " << codonsInLast << " " << numCodons << endl;
00556   codons.resize(numCodons);
00557   char* pCodon(static_cast<char*>(&(*codons.begin())));
00558   char* pEnd(static_cast<char*>(&(*codons.end())));
00559   WordSequence::const_iterator i(in.end()-1);
00560   WordSequence::const_iterator lastWord(in.begin());
00561   Word toCarry(~0);
00562   Word lastWordFlag(0);
00563 
00564   //  const Word maskBase(0x3);
00565   //  const Word maskCodon((0x3>>4)|(0x3>>2)|(0x3>>4));
00566   
00567 
00568   if (readingFrame==0)
00569   {
00570     if (codonsInLast==4)
00571       *(pCodon++) = getCodonFromWord<1,0>(*i);
00572     if (codonsInLast>=3)
00573       *(pCodon++) = getCodonFromWord<2,0>(*i);
00574     if (codonsInLast>=2)
00575       *(pCodon++) = getCodonFromWord<3,0>(*i);
00576     if (codonsInLast>=1)
00577       *(pCodon++) = getCodonFromWord<4,0>(*i);
00578 
00579     do
00580     {
00581       i--;
00582       *(pCodon++) = getCodonFromWord<0,0>(*i);
00583       *(pCodon++) = getCodonFromWord<1,0>(*i);
00584       *(pCodon++) = getCodonFromWord<2,0>(*i);
00585       *(pCodon++) = getCodonFromWord<3,0>(*i);
00586       *(pCodon++) = getCodonFromWord<4,0>(*i);
00587 
00588     } 
00589     while (i!=lastWord);
00590 
00591   } // ~if 
00592   else if (readingFrame==1)
00593   {
00594     //    cout << "rf1" << endl;
00595     if (codonsInLast==4)
00596       *(pCodon++) = getCodonFromWord<0,2>(*i);
00597     if (codonsInLast>=3)
00598       *(pCodon++) = getCodonFromWord<1,2>(*i);
00599     if (codonsInLast>=2)
00600       *(pCodon++) = getCodonFromWord<2,2>(*i);
00601     if (codonsInLast>=1)
00602       *(pCodon++) = getCodonFromWord<3,2>(*i);
00603 
00604     if (in.getNumBasesInLast()>=readingFrame)
00605     {
00606       lastWordFlag = (*i)&gCursedWord;
00607       toCarry = ((*i) >> (4*gCodonBits + 2*gBaseBits))&maskBase ;
00608     } // ~if
00609 
00610     do
00611     {
00612       i--;
00613       if (toCarry!=~0)
00614       (*pCodon++) = ( ((*i)&gCursedWord)|lastWordFlag )
00615         ? flaggedChar
00616         : ( toCarry | ( ((*i) & mask2Bases ) << gBaseBits ) );
00617 
00618       *(pCodon++) = getCodonFromWord<0,2>(*i);
00619       *(pCodon++) = getCodonFromWord<1,2>(*i);
00620       *(pCodon++) = getCodonFromWord<2,2>(*i);
00621       *(pCodon++) = getCodonFromWord<3,2>(*i);
00622       lastWordFlag = (*i)&gCursedWord;
00623       toCarry = ((*i) >> (4*gCodonBits + 2*gBaseBits))&maskBase ;
00624 
00625 
00626     } 
00627     while (i!=lastWord);
00628 
00629 
00630   } // ~else if
00631   else // if (readingFrame==2)
00632   {
00633     //    cout << "rf2" << endl;
00634 
00635     if (codonsInLast==4)
00636       *(pCodon++) = getCodonFromWord<0,1>(*i);
00637     if (codonsInLast>=3)
00638       *(pCodon++) = getCodonFromWord<1,1>(*i);
00639     if (codonsInLast>=2)
00640       *(pCodon++) = getCodonFromWord<2,1>(*i);
00641     if (codonsInLast>=1)
00642       *(pCodon++) = getCodonFromWord<3,1>(*i);
00643 
00644     if (in.getNumBasesInLast()>=readingFrame)
00645     {
00646       lastWordFlag = (*i)&gCursedWord;
00647       toCarry = ((*i) >> (4*gCodonBits + gBaseBits))&mask2Bases ;
00648     } // ~if
00649 
00650     do
00651     {
00652       i--;
00653       if (toCarry!=~0)
00654       (*pCodon++) = ( ((*i)&gCursedWord)|lastWordFlag )
00655         ? flaggedChar
00656         : ( toCarry | ( ((*i) & maskBase ) << (2*gBaseBits) ) );
00657 
00658       *(pCodon++) = getCodonFromWord<0,1>(*i);
00659       *(pCodon++) = getCodonFromWord<1,1>(*i);
00660       *(pCodon++) = getCodonFromWord<2,1>(*i);
00661       *(pCodon++) = getCodonFromWord<3,1>(*i);
00662       lastWordFlag = (*i)&gCursedWord;
00663       toCarry = ((*i) >> (4*gCodonBits + gBaseBits))&mask2Bases ;
00664 
00665     } 
00666     while (i!=lastWord);
00667 
00668 
00669   } // ~else if
00670 
00671 
00672   assert(pCodon==pEnd);
00673   //  cout << "codons unrev: " << codons << endl;
00674 
00675   for (CodonList::iterator j(codons.begin()); j!=codons.end(); ++j)
00676   {
00677     
00678     *j = 
00679       ( ((*j)==flaggedChar) 
00680         ? flaggedChar 
00681         :
00682         ( ((*j)&maskBase^maskBase) << (2*gBaseBits) )
00683         | ((*j)&(maskBase<<gBaseBits)^(maskBase<<gBaseBits))
00684         | ( ((*j)&(maskCodon^mask2Bases)^(maskCodon^mask2Bases)) 
00685             >> (2*gBaseBits) )  );
00686   } // ~for
00687   //  cout << "codons rev: " << codons << endl;
00688 
00689 } // ~void codonizeAndFlagReverse

Here is the call graph for this function:

Here is the caller graph for this function:

static const Word firstCharInvalid ( 1<<  31  )  [static]

Referenced by SequenceEncoder::expandTranslationTable().

Here is the caller graph for this function:

static const char flaggedChar ( '^'   )  [static]

Referenced by codonizeAndFlag(), codonizeAndFlagReverse(), getCodonFromWord(), and operator<<().

Here is the caller graph for this function:

template<int CODON_SHIFT, int BASE_SHIFT>
Word getCodonFromWord ( const Word w  )  [inline]

Definition at line 526 of file SequenceEncoder.h.

References flaggedChar(), gBaseBits, gCodonBits, gCursedWord, and maskCodon().

00527 {
00528   return 
00529   (
00530      (w&gCursedWord) 
00531      ? flaggedChar
00532      : (    ( w & ( maskCodon << ((CODON_SHIFT*gCodonBits) 
00533                                   + (BASE_SHIFT*gBaseBits)   ) ) )
00534          >> ((CODON_SHIFT*gCodonBits) + (BASE_SHIFT*gBaseBits) ) ) 
00535   );
00536 
00537 
00538 } //~template <int CODON_SHIFT, int BASE_SHIFT > Word getCodonFromWord

Here is the call graph for this function:

static const Word mask2Bases ( (maskBase<< gBaseBits)|  maskBase  )  [static]

Referenced by codonizeAndFlag(), and codonizeAndFlagReverse().

Here is the caller graph for this function:

static const Word maskBase ( 0x3   )  [static]

Referenced by codonizeAndFlag(), and codonizeAndFlagReverse().

Here is the caller graph for this function:

static const Word maskCodon ( (mask2Bases<< gBaseBits)|  maskBase  )  [static]

Referenced by codonizeAndFlagReverse(), and getCodonFromWord().

Here is the caller graph for this function:

static const int numPossibleChars ( 1<<  8  )  [static]

Referenced by print().

Here is the caller graph for this function:

static const Word nv ( 0xFF   )  [static]

Referenced by MatchAlignerTranslated::codonize(), HashTableTranslated::countWordsAndGetNames(), SequenceEncoder::encodeChar(), SequenceEncoder::expandTranslationTable(), MatchAlignerTranslated::getCodon(), and processQuery().

Here is the caller graph for this function:

ostream& operator<< ( ostream &  os,
CodonList c 
)

Definition at line 693 of file SequenceEncoder.cpp.

References flaggedChar(), and gCodonNames.

00694 {
00695   for (vector<char>::iterator i(c.begin()); i!=c.end(); i++ )
00696     os << (unsigned int)*i << "-" << 
00697       ((*i==flaggedChar) ? '!' : gCodonNames[(unsigned int)*i]) << " ";
00698   return os;
00699 } // ~ostream& operator<<( ostream& os, CodonList& c )

Here is the call graph for this function:

void print ( const TranslationTable tt  ) 

Definition at line 37 of file SequenceEncoder.cpp.

References numPossibleChars().

00038 {
00039   for ( int i(0) ; i < numPossibleChars ; ++ i )
00040   {
00041     cout << i << ":";
00042     if (isgraph((uchar)i)) cout << " (" << (uchar)i << ") ";
00043     cout << "\t " << (int)tt[i];
00044     if (isgraph(tt[i])) cout << " (" << tt[i] << ") ";
00045     cout << endl;
00046   }
00047 }

Here is the call graph for this function:

static const Word secondCharInvalid ( 1<<  30  )  [static]

Referenced by SequenceEncoder::expandTranslationTable().

Here is the caller graph for this function:

static const Word someCharInvalid ( firstCharInvalid|  secondCharInvalid  )  [static]

Referenced by SequenceEncoder::encode().

Here is the caller graph for this function:


Variable Documentation

const TranslationTable ttCodon [static]

Definition at line 164 of file SequenceEncoder.h.

Referenced by MatchAlignerTranslated::codonize(), HashTableTranslated::countWordsAndGetNames(), and MatchAlignerTranslated::getCodon().

const TranslationTable ttCodonReverse [static]

Definition at line 246 of file SequenceEncoder.h.

const TranslationTable ttDNA [static]

Initial value:

 
{
nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,
nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,
nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,
nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,
nv,  
00,nv,01,nv,nv,nv,02,nv,nv,nv,nv,nv,nv,nv,nv, 
nv,nv,nv,nv,03,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,
nv,  
00,nv,01,nv,nv,nv,02,nv,nv,nv,nv,nv,nv,nv,nv, 
nv,nv,nv,nv,03,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,
nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,
nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,
nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,
nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,
nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,
nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,
nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,
nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv
}

Definition at line 64 of file SequenceEncoder.h.

Referenced by MatchAlignerTranslated::codonize(), MatchAlignerTranslated::getCodon(), and processQuery().

const TranslationTable ttProtein [static]

Initial value:

 
{
nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,
nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,
nv,nv,nv,nv,nv,nv,nv,nv,nv,nv, 0,nv,nv,nv,nv,nv,
nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,
nv,  
 1, 3, 2, 3, 4, 5, 6, 7, 8,nv, 9,10,11,12,nv, 
13,14,15,16,17,20,18,19,20,21, 4,nv,nv,nv,nv,nv,
nv,  
 1, 3, 2, 3, 4, 5, 6, 7, 8,nv, 9,10,11,12,nv, 
13,14,15,16,17,20,18,19,20,21, 4,nv,nv,nv,nv,nv,
nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,
nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,
nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,
nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,
nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,
nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,
nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,
nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv
}

Definition at line 141 of file SequenceEncoder.h.

Referenced by HashTableTranslated::countWordsAndGetNames(), and processQuery().


Generated on Fri Dec 21 13:14:56 2007 for ssaha by  doxygen 1.5.2