Python 解析数据帧和fastafile

Python 解析数据帧和fastafile,python,pandas,parsing,Python,Pandas,Parsing,我只是有一个数据帧和一个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 seq

我只是有一个数据帧和一个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
    中的行读入字符串列表
    fastau行
  • 通过
    seq_list=[s代表fasta_行中的s,如果s.startswith('>')],从
    fasta_行中筛选序列名
  • 使用
    seq_list
    Filter:
    dataframe=dataframe[dataframe['seq_1'].isin(seq_list)| dataframe['seq_2'].isin(seq_list)]筛选数据帧中的行。
  • 检查是否
    dataframe.shape[0]==0
    以便新数据框中没有行,根据解析
    fastafile的逻辑追加新行

  • 这个答案需要一些代码检查,可能在您指定处理
    fastafile

    的逻辑之后,您已经尝试了什么,为什么它不起作用?你想让我们解决1。从“fastfile”(什么是fastafile…?)和2读取数据。如何根据读取的输入筛选数据帧?读取fasta数据时,应为…
    中的s设置
    [s[1:],否则由于导入了“>”-符号,将不会有任何匹配(无法编辑,因为编辑长度必须超过6个字符…)