FastqRead::FastqRead(Sequence s, QualityScores q, string f) { try { m = MothurOut::getInstance(); format = f; //fill convert table - goes from solexa to sanger. Used fq_all2std.pl as a reference. for (int i = -64; i < 65; i++) { char temp = (char) ((int)(33 + 10*log(1+pow(10,(i/10.0)))/log(10)+0.499)); convertTable.push_back(temp); convertBackTable.push_back(((int)(33 + 10*log(1+pow(10,(i/10.0)))/log(10)+0.499))); } if (s.getName() != q.getName()) { m->mothurOut("[ERROR]: sequence name does not match quality score name. Cannot construct fastq object.\n"); m->control_pressed = true; } else { name = s.getName(); comment = s.getComment(); sequence = s.getUnaligned(); scores = q.getScores(); scoreString = convertQual(scores); } } catch(exception& e) { m->errorOut(e, "FastqRead", "FastqRead"); exit(1); } }
struct Functor { void operator () (Sequence& s) const { // We dump the data size and the comment std::cout << "[" << s.getDataSize() << "] " << s.getComment() << std::endl; // We dump the data std::cout << s.toString () << std::endl; }};