目前,对于处理过的钙成像数据,我有两种不同的模式,在这些模式中,我使用了两种不同的预处理方法。我所要做的工作的主要目标是使用来自1个模式的源作为引用,并在第二个模式中提取相应的源。我已经完成了源匹配,这样我就可以知道schema1中的每个神经元在schema2中对应的神经元是什么。
在schema1中的表中,每个神经元都有一个名为neurID
的整数主键和一个外键(schema2ID
),其中包含schema2中该神经元的对应主键。我遇到的问题是,在schema2中,每个神经元的主键也称为neurID
,因此这与schema1中的神经元不同(例如,schema1中的神经元,neurID
= 1,schema2ID
= 15,对应于schema2中的神经元,neurID
= 15,schema1ID
= 1)。
理想情况下,我想要做的是,一旦我在schema2中有了一个模式中的所有神经元,我就可以用外键schema2ID
替换它们的主键neurID
,这样我就可以使用它来获取schema2中的相应神经元(因为schema1中的schema2ID
与neurID
schema2主键相同)。有办法用这种方式重命名主键吗?或者,通过创建新表,我还可以使用其他一些讨厌的方法吗?
(请注意,由于我在每个模式中都有另一个主键'targID‘,这就更加复杂了,对于每个模式来说,索引并不意味着模式之间的相同。)
我真的很感激任何建议,因为我被困住了。也很高兴通过DMs等方式更直接地显示代码。谢谢!
发布于 2021-04-26 20:48:02
在您的情况下,也许使用DataJoint的投影运算符(.proj()
)会有所帮助。.proj()
操作可用于重命名属性,请参阅https://docs.datajoint.io/python/queries/08-Proj.html?highlight=project
以上面的例子为例,您可以尝试如下:
schema1_table * schema2_table.proj(schema2ID='neurID')
或者相反的情况也会发生:
schema1_table.proj(schema1ID='neurID') * schema2_table
https://stackoverflow.com/questions/67273319
复制相似问题