问题描述
我有一个遗传数据集,其中我将基因组中物理上紧密靠近的基因变体分组。我将每个染色体上与基因组中某些点相距500 +/-距离的基因分组。
我已经为此编写了代码,但是,当我查看输出时,我新形成的group
列并未将数字从1开始的组组成,编号最小的组是5,而我不能找出原因。
我的“斑点”数据集的变体位置必须在500 +/-范围内,并且看起来像:
connected_spots chrom min max low high
1 1 1000 1200 500 1700
2 1 20000 20100 19500 20600
3 5 900 1000 400 1500
low
和high
列是我要在其中收集变体的范围。它们是通过将max
和min
设置为+500或-500来创建的值:
spots[,c("low","high") := .(min - 500,max + 500)]
然后我比较我的第二个数据集df是否在基因组中某个位置上的任何变体(行)在low
和high
的范围内,并将它们分组为{{ 1}}列(如果变体在同一位置):
group
我想要查看是否有基因变异适合斑点范围的df如下:
df$connected_spots <- seq.int(nrow(df))
#Find matches in df on matching chromosomes and position between low&high:
df <- df[spots,group := i.connected_spots,on = .(chrom,position > low,position < high ) ]
我为df预先创建了一个Gene chrom position connected_spots
Gene1 1 1200 1
Gene2 1 10000 2
Gene3 5 500 3
列,只是给每个变体/行提供了一个ID来搜索位置匹配项-如果我最终要搜索哪个变体,这实际上是有问题的在我的第一个数据集中在connected_spots
范围内?是什么导致我的真实数据的最低connect_spots
为5?
所以我得到的输出(当我将组从最低到最高排序时)是:
group
为什么Gene chrom position group
Gene4 1 1200 5
Gene8 1 10000 5
Gene9 5 500 6
不从第1组开始?
还有另一种方式可以对这一行进行编码:
group
有可能避免我的真实数据出现问题?
输入数据:
df <- df[spots,position < high ) ]
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)