【发布时间】:2019-01-09 18:03:28
【问题描述】:
我想知道某些基因是否聚集在一起。现在,我已经有了一个基因列表,以及它们的起始和终止位置,并且我已经知道如何计算这些基因之间的距离。问题是我不知道如何考虑染色体的转换。
您无法测量 1 号染色体上的基因和 2 号染色体上的基因之间的距离。
我想过这样计算距离:基因 2 的起始位置 - 基因 1 的停止位置。然后,你就有了这些基因之间的距离。
但是我该如何解释:当你到达下一条染色体时,R 代码会抓取 2 号染色体上基因的起始位置,但会抓取 1 号染色体上基因的终止位置,这是不可能的(对于至少我的研究)。
所以我想知道如何在 R 中解释这一点。如果基因位于不同的染色体上,我只需要以某种方式跳过它们。
希望你们能帮帮我。
关于下面的代码:三个向量只是起点和终点位置的向量,以及染色体。它们都等长。 染色体是包含每个基因的染色体编号的向量
start_vector <- as.vector(sorted_coords$start_position)
end_vector <- as.vector(sorted_coords$end_position)
chromosomes <- as.vector(sorted_coords$chromosome_name)
chromosomes[is.na(chromosomes)] <- 24
count = 0
for(i in 1:length(chromosomes)){
if(count != chromosomes[i]){
start <- i - 1
end <- i + 1
start_vector <- start_vector[-start]
end_vector <- end_vector[-end]
count <- count + 1
}
}
我期望一个包含所有基因距离的向量,不包括位于不同染色体上的基因的距离。
【问题讨论】:
-
您能否提供一个我们可以使用的可重现示例?这是一篇很棒的帖子:stackoverflow.com/questions/5963269/…
-
是的,您必须使用 for 循环遍历染色体(来自特定染色体的子集基因并应用想要的功能)。您是否有更具体的问题,因为这与 R 关系不大?您还可以计算每个染色体的基因密度(对我来说这似乎更自然)
标签: r bioinformatics