void TestIReadStreamSingleRead() { ireadstream ifs("./test/data/s_6_1.fastq.gz"); ASSERT(ifs.is_open()); Read r; ifs >> r; ASSERT_EQUAL("EAS20_8_6_1_2_768/1", r.getName()); ASSERT_EQUAL("CAGCACAGAGGATATCGCTGTTACANNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN", r.getSequenceString()); //ASSERT_EQUAL("HGHIHHHGHECHHHHHHHGGHHHHH###########################################################################", r.getQuality()); ifs >> r; ASSERT_EQUAL("EAS20_8_6_1_2_1700/1", r.getName()); ASSERT_EQUAL("CTTGGTGCGGAACTGAAAAGTGGTANNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN", r.getSequenceString()); //ASSERT_EQUAL("GGGGCGGGGEGGGGGBGAGF:CCCC###########################################################################", r.getQuality()); }
void TestIReadStreamFull() { ireadstream ifs("./test/data/s_6_1.fastq.gz"); ASSERT(ifs.is_open()); Read r; while (!ifs.eof()) { ifs >> r; } ifs.close(); ASSERT_EQUAL("TEST/1", r.getName()); ASSERT_EQUAL("CATACGGGTTTCCGCCAGTNTTTCCATGCCGCGATGGACGTAGAACAGACGGTAGTCGGCGTCGATAATGTTTTCGCCATCGACGCACAGACGGAAGTGG", r.getSequenceString()); //ASSERT_EQUAL("HHHGHHGIHIHHEHHHHHGHHHHHHHHGHEHHHHDHAHHHA?HFHEFHEHHHGHGGHGG@B2BEBEF=HHGEEA:C?CCD?B@EF/4=2<4188.?BA5=", r.getQuality()); }
std::string extendContigsWithContigExtender(ReadSet & contigs, ReadSet::ReadSetVector &contigReadSet, ReadSet & changedContigs, ReadSet & finalContigs, SequenceLengthType minKmerSize, double minimumCoverage, SequenceLengthType maxKmerSize, SequenceLengthType maxExtend, SequenceLengthType kmerStep) { std::stringstream extendLog; //#pragma omp parallel for for (ReadSet::ReadSetSizeType i = 0; i < contigs.getSize(); i++) { const Read &oldRead = contigs.getRead(i); Read newRead; SequenceLengthType oldLen = oldRead.getLength(), newLen = 0; ReadSet::ReadSetSizeType poolSize = contigReadSet[i].getSize(); SequenceLengthType myKmerSize = minKmerSize; if (poolSize > minimumCoverage) { LOG_VERBOSE_OPTIONAL(2, true, "kmer-Extending " << oldRead.getName() << " with " << poolSize << " pool of reads"); ReadSet myContig; myContig.append(oldRead); ReadSet newContig; while (newLen <= oldLen && myKmerSize <= maxKmerSize) { newContig = ContigExtender<KS>::extendContigs(myContig, contigReadSet[i], maxExtend, myKmerSize, myKmerSize); newLen = newContig.getRead(0).getLength(); myKmerSize += kmerStep; } newRead = newContig.getRead(0); } else { newRead = oldRead; } long deltaLen = (long) newLen - (long) oldLen; if (deltaLen > 0) { extendLog << std::endl << "Kmer Extended " << oldRead.getName() << " " << deltaLen << " bases to " << newRead.getLength() << ": " << newRead.getName() << " with " << poolSize << " reads in the pool K " << (myKmerSize - kmerStep); //#pragma omp critical changedContigs.append(newRead); } else { extendLog << std::endl << "Did not extend " << oldRead.getName() << " with " << poolSize << " reads in the pool"; //#pragma omp critical finalContigs.append(oldRead); } } return extendLog.str(); }
std::string extendContigsWithCap3(const ReadSet & contigs, ReadSet::ReadSetVector &contigReadSet, ReadSet & changedContigs, ReadSet & finalContigs, ReadSet::ReadSetSizeType minimumCoverage) { std::stringstream extendLog; int poolsWithoutMinimumCoverage = 0; // initialize per-thread Cap3 instances Cap3 cap3[omp_get_max_threads()]; #pragma omp parallel for for (long i = 0; i < (long) contigs.getSize(); i++) { const Read &oldRead = contigs.getRead(i); Read newRead = oldRead; SequenceLengthType oldLen = oldRead.getLength(), newLen = 0; ReadSet::ReadSetSizeType poolSize = contigReadSet[i].getSize(); double extTime = MPI_Wtime(); if (poolSize > minimumCoverage) { LOG_VERBOSE_OPTIONAL(2, true, "Extending " << oldRead.getName() << " with " << poolSize << " pool of reads"); newRead = cap3[omp_get_thread_num()].extendContig(oldRead, contigReadSet[i]); newLen = newRead.getLength(); } else { poolsWithoutMinimumCoverage++; } extTime = MPI_Wtime() - extTime; long deltaLen = (long)newLen - (long)oldLen; if (deltaLen > 0) { extendLog << std::endl << "Cap3 Extended " << oldRead.getName() << " " << deltaLen << " bases to " << newRead.getLength() << ": " << newRead.getName() << " with " << poolSize << " reads in the pool, in " << extTime << " sec"; //#pragma omp critical changedContigs.append(newRead); } else { extendLog << std::endl << "Did not extend " << oldRead.getName() << " with " << poolSize << " reads in the pool, in " << extTime << " sec"; //#pragma omp critical finalContigs.append(oldRead); } } LOG_VERBOSE_OPTIONAL(2, true, "Extended " << contigs.getSize() - poolsWithoutMinimumCoverage << " contigs out of " << contigs.getSize()); return extendLog.str(); }