Объединение нескольких файлов с неравными строками на основе общего столбца для формирования файла матрицы подсчетаPython

Программы на Python
Anonymous
Объединение нескольких файлов с неравными строками на основе общего столбца для формирования файла матрицы подсчета

Сообщение Anonymous »


У меня аналогичная проблема слияния нескольких файлов на основе общего столбца, как https://superuser.com/questions/1245094 ... he-common- столбец. Я очень близок к решению, но я новичок в Python. Мне нужна помощь с настройкой кода для объединения нескольких файлов. Мои идентификаторы и столбцы для отдельного файла выглядят так:

Файл1.txt

id SRR1071717 chr1:15039:-::chr1:15795:- 2 chr1:15948:-::chr1:16606:- 6 Файл2.txt

id SRR1079830 chr1:11672:+::chr1:12009:+ 10 chr1:11845:+::chr1:12009:+ 7 chrY:9756574:+::chrY:9757796:+ 0 Мой желаемый результат

id SRR1071717 SRR1079830 chr1:15039:-::chr1:15795:- 2 0 chr1:15948:-::chr1:16606:- 6 0 chr1:11672:+::chr1:12009:+ 0 10 chr1:11845:+::chr1:12009:+ 0 7 chrY:9756574:+::chrY:9757796:+ 0 0 Мой код: Matrix.py

импортировать систему столбцы = [] данные = {} идентификаторы = установить() для имени файла в sys.argv[1:]: с open(filename, 'rU') как f: ключ = следующий(f).strip().split()[1] columns.append(ключ) данные[ключ] = {} для строки в f: если линия.strip(): идентификатор, значение = line.strip().split() пытаться: данные[ключ][int(id)] = значение кроме ValueError как exc: поднять ValueError( «Проблема в строке: '{}' '{}' '{}'».format( идентификатор, значение, line.rstrip())) ids.add(int(id)) print('\t'.join(['ID'] + столбцы)) для идентификатора в сортировке (идентификаторы): линия = [] для столбца в столбцах: line.append(данные[столбец].get(id, '0')) print('\t'.join([str(id)] + строка)) Я запустил код Python, как показано, но он работает неправильно (являюсь новичком в Python). Текущий вывод (только две строки!).

Файл python3 матрица.py\*.txt

Текущий результат
id SRR1071717 SRR1079830 chrY:9756574:+::chrY:9757796:+ 0 0

Вернуться в «Python»