Re: [Seqan-dev] Dna5Q - how do you access qual or seq ? (Leon Kuchenbecker)


Thanks

That is exactly the sort of syntactic headslap I imagined (doh!). Cheers. 

While I'm here just out of curiosity do you know 

a) The size in RAM a fastq file takes up when single pass read vs double pass (~ per million 75mers)? 

b) Does Dna5Q and the alternative of  a seqs, qual charstring take up the same space in RAM? 

c) Is there any extra overhead in iterating or extracting elements from Dna5Q as opposed to a simple charstring?

d) Is Dna5Q something like a Vector of <Pair> ???


... anyway thanks again.
Stephen




-----------------------
Hi Stephen!

> //where seqs is the StringSet of Dna5Q read in above
> seqan::Dna5Q seq= seqs[0];
>
> Rcpp::Rcout << getQualityValue(seq[0]) << std::endl;    // error
> [...]

seqan::Dna5Q is a type for storing a single character from the ACGTN
alphabet including the associated quality. If you want to store a
sequence of such characters, you need String<Dna5Q>.

Thus, the correct types for your variables would be

> seqan::StringSet<seqan::CharString> ids;
> seqan::StringSet<seqan::String<seqan::Dna5Q> > seqsQ;

Your usage of getQualityValue() was in principle correct, just that you
were trying to subscript a single character.

Cheers
  Leon