在MySQL中存储基因表达数据

在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

我有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 (
    `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表吗?非常感谢。那个么我可以在哪里存储表达式值呢?我需要更多的表格吗?你可以存储这些值,假设它们对于每个基因和样本都是唯一的。这取决于你的数据。请注意,我的回答没有填充表达式值,因为您的问题没有提到它们出现在任何表格中。但是,先生,这是我的问题,我如何存储对应于样本和基因的表达式值?