在R中将FASTQ ASCII转换为十进制和十六进制

时间:2011-02-17 05:03:21

标签: r ascii fastq

我有一个FASTQ质量得分,它以一系列ASCII字符表示。在这种情况下(可能),ASCII字符64到126表示0到62的分数(假设它是Illumina )。这产生了潜在的序列:

  

feffefdfbefdfffcfdeTddaYddffbfcI``S_KKX _]] MR [D_TY [VTVXQ]`Q_BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB

如何提取ASCII字符的数量?

谢谢 圣

编辑: 该序列表示由碱基构成的生物学序列的质量(来自核酸中的碱基对,意指字符(ATGC))。基本质量是phred-scaled基本错误概率,等于-10 log10 Pr {base错误}。

1 个答案:

答案 0 :(得分:6)

好吧,正如马雷克所说:你可能会发现在Bioconductor中转换Illumina质量得分的功能。您可以在biostar.stackexchange.com询问。

使用基本功能,您可以使用charToRaw()

> x <- "feeffdbefc`\\KKX]_BBBB"
> charToRaw(x)
 [1] 66 65 65 66 66 64 62 65 66 63 60 5c 4b 4b 58 5d 5f 42 42 42 42
> as.numeric(charToRaw(x))
 [1] 102 101 101 102 102 100  98 101 102  99  96  92  75  75  88  93  95  66  66  66  66
> as.character(charToRaw(x))
 [1] "66" "65" "65" "66" "66" "64" "62" "65" "66" "63" "60" "5c" "4b" "4b" "58" "5d" "5f" "42" "42" "42" "42"

请注意,你必须逃避反斜杠,否则你会遇到麻烦。这取决于您读取数据的方式等等。