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

如何用Biopython或其他工具反转Illumina HiSeq单端FASTQ文件?

如何仅反转FASTQ序列(而非反向互补)

嘿,这个问题我之前处理FASTQ数据时也碰到过!你说的没错,reverse_complement()是同时做反转+碱基互补的操作,但要单纯反转序列其实更简单,不管用Biopython还是其他工具都能轻松实现,下面给你具体方案:

用Biopython处理

咱直接上可运行的代码示例,完整处理你的单端FASTQ文件:

from Bio import SeqIO

# 替换成你的输入输出文件路径
input_file = "your_hiseq_reads.fastq"
output_file = "reversed_reads.fastq"

# 遍历FASTQ的每条序列
with open(output_file, "w") as out_fh:
    for read in SeqIO.parse(input_file, "fastq"):
        # 核心操作:用Python切片直接反转序列,不管是Seq对象还是字符串都支持
        reversed_seq = read.seq[::-1]
        # 更新这条read的序列
        read.seq = reversed_seq
        # 写入新文件
        SeqIO.write(read, out_fh, "fastq")

这里的[::-1]是Python的通用反转切片语法,它只会把序列的顺序倒过来,完全不会改变碱基的互补性——比如原序列是ATCG,反转后就是GCTA,而不是反向互补的CGAT

不用写代码?试试这些工具

如果你不想折腾Python脚本,用生物信息学工具更快:

  • SeqKit:这是我日常用得最多的序列工具,一行命令搞定:
    seqkit seq --reverse your_hiseq_reads.fastq > reversed_reads.fastq
    
    注意别加--complement参数,那会变成反向互补操作。
  • AWK:利用FASTQ的四行结构(ID、序列、+、质量值),只反转第二行:
    awk 'NR%4==2 {print $0 | "rev"} NR%4!=2 {print}' your_hiseq_reads.fastq > reversed_reads.fastq
    

最后再明确下区别

别搞混两个操作:

  • reverse_complement(dna):输出反向+互补序列(ATCGCGAT
  • 单纯反转:输出原序列的倒序(ATCGGCTA

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

火山引擎 最新活动