Разбирайте фрейм данных и файл fastafile

63
7

У меня просто есть фрейм данных и файл fasta, и мне нужно только сохранить строку в dataframe (или создать новую), если seq_id находится в моем файле fasta.

Вот пример:

dataframe:

seq_1    seq_2      GC       Length
seq1 seq2 68 15561
seq4 seq3 89 567
seq9 seq90 45 789
seq97 seq43 56 458
seq45 seq9 67 900

fastafile:

>seq9 
ACTG
>seq97
ACTG
>seq1
ACTG

и получить новый df такой:

seq_1    seq_2      GC       Length
seq1 seq2 68 15561
seq9 seq90 45 789
seq97 seq43 56 458

Спасибо за помощь :)

спросил(а) 2021-01-25T12:49:54+03:00 4 месяца, 4 недели назад
1
Решение
63

Чтение строк в fastafile в список строк fasta_lines Имена последовательностей фильтров из fasta_lines по seq_list = [s for s in fasta_lines if s.startswith('>')] Фильтровать строки в вашем seq_list фильтром seq_list: dataframe = dataframe[dataframe['seq_1'].isin(seq_list) || dataframe['seq_2'].isin(seq_list)] dataframe = dataframe[dataframe['seq_1'].isin(seq_list) || dataframe['seq_2'].isin(seq_list)] Проверьте, нет ли dataframe.shape[0] == 0 поэтому в вашем новом фреймворке нет строк, добавьте новую строку в соответствии с вашей логикой разбора fastafile

Этот ответ требует некоторых проверок кода, возможно, после того, как вы укажете логики для обработки fastafile.

ответил(а) 2021-01-25T12:49:54+03:00 4 месяца, 4 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема