我正在处理 4C 数据,其中我有一个 .txt 文件,其中包含染色体、开始、结束、nReads、RPM、p.value、q.value,我只对 chr15 中的重要交互感兴趣,后来想过滤那些交互远大于 100kb,接近 3kb。
library(r3Cseq)
library(BSgenome.Hsapiens.UCSC.hg19.masked)
library(GenomicRanges)
library(Homo.sapiens)
kura.int <- read.table("KURA_DpnII.interaction.txt", header = T)
kura_data <- kura.int[kura.int$chromosome == "chr15" & kura.int$q.value > 0.1, ]
kura.int.gr <- makeGRangesFromDataFrame(kura_data, keep.extra.columns = T)
id <- "91433"
rccdGene <- genes(TxDb.Hsapiens.UCSC.hg19.knownGene,
filter=list(gene_id=id))
rccdPromoter <- start(rccdGene)
kura_end <- ((rccdPromoter+kura_data$end)/2)
kura <- cbind(rccdPromoter, kura_end)
kura_2 <- cbind(kura, kura_data$chromosome)
colnames(kura_2) <- c("start", "end", "chr")
kura_3 <- kura_2[distance(kura_2$start, kura_2$end)<=100000]
在“kura_2”矩阵中,我有 3 列,即“chr”、“start”和“end”,其中我有一个新的开始作为基因的启动子和不同的结尾。所以我尝试编写上面的代码块,但是当我来到过滤步骤使用函数“距离”时,我收到了这个错误
Error in (function (classes, fdef, mtable) :
unable to find an inherited method for function ‘distance’ for signature ‘"character", "character"’
现在我有一个 kura_2 矩阵,其中包含 3 列,即“chr”“start”“end”
start end chr
1 91498106 86026693 chr15
2 91498106 91466684 chr15
3 91498106 88330238 chr15
4 91498106 91488399.5 chr15
5 91498106 91491012.5 chr15
6 91498106 91768848 chr15
现在,如何过滤开始和结束之间大于 100kb 且小于 3kb 的基因组相互作用?
新的开始是基因的启动子,新的结束是 ((start+end)/2) 这就是我有浮点值的原因,因为这样很容易绘制出我的启动子(诱饵)的相互作用。有没有更好的方法来过滤掉交互?先感谢您