【问题标题】:Iterating through multiple substrings in a .txt file in base R遍历基本 R 中 .txt 文件中的多个子字符串
【发布时间】:2020-02-08 03:27:54
【问题描述】:

我的任务是使用 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() 传递文件。我尝试对strsplit() 自然产生的每个元素使用unlist(strsplit()) 来尝试将每个序列作为一个元素存储在列表中。然后我可以遍历每个元素来进行计算,但我的执行没有成功。

【问题讨论】:

  • 运行output <- dput(x, file = "rosalind_gc_FASTA.txt") 给了我[1] 5。这个函数我不熟悉,它是干什么用的?
  • “如何计算字符串中的一个字符”的相关帖子:stackoverflow.com/q/12427385/680068

标签: r bioinformatics biopython fasta


【解决方案1】:

您可以使用dat <- read.csv("file.txt", sep = " ", header = FALSE) 将行读取到数据帧中。

那么你就可以用

来统计Gs和Cs的数量了
dat$Gs <- lengths(regmatches(lines$V2, gregexpr("G", dat$V2)))
dat$Cs <- lengths(regmatches(lines$V2, gregexpr("C", dat$V2)))

最后需要的是计算比率: dat$ratio &lt;- dat$Gs/dat$Cs

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-12-10
    • 2023-03-20
    • 2014-12-30
    • 1970-01-01
    • 2015-03-30
    • 1970-01-01
    • 2018-03-16
    相关资源
    最近更新 更多