我的任务是使用base R(无软件包)计算FASTA文件的GC内容。我的问题是,在存储序列名称以及Cs和Gs的数量时,我不知道如何实用地遍历序列。
我可以读入的示例FASTA文件(作为.txt文件:]
>T7_promoter
ATTAGACGAG
>T3_promoter
TTTGCGCGAAATTTTTTTTT
*这里没有引号,但>表示不同的顺序。
这样我的输出将在概念上类似于-
T7_promoter: 0.4 (ratio of GC from # of Gs and Cs)
T3_promoter: 0.25
非常感谢所有帮助。我目前正在使用readLines()
通过文件。我尝试对unlist(strsplit())
自然产生的每个元素使用strsplit()
,以尝试将每个序列作为元素存储在列表中。然后,我可以遍历每个元素以获取计算,但是我的执行未成功。
您可以使用dat <- read.csv("file.txt", sep = " ", header = FALSE)
读取数据框的行。
然后您可以用来计算G和C的数量
dat$Gs <- lengths(regmatches(lines$V2, gregexpr("G", dat$V2)))
dat$Cs <- lengths(regmatches(lines$V2, gregexpr("C", dat$V2)))
最后需要做的是比率的计算:dat$ratio <- dat$Gs/dat$Cs