23 months ago by
The simple answer is 'Because that is how it is designed to work'. From ?DNAString, which you should always check first:
The DNAString class is a direct XString subclass (with no
additional slot). Therefore all functions and methods described
in the XString man page also work with a DNAString object
Unlike the BString container that allows storage of any single
string (based on a single-byte character set) the DNAString
container can only store a string based on the DNA alphabet (see
below). In addition, the letters stored in a DNAString object are
encoded in a way that optimizes fast search algorithms.
 "A" "C" "G" "T" "M" "R" "W" "S" "Y" "K" "V" "H" "D" "B" "N" "-" "+" "."
Since there are no lower case letters in the DNA alphabet, you can't have them in a DNAString. But do note that:
37-letter "BString" instance
BString class inherits from
XString, just like
DNAString, so it should probably suffice?