微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

重命名/替换主键以跨架构查询

如何解决重命名/替换主键以跨架构查询

我目前有两个单独的模式来处理钙成像数据,其中我使用了两种不同的预处理方法。我尝试做的主要目标是使用 1 个模式中的源作为参考,并在第二个模式中提取相应的源。我已经进行了源匹配,以便我知道 schema1 中的每个神经元在 schema2 中对应的神经元是什么。

在 schema1 的表中,每个神经元都有一个名为 neurID 的整数主键和一个外键 (schema2ID),其主键对应于 schema2 中的神经元。我遇到的问题是,在 schema2 中,每个神经元的主键 称为 neurID,所以这与 schema1 中的神经元不同(例如,schema1 中的神经元带有 { {1}} = 1,neurID = 15 将对应于 schema2 中的神经元,其中 schema2ID = 15,neurID = 1).

理想情况下,我想要做的是,一旦我拥有 1 个模式中的所有神经元,并且我在模式 2 中有相应的 ID,我会将它们的主键 schema1ID 替换为外键 {{1}以便我现在可以使用它来获取 schema2 中的相应神经元(因为 schema1 中的 neurIDschema2ID schema2 主键相同)。有没有办法以这种方式重命名主键?或者我可以通过创建新表使用其他一些hacky方法吗?

(请注意,由于我在每个模式中还有另一个主键 'targID',因此这一切变得更加复杂,对于这些主键,索引也并不意味着跨模式的同一件事。)

我真的很感激任何提示,因为我很困。也很高兴通过 DM 等更直接地显示代码。谢谢!

解决方法

也许使用 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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?