BaseGenerator Class Reference

#include <GenerateTestFastaFiles.h>

List of all members.

Public Member Functions

 BaseGenerator (int numBases, int seed=-9999)
void generateSubjectFile (int seqSize, int basesOverlap, const char *fileName="test_subject.fasta")
void generateSubjectFileFastq (int seqSize, int basesOverlap, const char *fileName="test_subject.fastq")
void generateQueryFile (int baseStart, int seqSize, const char *fileName="test_query.fasta")
void getBases (int baseStart, int seqSize, string &outputString)

Protected Attributes

string bases_
int numBases_


Detailed Description

Definition at line 51 of file GenerateTestFastaFiles.h.


Constructor & Destructor Documentation

BaseGenerator::BaseGenerator ( int  numBases,
int  seed = -9999 
)

Definition at line 45 of file GenerateTestFastaFiles.cpp.

References bases_, and numBases_.

00046 : numBases_( numBases )
00047 {
00048   const char baseNames[] = "AGCT";
00049 
00050   if ( seed != -9999 ) srand(seed);
00051   bases_.reserve( numBases_ );
00052   int base;
00053 
00054   for ( int i(0) ; i < numBases_; i++ )
00055   {
00056     base = rand() & 0x3;
00057     bases_ += baseNames[base];
00058   } // ~for i
00059 } // constructor


Member Function Documentation

void BaseGenerator::generateSubjectFile ( int  seqSize,
int  basesOverlap,
const char *  fileName = "test_subject.fasta" 
)

Definition at line 69 of file GenerateTestFastaFiles.cpp.

References bases_, and numBases_.

Referenced by main().

00070 {
00071   ofstream subjectFile(fileName,ios::out);
00072 
00073   int numSeqs = 1 + ( numBases_ - seqSize ) / ( seqSize - basesOverlap );
00074   int seqSpacing = seqSize - basesOverlap;
00075 
00076   cout << "Num seqs:" << numSeqs << endl;
00077 
00078   for ( int i(0) ; i < numSeqs  ; i ++ )
00079   {
00080 
00081     subjectFile << ">SubjectSequence_" << i+1 << " - bases "
00082                 << ( i * seqSpacing ) << " to "
00083                 << ( i * seqSpacing ) + seqSize - 1
00084                 << endl;
00085 
00086     subjectFile << bases_.substr( (i*seqSpacing), seqSize ) << endl;
00087 
00088     subjectFile << endl;
00089 
00090   } // ~for i
00091     
00092 } // ~BaseGenerator::generateSubjectFile

Here is the caller graph for this function:

void BaseGenerator::generateSubjectFileFastq ( int  seqSize,
int  basesOverlap,
const char *  fileName = "test_subject.fastq" 
)

Definition at line 100 of file GenerateTestFastaFiles.cpp.

References bases_, and numBases_.

Referenced by main().

00101 {
00102   ofstream subjectFile(fileName,ios::out);
00103 
00104   int numSeqs = 1 + ( numBases_ - seqSize ) / ( seqSize - basesOverlap );
00105   int seqSpacing = seqSize - basesOverlap;
00106 
00107   cout << "Num seqs:" << numSeqs << endl;
00108 
00109   for ( int i(0) ; i < numSeqs  ; i ++ )
00110   {
00111 
00112     subjectFile << "@SubjectSequence_" << i+1 << " - bases "
00113                 << ( i * seqSpacing ) << " to "
00114                 << ( i * seqSpacing ) + seqSize - 1
00115                 << endl;
00116 
00117     subjectFile << bases_.substr( (i*seqSpacing), seqSize ) << endl;
00118 
00119     subjectFile << "+SubjectSequence_" << i+1 << " - bases "
00120                 << ( i * seqSpacing ) << " to "
00121                 << ( i * seqSpacing ) + seqSize - 1
00122                 << endl;
00123 
00124     for ( int j(0) ; j < seqSize ; j++ ) subjectFile << "99 ";
00125     subjectFile << endl;
00126     
00127 
00128   } // ~for i
00129     
00130 } // ~BaseGenerator::generateSubjectFileFastq

Here is the caller graph for this function:

void BaseGenerator::generateQueryFile ( int  baseStart,
int  seqSize,
const char *  fileName = "test_query.fasta" 
)

Definition at line 138 of file GenerateTestFastaFiles.cpp.

References bases_, and numBases_.

00139 {
00140 
00141   if ( baseStart + seqSize > numBases_ )
00142   {
00143     cerr << "Error: requested query sequence exceeds total data size" << endl;
00144     return;
00145   } //~if
00146 
00147   ofstream queryFile(fileName,ios::out);
00148   queryFile << ">QuerySequence "  
00149               << baseStart << " to " 
00150               << baseStart + seqSize << endl;
00151 
00152   queryFile << bases_.substr( baseStart, seqSize );
00153  
00154   queryFile << endl;
00155 
00156 
00157 
00158 } // ~BaseGenerator::generateQueryFile

void BaseGenerator::getBases ( int  baseStart,
int  seqSize,
string &  outputString 
)

Definition at line 161 of file GenerateTestFastaFiles.cpp.

References bases_, and numBases_.

Referenced by main(), and MatchTaskTest::operator()().

00162 {
00163   if ( baseStart + seqSize > numBases_ )
00164   {
00165     cerr << "Error: requested query sequence exceeds total data size" << endl;
00166     return;
00167   } //~if
00168 
00169   outputString =  bases_.substr( baseStart, seqSize );
00170   
00171 }

Here is the caller graph for this function:


Member Data Documentation

string BaseGenerator::bases_ [protected]

Definition at line 72 of file GenerateTestFastaFiles.h.

Referenced by BaseGenerator(), generateQueryFile(), generateSubjectFile(), generateSubjectFileFastq(), and getBases().

int BaseGenerator::numBases_ [protected]

Definition at line 73 of file GenerateTestFastaFiles.h.

Referenced by BaseGenerator(), generateQueryFile(), generateSubjectFile(), generateSubjectFileFastq(), and getBases().


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