将基因表达数据存储在 MySQL 中——需要联结表吗?
Storing gene expression data in MySQL -- junction tables needed?
我有几个 m x n 的基因表达数据矩阵要存储在 MySQL 中。
m 大约有 30,000 个基因(唯一可识别)
n 大约是 3,000 个样本(大部分是唯一可识别的)
我不确定存储这些数据的最佳方式是什么。我最初将矩阵直接读入 MySQL 表,但后来有人告诉我这不是做事的好方法,因为列(样本)的数量是可变的。我无法转置矩阵并以这种方式存储它们,因为在创建列时,基因数量超过 MySQL 允许的数量。
有人告诉我 'junction tables' 可能是一种更好的方法。然而,在观看了几个关于这些的 YouTube 视频后,我 none 变得更聪明了。我还搜索了 Google,似乎没有关于使用联结表在 MySQL 中存储基因表达数据的教程。那么,有人对如何最好地存储这些数据有任何建议吗?老实说,我预计会有大量关于这方面的文献,所以如果你有有用的链接,我们也会非常感激。
为此你只需要几个 tables,我使用的是 mysql 语法:
CREATE TABLE genes (
`gene_id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
`gene_name` varchar(99) not null
)ENGINE=InnoDB;
CREATE TABLE samples (
`sample_id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
`sample_name` varchar(99) not null
)ENGINE=InnoDB;
CREATE TABLE gene_sample (
`gene_id` INT NOT NULL,
`sample_id` INT NOT NULL,
FOREIGN KEY(`gene_id`) REFERENCES genes (`gene_id`),
FOREIGN KEY(`sample_id`) REFERENCES sample (`sample_id`),
)ENGINE=InnoDB;
对于样本中出现的每个基因,将 gene_id
和 sample_id
对插入 gene_sample
table.
在SELECT中使用两个JOIN表达式重构完整数据:
SELECT genes.*, samples.*
FROM gene_sample
LEFT JOIN genes USING (gene_id)
LEFT JOIN samples USING (sample_id);
我有几个 m x n 的基因表达数据矩阵要存储在 MySQL 中。
m 大约有 30,000 个基因(唯一可识别)
n 大约是 3,000 个样本(大部分是唯一可识别的)
我不确定存储这些数据的最佳方式是什么。我最初将矩阵直接读入 MySQL 表,但后来有人告诉我这不是做事的好方法,因为列(样本)的数量是可变的。我无法转置矩阵并以这种方式存储它们,因为在创建列时,基因数量超过 MySQL 允许的数量。
有人告诉我 'junction tables' 可能是一种更好的方法。然而,在观看了几个关于这些的 YouTube 视频后,我 none 变得更聪明了。我还搜索了 Google,似乎没有关于使用联结表在 MySQL 中存储基因表达数据的教程。那么,有人对如何最好地存储这些数据有任何建议吗?老实说,我预计会有大量关于这方面的文献,所以如果你有有用的链接,我们也会非常感激。
为此你只需要几个 tables,我使用的是 mysql 语法:
CREATE TABLE genes (
`gene_id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
`gene_name` varchar(99) not null
)ENGINE=InnoDB;
CREATE TABLE samples (
`sample_id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
`sample_name` varchar(99) not null
)ENGINE=InnoDB;
CREATE TABLE gene_sample (
`gene_id` INT NOT NULL,
`sample_id` INT NOT NULL,
FOREIGN KEY(`gene_id`) REFERENCES genes (`gene_id`),
FOREIGN KEY(`sample_id`) REFERENCES sample (`sample_id`),
)ENGINE=InnoDB;
对于样本中出现的每个基因,将 gene_id
和 sample_id
对插入 gene_sample
table.
在SELECT中使用两个JOIN表达式重构完整数据:
SELECT genes.*, samples.*
FROM gene_sample
LEFT JOIN genes USING (gene_id)
LEFT JOIN samples USING (sample_id);