Ich muss Mutationen im Genom zählen, die an bestimmten Stellen oder Bereichen auftreten. Die Mutationen haben eine genomische Position (Chromosomen- und Basenpaar, z.B. Chr1, 10658324). Der Bereich bzw. der Spot ist definiert als 10000 Basenpaare aufwärts und abwärts (+ -) einer gegebenen Position im Genom. Sowohl Positionen von Mutationen als auch die Position von "Spots" sind in Datenrahmen gespeichert.Zählvorkommen um eine genomische Region in einem Datenrahmen
Beispiel:
set.seed(1)
Chr <- 1
Pos <- as.integer(runif(5000 , 0, 1e8))
mutations <- data.frame(Pos, Chr)
Chr <- 1
Pos <- as.integer(runif(50 , 0, 1e8))
spots <- data.frame(Pos, Chr)
So ist die Frage ich frage ist: Wie viele Mutationen vorhanden sind + -10K Basenpaare um die gegebenen Positionen in "Spots". (z.B. wenn der Spot 100k ist, wäre der Bereich 90k-110k). Die echten Daten würden natürlich alle 24 Chromosomen enthalten, aber der Einfachheit halber können wir uns vorerst auf ein Chromosom konzentrieren. Die endgültigen Daten sollten den "Punkt" und die Anzahl der Mutationen in seiner Umgebung enthalten, idealerweise in einem Datenrahmen oder einer Matrix.
Vielen Dank im Voraus für Anregungen oder Hilfe!
Hier ist ein erster Versuch, aber ich bin ziemlich sicher, es gibt einen Weg, eleganter Weise, es zu tun.
w <- 10000 #setting range to 10k basepairs
loop <- spots$Pos #creating vector of positions to loop through
out <- data.frame(0,0)
colnames(out) <- c("Pos", "Count")
for (l in loop) {
temp <- nrow(filter(mutations, Pos>=l-w, Pos<=l+w))
temp2 <- cbind(l,temp)
colnames(temp2) <- c("Pos", "Count")
out <- rbind(out, temp2)
}
out <- out[-1,]
dies ist sehr spezifisch, wenn Sie Hilfe von R-Community erhalten wollen, dann ist es besser, Sie einen Eingang und einen Ausgang erwartete Beispiel liefern, dann werden die Menschen wird verstehen, was Sie suchen – Learner
Warum verwenden Sie Pseudozufallszahlen aus einer fortlaufenden Verteilung, um zu simulieren, was bei einer diskreten (ganzzahligen) Verteilung vor sich geht? Sie sollten ein Beispiel veröffentlichen, in dem Sie die "richtige" Antwort geben können. –
Werfen Sie einen Blick auf die Genomic Ranges, die Ihnen nützliche Set-Operationen bieten: https://bioconductor.org/packages/release/bioc/html/GenomicRanges.html – Drey