解析数据帧和fastafi

2024-09-24 02:23:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我只是有一个数据帧和一个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

谢谢你的帮助:)


Tags: 文件数据idlengthgcseq例子fasta
1条回答
网友
1楼 · 发布于 2024-09-24 02:23:23
  1. fastafile中的行读入字符串列表fasta_lines
  2. 通过seq_list = [s for s in fasta_lines if s.startswith('>')]fasta_lines筛选序列名
  3. 使用seq_list过滤器过滤数据帧中的行:dataframe = dataframe[dataframe['seq_1'].isin(seq_list) || dataframe['seq_2'].isin(seq_list)]
  4. 检查是否dataframe.shape[0] == 0因此新数据帧中没有行,根据解析fastafile的逻辑追加新行

这个答案需要一些代码检查,可能在您指定处理fastafile的逻辑之后

相关问题 更多 >