我的问题是:我有一个包含三列的表,第一列包含基因名称。基因“开始”的第二个位置,以及“结束”的第三个位置。
我想创建一个循环,允许我测试基因i + 1是否与i基因重叠。如果是这种情况,我想创建一个包含基因i和i + 1的子列表。如果条件满足,我想测试基因i + 2是否与i + 1重叠,这次如果这是真的,我想在这个子列表中添加基因i + 2。如果不是这种情况,我想再次创建另一个子列表,直到我的表结束。
我尝试了几种方法,但有时我会接下来的所有基因,有时候我会得到成对重叠的基因但不会更多。以下是我正在编写的一个示例,它在每个基因的不同子列表中恢复,但我不能用我之前的条件填充这些子列表。
mylist_operons = list()
gene_table = read.table("F:/coordonnees_genomiques.tab")
counter = 0
for (i in 2:length(gene_table[,1])) {
if (gene_table[i,2]-gene_table[i-1,3]<= 0) {
sub_list <- list(as.character(gene_table[i,1]))
mylist_operons[[i-counter]] = sub_list
counter = counter+1
}
else {
counter = 0
sub_list <- list(as.character(gene_table[i,1]))
mylist_operons[[i]] = sub_list
}
}