【发布时间】:2019-02-25 12:37:18
【问题描述】:
我有一个编程问题,目前我想不出解决方案。我有一个表设置如下:
GeneA GeneB Value Distance
1 101 0.9
1 102 1
1 103 0.8
2 201 1
2 202 1
3 301 0.9
3 302 0.8
3 303 0.8
4 401 1
在这里,我想为 GeneA 列中的每个基因从 GeneB 列中提取一个替换基因。该值表示 Gene B 与 Gene A 的“相似程度”,因此我想获得一个具有最高可能值的 GeneB,即尽可能接近 1。
在某些情况下,与基因 2 一样,存在共享相同值的基因。在这里我也想得到彼此之间距离最短的基因。
我应该如何在 Python 中执行此操作?谢谢!
编辑:我的预期输出是有一个如下表:
GeneA GeneB Value Distance
1 102 1
2 201 1
3 301 0.9
4 401 1
在GeneB的201或202之间选择的地方,是选择与GeneA距离最短的一个,这是通过获取它们的遗传位置差异而输出的。
【问题讨论】:
-
你能添加预期的输出吗?
-
另外,你说的距离是怎么定义的?
-
当然,我在原始帖子中添加了预期输出。就距离而言,它只是一个基于GeneA和GeneB碱基对位置差异的数字。
-
好吧,还有一件事我不确定。您是否已经有了距离(即,它只是从您的示例中丢失,但您实际上已经在您的数据集中拥有它)?还是你打算用上面的数据来计算(抱歉我对遗传学真的不熟悉)。
-
没关系!我实际上已经有了距离,我打算计算它(因为它目前在列中为“PositionA”和“PositionB”。我不确定如何在示例表中表示它,所以我把它留空了。你的解决方案下面看起来正是我所需要的,所以我会看看它是否有效。