You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Biopython SeqIO解析FASTA存入DataFrame序列逗号分隔问题求解

问题原因

你存入DataFrame的序列本质是Biopython的Seq类对象,不是Python原生字符串。Seq对象本身是可迭代结构,pandas渲染时会将它拆分为单个字符的集合,就出现了逗号分隔的展示效果。

解决方法

提取序列时将Seq对象强制转换为原生字符串即可,修改后的代码如下:

seq_ids = []
seqs = []
seq_lengths = []

for record in sequences:
    seq_id = record.id
    # 把Seq对象转为纯字符串
    sequence = str(record.seq)
    length = len(sequence)
    
    seq_ids.append(seq_id)
    seqs.append(sequence)
    seq_lengths.append(length)

后续创建DataFrame的逻辑无需改动,生成的Sequences列就是你需要的纯字符串格式序列。

优化建议(可选)

你可以省略预先存储所有SeqRecord的步骤,遍历SeqIO.parse返回的迭代器时直接处理数据,内存占用更低:

import pandas as pd
from Bio import SeqIO

data = []
for record in SeqIO.parse(file, "fasta"):
    data.append({
        "Seq_id": record.id,
        "Sequences": str(record.seq),
        "Sequence_length": len(record.seq)
    })

df = pd.DataFrame(data)

内容的提问来源于stack exchange,提问作者Fuad Sarker Jeem

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 14:48:02