我只是有一个数据帧和一个fasta文件,如果seq_id在我的fasta文件中,我只需要在数据帧中保留行(或创建一个新的行)
以下是一个例子:
数据帧:
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
快速文件:
>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
谢谢你的帮助:)
fastafile
中的行读入字符串列表fasta_lines
seq_list = [s for s in fasta_lines if s.startswith('>')]
从fasta_lines
筛选序列名seq_list
过滤器过滤数据帧中的行:dataframe = dataframe[dataframe['seq_1'].isin(seq_list) || dataframe['seq_2'].isin(seq_list)]
dataframe.shape[0] == 0
因此新数据帧中没有行,根据解析fastafile
的逻辑追加新行这个答案需要一些代码检查,可能在您指定处理
fastafile
的逻辑之后相关问题 更多 >
编程相关推荐