2

I'm tried to get reverse complement of a DNA sequence in R applying Biostrings package. The length of sequence is around 900 and I want to see it completely but R shows an abstract version with some dots between the codes. Is there anyway to get it completely?

> library("Biostrings")
> d <- DNAString("CTGTTGAAGCGTCAGATGGATAAGCATCCATAATTTACTGTCCATATCCAAGACCTCATAGTATTCCTCGGGCATGAATTTAATTGGCGGGGTCGGGGTTCAAGTAAGCCGTATTTTGGCTTCGCCGCCGCGAATTTGAATGCGAGGCGTCTCCTCAAAGATGAGTAACGGCGTCCTGGGCTTCACAGAACTTTCGTGAGAAAACTCTAAGACTCTACAGAGATCACAAATGGTTTCAGCCCAGACTCTATTACTTGGGAGTAAGGGGGTTGACAACTCGCCACTCTATTTCCCATCATCTGCCCGCAGCTGCGACTGGGCCGAACCGAGATGGATATAGGAATAAAATGTGGTGGTGTTGCCGTGCTCTTTTCGTCCGCGTGTCCATGGCGAGGACAGCTATTTTCCTCTAAAGCCCATGTAGATCGCCTCGATCCCTCGTAAGACCCGGCTGCAGTCTGACGCCCCGACAAATAAGCTACCGCCTCCTAAACCATCCCCGATTCAGATGCGTGCTAACTTCGTGTTTCGGCCTAGCTTTAAGGGTACCGTCAGTCACCGCGACTCATAGCTGTACTCCTTCAGAATAAGGTAGTCCCGATCGTACACGTAGCTACAGAGGTATCAGACACGAGCTCGCGTCAATTCGACTCTTCGAGGCTGTGTGCCCCAGCTCCTCAGGGATCGCAATTTAGCAATCAAGAGATCTTGCCTCGTATCAATGATTTTCGCAGTTGGGTTCACGCCCCCTACAATAGCGCACCGCCTGTGTGCAAAGAAATTTTCTGGTACGTAAGATTCGAGGGAGTAGGGACGAAACATTCATGGCGATAGCAGATTTCCGAGGGCTACGGTGTAGCGGATACTAACCTCCGCGTGGTATAGATAGATACTTACCAAGGACACATGCTCTTCCTGTATAGCCGTTCCCG")
> rc <- reverseComplement(d)
> rc
  932-letter "DNAString" instance
seq: CGGGAACGGCTATACAGGAAGAGCAT...TGCTTATCCATCTGACGCTTCAACAG
arado1
  • 51
  • 7

2 Answers2

3

You can use toString or as.character.

See the documentation on coercion of XStrings:

Description

The DNAString, RNAString and AAString classes are similar containers but with the more biology-oriented purpose of storing a DNA sequence (DNAString), an RNA sequence (RNAString), or a sequence of amino acids (AAString).

All those containers derive directly (and with no additional slots) from the XString virtual class.

Coercion

In the code snippets below, x is an XString object.

as.character(x): Converts x to a character string.

toString(x): Equivalent to as.character(x).

If you do class(rc) you will see that it is a DNAString so this documentation applies.

asachet
  • 6,620
  • 2
  • 30
  • 74
1

Just use as.character:

> d = DNAString(paste0(sample(c("A","C","T","G"),600,TRUE),collapse=""))
> d
  600-letter "DNAString" instance
seq: CACATTTCTGAAGGTGTTGAGCGGCATCATATAAAC...CATAAACATAATTGCTTGTTTAGTCTACCAAACGCT
> as.character(d)
[1] "CACATTTCTGAAGGTGTTGAGCGGCATCATATAAACGCTCCCCCTTCAACTGTATAGTCCGGCACAGTAGGCTTAGGATATCACCGATGTGTCCGCCACGAAGCTCGAAGACCCGCCTCAAACAGGGCGCACGACCCGCTATATCCAACAATGAGTTCGACCCTGGATCCGTGCATTACATAGGCGACATGTGTGAAAAACTTTGCGTATCTCGGGCTTGCGCCTTTACTCCATGACTTTCTTTCGAACCTTAAATGACTGGTGCATACCCCTGCTTGTCCGTAAGGGAACGGACGGTTGGTATATCTTGAGCACGAGTAAGGGCGCTGATACCCCTTTGCTCGTCATTGATGGGCCAATGTGATGTTGACGTTGCTTGAAGGATTGTACTGGGGTTAATTTTTACGGGCGGAATTGGCTTCACAGTAATACGGACTGTGTAACAAGCGAGCCCCTTAAACGTGCAGACACTAAATAGCGGGCGAGTTACCTTTCATCAGGCACAGGTTAACTTTGGAAAAGGTCCACTTGAACCTCATTTGAAACCAAAGACCGTTATATATGCATAAACATAATTGCTTGTTTAGTCTACCAAACGCT"

Note you don't want to be doing this too much since BioStrings tries hard to be efficient at handling long strings. If you are trying to write this to a file there are other ways of doing it...

Spacedman
  • 92,590
  • 12
  • 140
  • 224