如何将每行对应序列的Pandas DataFrame转换为FASTA文件?
Pandas DataFrame 转 FASTA 文件方法
核心逻辑很直接:把DataFrame每行的字符拼接成连续序列,再按照FASTA格式(>序列ID加换行,接着是序列内容)生成文本,最后写入文件即可。
示例代码
先构建你给出的示例DataFrame,再完成转换:
import pandas as pd # 构建示例DataFrame df = pd.DataFrame({ 'c1': ['D', 'D'], 'c2': ['C', 'C'], 'c3': ['Y', 'E'], 'c4': ['C', 'C'], 'c5': ['T', 'Q'] }) # 生成FASTA格式内容 fasta_lines = [] for row_index, row_data in df.iterrows(): # 拼接当前行的所有字符成完整序列 seq = ''.join(row_data.values) # 按FASTA格式添加条目 fasta_lines.append(f'>{row_index}\n{seq}') # 合并所有条目为一个字符串 fasta_content = '\n'.join(fasta_lines) # 写入文件 with open('sequences.fasta', 'w') as f: f.write(fasta_content)
输出结果
运行后生成的sequences.fasta内容如下:
>0 DCYCT >1 DCECQ
扩展说明
如果你的序列ID不是DataFrame的行号,而是某一列(比如有个名为seq_id的列),只需要把f'>{row_index}'改成f'>{row_data["seq_id"]}'即可适配。
内容的提问来源于stack exchange,提问作者Solomon123
相关产品推荐
相关产品推荐

