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

feffefdfbefdfffcfdeTddaYddffbfcI``S_KKX_]]MR[D_TY[VTVXQ]`Q_BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB

如何提取 ASCII 字符的个数?

谢谢圣

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

有帮助吗?

解决方案

好吧,正如马雷克所说:您可能会在 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"

请注意,您必须避开反斜杠,否则您会遇到麻烦。这取决于您如何读取数据等等。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top