Я работаю над серией файлов с разделителями табуляции, которые имеют немного странную структуру. Они создаются с помощью пакета bam-headcount и содержат данные о последовательности и варианты вызовов для каждой позиции в кратком чтении последовательности ДНК.
В некоторых позициях нет альтернативных вызовов, в других их может быть много. Количество вкладок / столбцов в каждой строке зависит от количества выполненных вызовов вариантов (каждый вариант будет занимать новый столбец). Например:
234 A 3bp_del 4bp_ins
235 G
236 G. 15bp_ins 3bp_del 5bp_del
Сложность возникает при разборе файла пандами с использованием:
import pandas as pd
df = pd.read_csv(FILE, sep='\t')
Возвращает сообщение об ошибке:
pandas.errors.ParserError: Ошибка токенизации данных. Ошибка C: ожидается 4 поля в строке 3, пила 5
Ошибка возникает из-за того, что панды определяют количество столбцов, которые ожидают увидеть, используя количество столбцов в первой строке. У меня есть неуклюжий обходной путь, который добавляет к файлу заголовок с несколькими столбцами перед анализом, но он всегда будет добавлять одинаковое количество заголовков. Пример:
Pos Ref Call1 Call2 Call3
234 A 3bp_del 4bp_ins
235 G
236 G. 15bp_ins 3bp_del 5bp_del
Я ищу способ подсчитать количество вкладок в строке с наибольшим количеством столбцов, чтобы я мог написать скрипт для добавления такого количества заголовков столбцов к первой строке каждого файла CSV перед анализом.