R:基因的蛋白序列多行转单行

从Phytozome上导出来的,这个用于后续的基因家族分析,通过此脚本将序列变为一行

# 清除所有变量
rm(list = ls())

# 设置工作目录
setwd("C:/Users/Administrator/Desktop")

# 定义读取和处理序列数据的函数
process_sequences <- function(file_path) {
  # 读取文件内容
  lines <- readLines(file_path)
  
  # 初始化变量
  output <- c() # 存储处理后的序列
  current_header <- "" # 当前序列标题
  sequence_data <- "" # 当前序列数据
  
  for (line in lines) {
    if (grepl("^>", line)) { # 如果是序列头
      if (sequence_data != "") {
        # 如果当前序列数据非空,则将标题和序列数据组合后添加到输出中
        output <- c(output, current_header, sequence_data)
        sequence_data <- "" # 重置序列数据
      }
      current_header <- line # 更新当前序列标题
    } else {
      # 不是标题行,则将其视为序列数据,累积到序列数据变量中
      sequence_data <- paste0(sequence_data, line)
    }
  }
  
  # 确保最后一个序列也被正确处理
  if (sequence_data != "") {
    output <- c(output, current_header, sequence_data)
  }
  
  return(output)
}

# 指定输入文件名
input_file_name <- "mart_export.txt"
# 使用函数处理文件
output_sequences <- process_sequences(input_file_name)

# 指定输出文件名
output_file_name <- "processed_sequences.txt"
# 将处理后的序列保存到新文件中
writeLines(output_sequences, output_file_name)

 

posted @   王哲MGG_AI  阅读(29)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示