You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何使用Python将含肽段序列的XLSX文件转换为FASTA格式?

如何使用Python将含肽段序列的XLSX文件转换为FASTA格式?

嗨,我来帮你搞定这个需求!你已经用pandas完成了肽段的筛选、去重并导出为XLSX文件,现在只需要把这个XLSX里的肽段序列转换成标准的FASTA格式就行。我给你两种实用方案:一种是读取已生成的XLSX文件来生成FASTA,另一种是直接在你现有的处理流程里添加FASTA生成步骤(更高效,不用绕XLSX的读写环节)。


方案一:从已有的XLSX文件生成FASTA

如果你已经导出了目标XLSX,直接读取它来生成FASTA即可,步骤非常清晰:

1. 核心代码

import pandas as pd

# 替换成你之前生成的XLSX文件名
input_xlsx = "Peptides_identifiés_EnCoRe_Accession.xlsx"
# 读取XLSX中的肽段数据
df = pd.read_excel(input_xlsx, sheet_name='Peptides')

# 构建FASTA格式的内容
fasta_entries = []
for _, row in df.iterrows():
    # FASTA头部:用Accession号作为唯一标识,你可以自定义格式补充信息
    header_line = f">{row['Accession']}"
    # 提取纯氨基酸序列
    peptide_seq = row['Peptide_Sequence']
    # 将头部和序列加入列表,后续统一处理换行
    fasta_entries.extend([header_line, peptide_seq])

# 把列表转为换行分隔的字符串,符合FASTA格式要求
fasta_content = '\n'.join(fasta_entries)

# 写入FASTA文件,自定义输出文件名
output_fasta = "Unique_Peptides.fasta"
with open(output_fasta, 'w', encoding='utf-8') as file:
    file.write(fasta_content)

print(f"搞定!已生成FASTA文件 {output_fasta},包含 {len(df)} 条唯一肽段序列。")

2. 自定义调整技巧

  • 丰富头部信息:如果想让头部更详细,比如加上序列长度,可以修改header_line
    header_line = f">{row['Accession']} | Peptide_Length: {len(peptide_seq)}"
    
  • 长序列换行:如果你的肽段序列很长,想遵循FASTA惯例每80个字符换行,可以加个小函数处理:
    def split_long_sequence(sequence, chunk_len=80):
        return '\n'.join([sequence[i:i+chunk_len] for i in range(0, len(sequence), chunk_len)])
    
    # 替换原有的 peptide_seq 行:
    peptide_seq = split_long_sequence(row['Peptide_Sequence'])
    

方案二:直接在现有处理流程中生成FASTA(更高效)

其实你完全可以跳过导出XLSX再读取的冗余步骤,在筛选去重完成后直接生成FASTA,节省时间和磁盘空间。把这段代码加在你现有代码的最后(print语句之前即可):

# 直接生成FASTA文件,无需先导出XLSX再读取
output_fasta = "Peptides_identifiés_EnCoRe.fasta"
with open(output_fasta, 'w', encoding='utf-8') as fasta_file:
    for _, row in peptides_uniques.iterrows():
        # 写入FASTA头部行
        fasta_file.write(f">{row['Accession']}\n")
        # 写入纯肽段序列
        fasta_file.write(f"{row['Peptide_Sequence']}\n")

print(f"FASTA文件 {output_fasta} 已成功生成!")

这样你的整个流程就变成:读取原始数据 → 筛选目标肽段 → 去重 → 同时导出XLSX和FASTA,一步到位!


验证FASTA格式

生成后的FASTA文件内容应该符合标准格式,示例如下:

>P12345
AVGNEK
>Q67890
LVPFTY

如果遇到列名不匹配的问题(比如你的XLSX里列名和代码里的不一致),只需要修改代码中的列名,和你的实际XLSX列名对应上就行!

火山引擎 最新活动