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

如何使用R语言批量将TXT格式DNA序列文件转换为Fasta格式

R环境批量转换DNA序列TXT为FASTA格式实现方案

操作流程

  • 先将所有待转换的TXT序列文件放到同一个文件夹内,避免混入其他无关TXT文件
  • 运行以下R代码,替换代码里的工作目录路径为你自己的文件夹路径即可

批量转换代码(每个TXT对应生成单独FASTA文件)

# 1. 设置工作目录为存放TXT序列文件的文件夹路径
setwd("替换为你的文件夹实际路径,比如C:/dna_seq/ 或者 /home/user/dna_seq/")

# 2. 读取文件夹内所有后缀为.txt的文件列表
txt_file_list <- list.files(pattern = "\\.txt$", full.names = FALSE)

# 3. 循环处理每个文件
for (single_txt in txt_file_list) {
  # 读取文件全部内容,关闭冗余警告
  raw_text <- readLines(single_txt, warn = FALSE)
  # 清除空行、空格、换行符等冗余内容,拼接为完整DNA序列
  dna_seq <- gsub("\\s+", "", paste(raw_text, collapse = ""))
  # 提取去掉.txt后缀的文件名作为FASTA序列ID
  seq_name <- sub("\\.txt$", "", single_txt)
  # 按FASTA格式拼接内容:第一行>加序列名,第二行是完整序列
  fasta_text <- c(paste0(">", seq_name), dna_seq)
  # 写出为同名.fa格式文件
  writeLines(fasta_text, con = paste0(seq_name, ".fa"))
}

可选:合并所有序列到单个FASTA文件

如果不需要拆分单独文件,要把所有序列整合到一个FASTA文件里,用以下代码替换上述循环部分即可:

all_fasta_content <- c()
for (single_txt in txt_file_list) {
  raw_text <- readLines(single_txt, warn = FALSE)
  dna_seq <- gsub("\\s+", "", paste(raw_text, collapse = ""))
  seq_name <- sub("\\.txt$", "", single_txt)
  all_fasta_content <- c(all_fasta_content, paste0(">", seq_name), dna_seq)
}
# 写出为总FASTA文件
writeLines(all_fasta_content, con = "all_sequences.fasta")

说明

  • 代码自动兼容TXT文件内序列存在换行、空行、多余空格的情况,会自动清理后拼接为标准连续序列
  • 该方法不依赖系统命令,在Windows、macOS、Linux系统的R环境下均可正常运行,不存在cat命令的系统兼容性问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 05:27:21