我有m x n个基因表达数据矩阵,我希望将它们存储在MySQL中,以便可以使用PHP语言进行搜索。
M大约是100000个样本(唯一可识别)
N大约是23,300个基因(唯一可识别)
我创建了三个表,如下所示
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,
`Expression_value` INT ,
FOREIGN KEY(`gene_id`) REFERENCES genes (`gene_id`),
FOREIGN KEY(`sample_id`) REFERENCES sample (`sample_id`),
) ENGINE=InnoDB;问题是如何从mXn矩阵插入第三个表(Gene_sample)中的值?
如何在gene_sample表中存储样本和基因对应的表达式值?
发布于 2019-08-22 13:38:29
假设已经填充了genes和samples表,并且您希望使用所有可能的组合来填充gene_sample连接表,则可以尝试使用带有交叉联接的insert:
INSERT INTO gene_sample (gene_id, sample_id)
SELECT g.gene_id, s.sample_id
FROM genes g
CROSS JOIN samples s;当然,这不会为Expression_value列分配任何值。但理想情况下,该列甚至不属于连接表。
https://stackoverflow.com/questions/57602393
复制相似问题