在 R / Bioconductor 中,任务将是 (a) 加载适当的库 (b) 读取 fasta 文件 (c) 计算核苷酸使用和 gc % (d) 将数据切割成 bin 和 (e) 将原始数据输出到单独的文件。沿着
## load
library(ShortRead)
## input
fa = readFasta("/path/to/fasta.fasta")
## gc content. 'abc' is a matrix, [, c("G", "C")] selects two columns
abc = alphabetFrequency(sread(fa), baseOnly=TRUE)
gc = rowSums(abc[,c("G", "C")]) / rowSums(abc)
## cut gc content into bins, with breaks at seq(0, 1, .2)
bin = cut(gc, seq(0, 1, .2))
## output, [bin==lvl] selects the reads whose 'bin' value is lvl
for (lvl in levels(bin)) {
fileName = sprintf("%s.fasta", lvl)
writeFasta(fa[bin==lvl], file=fileName)
}
要开始使用 R / Bioconductor,请参阅http://bioconductor.org/install。所示大小的 454 数据的内存要求并不算太差,这里的脚本会相当快(例如,260k 读取需要 7 秒)。