【发布时间】:2020-06-16 13:44:58
【问题描述】:
我有一个基因数据集,我映射到一种蛋白质 ID。然后我试图在另一个第二个数据集中找到那些蛋白质 ID。第二个数据集非常大,有 11759454 行。例如,我尝试通过合并或加入来查找匹配的蛋白质 ID:
testdf <- join(proteindf, genes) #or:
testdf <- merge(proteindf, genes, by.all='protein_id' , all.x=TRUE)
这些运行但行顺序不合适,testdf 的大小增长到行号 11775850。
我不知道如何解决这个问题,我有生物学背景,并且尝试过运行 sql 版本的合并,但是这会无限期地运行而没有完成。
我无法提供完整的数据,但通常数据集如下所示:
#gene dataset:
protein_id Gene
1 9606.ENSP00000378868 A1CF
2 9606.ENSP00000384794 A4GALT
3 9606.ENSP00000324842 AACS
4 9606.ENSP00000000233 ARF5
#proteindf:
protein_id protein_id1 coexpression experiments database
1 9606.ENSP00000000233 9606.ENSP00000272298 0 0 0
2 9606.ENSP00000000233 9606.ENSP00000253401 0 0 0
3 9606.ENSP00000000233 9606.ENSP00000401445 0 0 0
4 9606.ENSP00000000233 9606.ENSP00000418915 0 0 0
protein_id 行可能有很多重复项,我认为这会导致问题。
预期输出:
protein_id Gene protein_id1 coexpression experiments database
1 9606.ENSP00000000233 ARF5 9606.ENSP00000272298 0 0 0
2 9606.ENSP00000000233 ARF5 9606.ENSP00000253401 0 0 0
3 9606.ENSP00000000233 ARF5 9606.ENSP00000401445 0 0 0
4 9606.ENSP00000000233 ARF5 9606.ENSP00000418915 0 0 0
我随后使用合并创建另一个数据集(将基因的 protein_id 重命名为 protein_id1)以获取“protein_id1”列的基因名称,这也给了我相同的 11775850 行。任何有助于理解这一点的帮助将不胜感激。
【问题讨论】:
标签: r join merge bioinformatics