【发布时间】:2021-10-30 00:35:57
【问题描述】:
我正在处理庞大的微阵列表达数据集。我有 27000 个探针的表达值,代表 14 个不同数据点的 5500 个基因(变量:D1 到 D14)。在这 5500 个基因中,很少有基因由多个探针(即同一基因的不同探针)表示。 5500 个基因的探针表示分布从 1 到 5 不等(意味着很少有基因具有 1 或 2 或 3 或 4 或 5 个探针)。现在,我想计算跨 14 个不同数据点(14 个变量)的同一基因的多个探针的所有可能组合的成对 Pearson 相关系数和相关 P 值,并以一维格式导出结果。我的一小部分 CSV 格式的输入数据表如下所示
| ProbeName | Gene | D1 | D2 | D3 | D4 | D5 | D6 | D7 | D8 | D9 | D10 | D11 | D12 | D13 | D14 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| A1 | A | 9.1 | 6.6 | 8.2 | 9.3 | 9.0 | 8.8 | 9.9 | 7.5 | 10.8 | 9.0 | 8.3 | 11.6 | 9.3 | 10.9 |
| A2 | A | 3.9 | 3.7 | 5.8 | 2.2 | 2.9 | 2.8 | 2.9 | 3.8 | 3.3 | 1.7 | 3.2 | 3.5 | 5.9 | 3.7 |
| A3 | A | 4.6 | 4.8 | 6.8 | 2.8 | 4.3 | 3.5 | 4.2 | 5.3 | 4.5 | 3.3 | 4.0 | 4.3 | 6.9 | 4.7 |
| A4 | A | 3.8 | 3.9 | 5.8 | 3.2 | 4.0 | 2.8 | 3.7 | 4.6 | 3.6 | 2.2 | 3.8 | 4.3 | 5.6 | 3.9 |
| A5 | A | 6.3 | 6.6 | 7.7 | 5.9 | 5.9 | 5.6 | 6.2 | 6.4 | 5.8 | 4.9 | 5.4 | 6.1 | 7.7 | 6.9 |
| B1 | B | 7.5 | 5.5 | 7.1 | 10.2 | 7.2 | 8.6 | 8.3 | 7.1 | 6.1 | 7.0 | 9.2 | 6.4 | 6.4 | 9.4 |
| B2 | B | 4.6 | 4.8 | 5.6 | 4.3 | 4.7 | 4.3 | 4.0 | 5.5 | 4.0 | 3.3 | 3.8 | 5.0 | 5.7 | 4.7 |
| B3 | B | 5.1 | 3.9 | 5.1 | 6.5 | 5.0 | 5.4 | 4.9 | 5.3 | 4.5 | 4.5 | 5.9 | 5.0 | 4.6 | 5.6 |
| B4 | B | 7.6 | 6.1 | 7.5 | 10.9 | 8.0 | 9.2 | 8.5 | 7.1 | 6.3 | 7.4 | 10.0 | 6.9 | 6.9 | 10.2 |
| C1 | C | 3.1 | 6.1 | 3.4 | 2.5 | 3.7 | 3.3 | 2.7 | 5.0 | 2.3 | 3.1 | 2.0 | 3.8 | 2.6 | 3.3 |
| C2 | C | 3.8 | 7.1 | 4.8 | 4.1 | 4.9 | 4.5 | 3.8 | 5.9 | 4.0 | 4.7 | 4.4 | 5.1 | 2.9 | 4.8 |
| C3 | C | 3.8 | 6.1 | 5.5 | 5.4 | 6.3 | 3.9 | 3.4 | 7.8 | 5.3 | 5.7 | 4.8 | 4.0 | 3.5 | 4.3 |
| D1 | D | 12.2 | 11.7 | 11.4 | 10.5 | 11.5 | 11.4 | 10.7 | 12.0 | 11.3 | 10.5 | 9.9 | 11.7 | 10.5 | 10.2 |
| D2 | D | 12.0 | 11.5 | 11.3 | 10.4 | 11.4 | 11.4 | 10.7 | 11.9 | 11.2 | 10.6 | 9.9 | 11.7 | 10.3 | 10.2 |
| E1 | E | 2.4 | 3.3 | 7.5 | 3.4 | 5.8 | 3.6 | 1.2 | 3.5 | 0.9 | 2.2 | 3.1 | 4.7 | 7.5 | 4.0 |
ProbeName 列表示 A1 到 E1 的探针名称,Gene 列表示 A 到 E 的基因名称,D1 到 D14 列(变量)表示不同数据点的表达值。行代表代表特定基因的探针在 14 个不同数据点中的表达值(即,特定基因在 14 个不同数据点中被相应探针激活的程度)。 A1、A2、A3、A4 和 A5 代表同一基因 A 的多个探针,其他基因 B、C、D 和 E 也是如此。在此表中,我想计算多个探针的可能成对 Pearson 相关性跨 14 个数据点(D1 到 D14)的相同基因。例如,用于计算 14 个数据点的 Pearson 相关性的基因 C 的可能探针组合是
- C1 (D1:3.1, D2:6.1, D3:3.4, D4:2.5, D5:3.7, D6:3.3, D7:2.7, D8:5.0, D9:2.3, D10:3.1, D11:2.0, D12:3.8, D13:2.6, D14:3.3) 与 C2 (D1:3.8, D2:7.1, D3:4.8, D4:4.1, D5:4.9, D6:4.5, D7:3.8, D8:5.9, D9:4.0, D10:4.7,D11:4.4,D12:5.1,D13:2.9,D14:4.8),
- C1 (D1:3.1, D2:6.1, D3:3.4, D4:2.5, D5:3.7, D6:3.3, D7:2.7, D8:5.0, D9:2.3, D10:3.1, D11:2.0, D12:3.8, D13:2.6, D14:3.3) 与 C3 (D1:3.8, D2:6.1,D3:5.5,D4:5.4,D5:6.3,D6:3.9,D7:3.4,D8:7.8,D9:5.3, D10:5.7,D11:4.8,D12:4.0,D13:3.5,D14:4.3),
- C2 (D1:3.8, D2:7.1, D3:4.8, D4:4.1, D5:4.9, D6:4.5, D7:3.8, D8:5.9, D9:4.0, D10:4.7, D11:4.4, D12:5.1, D13:2.9, D14:4.8) 与 C3 (D1:3.8, D2:6.1,D3:5.5,D4:5.4,D5:6.3,D6:3.9,D7:3.4,D8:7.8,D9:5.3, D10:5.7, D11:4.8, D12:4.0, D13:3.5, D14:4.3)
在跨 14 个数据点为同一基因生成多个探针的可能成对组合的相关矩阵后,我只想展平上三角相关矩阵或下三角相关矩阵并生成 CSV 格式的输出,如下所述。
| ProbeName_1 | ProbeName_2 | Gene | PearonCorrelationValue | Pvalue |
|---|---|---|---|---|
| A1 | A2 | A | -0.129 | 0.661 |
| A1 | A3 | A | -0.176 | 0.547 |
| A1 | A4 | A | -0.106 | 0.718 |
| A1 | A5 | A | -0.084 | 0.776 |
| A2 | A3 | A | 0.963 | 0.000 |
| A2 | A4 | A | 0.932 | 0.000 |
| A2 | A5 | A | 0.914 | 0.000 |
| A3 | A4 | A | 0.922 | 0.000 |
| A3 | A5 | A | 0.883 | 0.000 |
| A4 | A5 | A | 0.882 | 0.000 |
| B1 | B2 | B | -0.328 | 0.253 |
| B1 | B3 | B | 0.900 | 0.000 |
| B1 | B4 | B | 0.987 | 0.000 |
| B2 | B3 | B | -0.084 | 0.774 |
| B2 | B4 | B | -0.322 | 0.261 |
| B3 | B4 | B | 0.882 | 0.000 |
| C1 | C2 | C | 0.888 | 0.000 |
| C1 | C3 | C | 0.542 | 0.045 |
| C2 | C3 | C | 0.658 | 0.011 |
| D1 | D2 | D | 0.993 | 0.000 |
我不知道如何使用 R 或 Python 处理这些复杂的数据。我谦虚地请求专家帮助我解决这个问题。
注意:我不想要相同探针组合的相关值,即 A1 Vs A1 或 A2 Vs A2 或 A3 Vs A3 或 A4 Vs A4 或 A5 Vs A5。我也不想将一个基因的探针与另一个不同基因的探针进行成对组合。即,A1 Vs B1、B2、B3、B4 或 A1 Vs C1、C2、C3 或 A1 Vs D1、D2 和/或 A1 Vs E1。
【问题讨论】:
-
请澄清您的具体问题或提供更多详细信息以准确突出您的需求。正如目前所写的那样,很难准确地说出你在问什么。
-
您的输入数据采用什么形式?您是否从数据库、CSV 文件或其他文件格式中获取它?另外,您可以在输出样本中添加一些预期值吗?这样,如果有人创建了一个解决方案,他们可以检查这些值是否符合预期。同一个基因是否总是正好有 3 个探针?
-
嗨,我的输入数据是 CSV 格式。每个基因并不总是有 3 个探针。基因的探针表示从 1 到 5 不等。根据要求,我已将预期输出值包括在内以供参考。事实上,我已经详细编辑了我的问题。请看一看。
标签: python r pearson-correlation