특정 지점 또는 오히려 범위에서 발생하는 게놈의 돌연변이를 계산해야합니다. 돌연변이는 게놈 위치 (염색체 및 염기쌍, 예를 들어 Chr1, 10658324)를 갖는다. 범위 또는 지점은 각각 게놈의 주어진 위치의 상향 및 하향 (+ -) 10000 염기 쌍으로 정의됩니다. 돌연변이의 위치와 "스팟"의 위치는 모두 데이터 프레임에 저장됩니다.데이터 프레임에 주어진 게놈 영역 주변의 출현 횟수
예 :
그래서 요구하고있는 질문은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)
: "장소"에 주어진 위치 주변 -10k + 존재하는 염기쌍이 얼마나 많은 돌연변이. (예 : 지점이 100k 인 경우 범위는 90k-110k입니다.) 실제 데이터에는 24 개의 염색체가 모두 포함되지만 당연히 하나의 염색체에만 집중할 수 있습니다. 최종 데이터에는 "spot"과 그 근처에있는 돌연변이 수, 이상적으로는 데이터 프레임 또는 매트릭스가 있어야합니다.
미리 제안 해 주셔서 감사합니다.
여기에는 첫 번째 시도가 있지만, 나는 그것을하는 더 우아한 방법이 있습니다.
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,]
는 R 커뮤니티의 도움을 얻으려면이 매우 특정이, 다음은 – Learner
왜 연속 분포에서 의사 난수를 사용하여 이산 (정수) 분포에서 발생하고있는 것을 시뮬레이션하고 있습니까? "올바른"대답을 줄 수있는 예를 게시해야합니다. –
유용한 설정 작업을 제공하는 Genomic Ranges를 살펴보십시오. https://bioconductor.org/packages/release/bioc/html/GenomicRanges.html – Drey