Объединение нескольких файлов с неравными строками на основе общего столбца для формирования файла матрицы подсчета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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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