【发布时间】:2020-07-24 04:41:57
【问题描述】:
我知道这是一个基本的东西,肯定已经被问过了,但我找不到适合我正在寻找的东西,而且我对 R 有点生疏。
我有一个名为snpMap 的表,其中包含两组基因组坐标,一组是旧的,另一组是新的。我有一个输出表,它意外地以旧的基因组坐标格式编码,称为bim。我想要做的是匹配两个不同表之间的列,基于它们共同的“旧”基因组坐标列,然后从snpMap 中提取“新”基因组坐标,并将它们放入@987654324 中相应行的新列中@。我知道这就像使用查找表,这是我以前做过的事情,但就像我说的,我有点生疏了。
因为基因组坐标被分解成单独的列,例如染色体和坐标,我将它们连接在两个表中以使过程更容易一些:
snpMap$hg19_coords <- with(snpMap, paste0("chr", CHR, "-", POS))
snpMap$hg38_coords <- with(snpMap, paste0(chr_hg38, "-", pos_hg38))
bim$hg19_coords <- with(bim, paste0("chr", chr, "-", basepair))
hg19 是旧的,hg38 是新的。下面是参考表,snpMap:
CHR SNP CM POS COUNTED ALT Type
rs4951929:757734:C:T 1 rs4951929:757734:C:T 0 757734 C T SNV
rs4951862:757936:C:A 1 rs4951862:757936:C:A 0 757936 C A SNV
rs3131954:758626:C:T 1 rs3131954:758626:C:T 0 758626 C T SNV
rs114111569:759837:T:A 1 rs114111569:759837:T:A 0 759837 T A SNV
rs112618790:777232:C:T 1 rs112618790:777232:C:T 0 777232 T C SNV
rs4040617 1 rs4040617 0 779322 G A SNV
newRef newCount name rsNumGuess chr_hg38
rs4951929:757734:C:T T C rs4951929 rs4951929 chr1
rs4951862:757936:C:A A C rs4951862 rs4951862 chr1
rs3131954:758626:C:T T C rs3131954 rs3131954 chr1
rs114111569:759837:T:A A T rs114111569 rs114111569 chr1
rs112618790:777232:C:T C T rs112618790 rs112618790 chr1
rs4040617 A G rs4040617 rs4040617 chr1
pos_hg38 hg19_coords hg38_coords
rs4951929:757734:C:T 822354 chr1-757734 chr1-822354
rs4951862:757936:C:A 822556 chr1-757936 chr1-822556
rs3131954:758626:C:T 823246 chr1-758626 chr1-823246
rs114111569:759837:T:A 824457 chr1-759837 chr1-824457
rs112618790:777232:C:T 841852 chr1-777232 chr1-841852
rs4040617 843942 chr1-779322 chr1-843942
旧坐标是CHR 和POS(我已将它们连接成hg19_coords),新坐标是chr_hg38 和pos_hg38(我也将它们连接成hg38_coords)。
下面是输出表,bim:
> head(bim)
chr snp position basepair allele1 allele2 hg19_coords
1: 1 rs4951929:757734:C:T 0 757734 C T chr1-757734
2: 1 rs4951862:757936:C:A 0 757936 C A chr1-757936
3: 1 rs3131954:758626:C:T 0 758626 C T chr1-758626
4: 1 rs114111569:759837:T:A 0 759837 T A chr1-759837
5: 1 rs112618790:777232:C:T 0 777232 T C chr1-777232
6: 1 rs4040617 0 779322 G A chr1-779322
我想将chr 和basepair 列替换为相应的hg38 值,使用hg19_coords 作为“键”。最终,我也想替换 snp 中的值,但这是另一回事。
我应该如何处理这个问题?这就是data.table 的全部内容。
【问题讨论】:
标签: r