【发布时间】:2021-01-27 15:58:29
【问题描述】:
这是我的第一个问题,对不起,如果我做错了,很抱歉这么长......
我有一张来自整个属的基因组表,我想在较小的水平上进行比较,例如在一个或多个物种内进行比较。我的表包含 3 列:p1、p2 和百分比标识。我的行是每个物种之间的比较。
p1 和 p2 一样包含基因组列表。以最低数字开头的任何数字都放在 p1 中,而具有较高数字的数字放在 p2 中。基因组名称的格式为 1_1_1,因此 p1 可能是 1_1_1,p2 可能是 2_1_1200,但如果 p2 是 3_1_23,则在下一行中 p1 可能是 2_1_1200。第三列是它们之间的百分比同一性,但我认为不应该相关。
多个基因组属于同一个物种,但它们没有任何顺序。例如,42、54、210 和 694 是同一物种。我只想找到 p1 和 p2 都包含这些数字的行,所以 42 到 54、54 到 210 等,但不是 1 到 42。这个物种只有 4 个基因组,但有些有多达 582 个要比较.
到目前为止: 它们是细菌基因组,所以基因顺序不一样,第三位对应基因位置,所以我一直用“^42”来称呼42_1_622。我不想要 642_1,所以我将 42 锚定到开头。所有中间数字都是 1。
subset_species_1 <- rbind(x[grep("^42_", x$p1), ],
x[grep("^42_", x$p2), ],
x[grep("^54_", x$p1), ],
x[grep("^54_", x$p2), ],
x[grep("^210_", x$p1), ],
x[grep("^210_", x$p2), ],
x[grep("^694_", x$p1), ],
x[grep("^694_", x$p2), ])
这显然很乏味,它给了我在任一列中包含任何这些基因组的所有行,而不仅仅是在两列中包含这些基因组的行。
另外,每张表只代表一个基因,理想情况下,我想为每张表使用相同的子集,其中有数千个。
提前谢谢你,我需要我能得到的所有帮助!
编辑添加:我在 R/Rstudio 中这样做
【问题讨论】: