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

如何在环状mtDNA的FASTA文件中切除首尾15个碱基?

如何对FASTA文件中环状mtDNA序列切除首尾各15个碱基

针对你需要给FASTA文件中每条序列切除首尾各15个碱基的需求,这里提供几种实用的工具方案:

方法一:用seqkit快速处理

seqkit是生信领域常用的序列处理工具,命令简洁高效:

seqkit subseq -s 16 -e -16 input.fasta -o output.fasta
  • -s 16:指定序列从第16个碱基开始(跳过前15个)
  • -e -16:指定到倒数第16个碱基结束(去掉最后15个)

方法二:用awk命令(无需额外安装)

如果不想安装新工具,系统自带的awk就能搞定,写个简单脚本处理FASTA的换行格式:
先创建一个trim_fasta.awk文件,内容如下:

BEGIN{OFS=""}
/^>/ {
    if (seq != "") {
        print substr(seq,16,length(seq)-30)
        seq=""
    }
    print $0
    next
}
{seq = seq $0}
END{print substr(seq,16,length(seq)-30)}

然后执行命令:

awk -f trim_fasta.awk input.fasta > output.fasta

脚本会先把每条序列的多行拼接成完整字符串,再截取掉首尾各15个碱基,最后保持FASTA格式输出。

方法三:用BioPython自定义处理

如果需要更灵活的扩展处理,可以用Python的BioPython库:

from Bio import SeqIO
from Bio.SeqRecord import SeqRecord

# 读取输入FASTA并处理
with open("input.fasta", "r") as infile, open("output.fasta", "w") as outfile:
    for record in SeqIO.parse(infile, "fasta"):
        # 切片去掉前15和后15个碱基(Python是0索引)
        trimmed_sequence = record.seq[15:-15]
        # 创建新的序列记录
        new_record = SeqRecord(trimmed_sequence, id=record.id, description=record.description)
        SeqIO.write(new_record, outfile, "fasta")

运行这个脚本前需要确保已经安装BioPython:pip install biopython

以上三种方法都能实现你需要的效果,比如你提供的示例序列,处理后会准确去掉首尾各15个碱基,得到期望的输出结果。

内容的提问来源于stack exchange,提问作者Anna

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 05:25:51