У меня 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 может быть любым двумя или тремя числами * git.
- Временная точка - это число от 1-4
- Статус равен 0 или 1
Теперь я хочу, чтобы мой конечный вывод выглядел следующим образом (pref в формате 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» в файлах. «Гены», «Frag» и «Fun c» можно игнорировать. Я просто показал их ради форматирования. Конечный файл будет примерно размером 32x2000. Имейте в виду, что число gene_ID для каждого файла может варьироваться. Для Sample_ID, которые не имеют значений для некоторых из gene_ID, следует сказать «0» (как показано в таблице).
Теперь я знаю, как извлечь из файла идентификаторы, временные точки и статус имена, и я знаю, как получить все из 32 файлов в словаре. Я попробовал практически любую комбинацию с помещением всего в словарь. Я также попытался поместить каждые 32 Sample_ID в 32 отдельных списка с соответствующими значениями, но я не могу понять, как связать их с «gene_ID». Если я помещу их все в список в формате:
Sample_ID Timepoint Status TPM_value ... TPM_value_n
Как связать значения "TPM" с "gene_IDs"?
Я открыт для всех предложений или код помощи, если у вас есть время.
Спасибо !!