Ich versuche, eine Funktion zu erstellen, die Zählungen von bestimmten benachbarten Nukleotiden (CG nebeneinander) innerhalb eines bestimmten Fensters zurückgibt, das ich in einem Vektor formatiert habe.Suchen bestimmter Vektoreinträge in einem gleitenden Fenster
würde ich die Fenster wie 100 Nukleotide lang sein und Verschiebung alle 10.
Die Daten sind Setup wie folgt aus (bis 10k Einträge) bewegen:
data <- c("a", "g", "t", "t", "g", "t", "t", "a", "g", "t", "c", "t",
"a", "c", "g", "t", "g", "g", "a", "c", "c", "g", "a", "c")
Bisher habe ich versucht, dies:
library(zoo)
library(seqinr)
rollapply(data, width=100, by=10, FUN=count(data, wordsize=2))
Aber ich bekomme immer die Fehler
"Error in match.fun(FUN) :
'count(data, 2)' is not a function, character or symbol"
Ich habe auch versucht:
starts <- seq(1, length(data)-100, by = 100)
n <- length(starts)
for (i in 1:n){
chunk <- data[starts[i]:(starts[i]+99)]
chunkCG <- count(chunk,wordsize=2)
print (chunkCG)
}
Aber ich weiß nicht, wie die Daten zu speichern, die zurückgegeben wird. Dieser Ansatz erlaubt es mir auch nicht, Frames zu überlappen.
COUNT (Daten, Wortgröße = 2) 'ist keine Funktion. Sie brauchen 'FUN = Funktion (x) count (x, wordsize = 2)' wahrscheinlich. Oder vielleicht sogar '..., FUN = count, wordsize = 2)' für deinen 'rollapply' Anruf. – thelatemail
Sie wollen für Zeile 1: 100, 101: 200 usw. die Anzahl der "cg" -Paare? –