如何存储具有大量字段的表

时间:2014-04-16 18:11:46

标签: mongodb postgresql dataset multiple-columns

我正在处理大脑的整个x,y,z MRI坐标中的大量人类基因表达值数据集。由于人类基因组中有大约60,000个基因,研究人员在大约1000个采样样本中寻找每个基因的表达值,我需要一种在数据库中存储大量列的方法。

我目前正在使用一个名为pg的节点模块用于Postgresql with express,我已经设置了3个表中的2个(下面的表1和表3)。但是,对于第二个数据集,60,000大于可在此类DB中使用的列数。我已经考虑过使用每个基因(由探测器ID表示)作为表中的条目,并且每个~1000个样本作为列,但我必须为具有动态分配标识符的列创建名称。此外,将基因用作列和样本作为条目似乎是组织数据的更合理的方式。

键值存储或Mongo等NoSql数据库是否能够为“样本”模式/ JSON对象的属性存储更多“列”(~60,000 - 每个基因的表达式一个)?

可用数据包括:

  1. Probes.csv文件,其中列出了每个微阵列探针的详细信息,例如其相应基因的名称和该基因的唯一ID值(我计划仅用于将基因名称的文本输入映射到探针ID)用于其他CSV文件)。
  2. ExprVals.csv文件,其中列出了每个探针的表达式值,当前列出的探针ID为行,表达式值为列。这些列的排序与下一个文件中行的顺序相匹配,后者列出了为其获取表达式值的每个样本的坐标。 (上面我提到我想翻转这个表,以便行对应于下一个文件的样本,列对应于每个探测ID,但我还没有这样做。)
  3. Samples.csv文件,列出具有唯一样本ID的每个样本,以及该样本的体素坐标,排序以匹配ExprVals.csv中列的顺序。
  4. 因此,我希望能够进行的查询是:

    1. 使用基因名称查询Probes.csv表,以获取与其对应的探针的ID值。
    2. 使用探测ID查询ExprVals.csv表,以获取该探测的表达式值列表。
    3. 查询上一个查询中每个列出的表达式值的Samples.csv文件,该文件返回该样本的体素坐标。
    4. 此过程的最终目标是能够输入基因的名称并输出每个体素的表达值列表。

0 个答案:

没有答案