【发布时间】:2020-01-27 15:03:49
【问题描述】:
我有以下格式的 32 个制表符分隔的文本文件(显示 3 个):
文件名:90-4-0
gene_ID Genes Frag TPM Func
1 23 34 43 some_function1
2 43 66 11 some_function2
3 54 22 88 some_function3
文件名:150-2-1
gene_ID Genes Frag TPM Func
1 1 34 5 some_function1
6 22 2 11 some_function6
3 9 1 54 some_function3
文件名:90-2-0
gene_ID Genes Frag TPM Func
9 54 21 4 some_function9
11 2 6 143 some_function11
3 99 44 8 some_function3
以此类推,每个文件大约有 2000 行。 32个文件的文件名格式为“SampleID-Timepoint-Status”,3个描述符均以“-”分隔。
- SampleID 可以是任意两位或三位数字。
- 时间点是 1-4 之间的数字
- 状态为 0 或 1
现在,我希望我的最终输出如下所示(首选 csv 格式):
Sample_ID Timepoint Status gene_ID1 gene_ID2 gene_ID3 gene_ID6 gene_ID9 gene_ID11 *etc*.
90 4 0 43 11 88 0 0 0
150 2 1 5 0 54 11 0 0
90 2 0 0 0 8 0 4 143
*etc*
所有gene_ID 的编号来自文件中的“TPM”列。 “Genes”、“Frag”和“Func”可以忽略。我只是为了格式化而展示它们。 最终文件的尺寸大约为 32x2000。请记住,每个文件的gene_ID 数量可能会有所不同。对于某些基因ID 没有值的Sample_ID,它应该显示“0”(如表中所示)。
现在,我知道如何从文件名中获取文件 ID、时间点和状态,并且我知道如何将 32 个文件中的所有内容放入字典中。我已经尝试了将所有内容放入字典的任何组合。我还尝试将每 32 个 Sample_ID 放入 32 个具有各自值的单独列表中,但我不知道如何将它们与“gene_ID”联系起来。如果我将它们全部放在格式列表中:
Sample_ID Timepoint Status TPM_value ... TPM_value_n
如何将“TPM”值与“gene_IDs”关联起来?
如果您有时间,我愿意接受所有建议或帮助代码。
谢谢!!
【问题讨论】: