在MySQL中存储基因表达数据
我有m x n个基因表达数据矩阵,我想存储在MySQL中,这样就可以使用PHP编程进行搜索 m约为100000个样本(唯一可识别)在MySQL中存储基因表达数据,mysql,Mysql,我有m x n个基因表达数据矩阵,我想存储在MySQL中,这样就可以使用PHP编程进行搜索 m约为100000个样本(唯一可识别) n约为23300个基因(唯一可识别) 我创建了三个表,如下所示 CREATE TABLE genes ( `gene_id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY, `gene_name` varchar(99) not null ) ENGINE=InnoDB; CREATE TABLE samples
n约为23300个基因(唯一可识别) 我创建了三个表,如下所示
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_样本)中插入值
如何在gene_样本表中存储与样本和基因对应的表达式值?假设已填充
基因
和样本
表,并且要使用所有可能的组合填充gene_样本
连接表,可以尝试使用带交叉连接的插入:
INSERT INTO gene_sample (gene_id, sample_id)
SELECT g.gene_id, s.sample_id
FROM genes g
CROSS JOIN samples s;
当然,这不会为
表达式\u value
列分配任何值。但理想情况下,这一列甚至不属于连接表。基因和样本组合背后的来源/逻辑是什么?你想存储所有可能的组合,还是其他什么?对于单个样本,有23k个基因。这些组合需要存储,以便可以查询搜索基因和样本。不幸的是,这并不能真正回答我的问题。是的,我想存储所有可能的组合。很好,但你们有一个包含这个矩阵中的值的SQL表吗?非常感谢。那个么我可以在哪里存储表达式值呢?我需要更多的表格吗?你可以存储这些值,假设它们对于每个基因和样本都是唯一的。这取决于你的数据。请注意,我的回答没有填充表达式值,因为您的问题没有提到它们出现在任何表格中。但是,先生,这是我的问题,我如何存储对应于样本和基因的表达式值?