如何确定 DNA 序列列表中已知基序之间的平均距离

How to determine the average distance between known motif in a list of DNA sequences

所以我的问题是:我正在搜索序列内已知基序之间的平均距离,并将其扩展到序列列表...第一部分完成,第二部分(扩展到列表序列)是有问题的!所以,这是我做第一部分的方式:

source("motifOccurrence.R") #https://www.r-bloggers.com/calculate-the-average-distance-between-a-given-dna-motif-within-dna-sequences-in-r/
library("seqinr")
df <- readDNAStringSet("X.fasta")
df2 <- df[[1]]
motif <- c("T", "C", "C", "A")
coord <- coordMotif(df2, motif)
motidist <- computeDistance(coord)
motidist

[1] 152

看来我的 fasta 列表的第一个序列在两个 TCCA 基序之间的平均距离为 152 个核苷酸。而且,我不知道如何将它自动化到我在 df 中的所有列表...

预先感谢您的帮助。

凯文

这未经测试,但应该可以。 sapply "climbs" 每个列表元素(我们也可以在这里使用 lapply)。

sapply(df, FUN = function(x, motif) {
  computeDistance(coordMotif(x, motif))
}, motif = motif)

结果将是一个向量。如果您想将其保留为列表,请使用 sapply(..., simplify = FALSE)lapply 没有进行简化。将任何一种行为都视为一种方便。 :)