rename_fasta_ids.sh

#!/bin/bash

# 文件1(FASTA 文件名列表)
fasta_file_list="fasta_file_list.txt"
# 文件2(新 ID 列表)
id_list="id_list.txt"

# 读取文件1和文件2的行并逐一处理
while IFS= read -r fasta_file && IFS= read -r new_id <&3; do
    if [[ -f "$fasta_file" ]]; then
        echo "Processing $fasta_file to rename IDs to $new_id"

        # 创建一个临时文件用于存储修改后的内容
        temp_file=$(mktemp)

        # 处理 FASTA 文件并修改 ID
        while IFS= read -r line; do
            if [[ $line == \>* ]]; then
                # 使用正则表达式替换 '>' 后的字母部分为新的 ID,保留数字和 '.' 后的内容
                new_line=$(echo "$line" | sed -E "s/^>[^0-9]*([0-9]+.*)$/>${new_id}\1/")
                echo "$new_line" >> "$temp_file"
            else
                echo "$line" >> "$temp_file"
            fi
        done < "$fasta_file"

        # 用修改后的内容替换原文件
        mv "$temp_file" "$fasta_file"
    else
        echo "File $fasta_file does not exist"
    fi
done < "$fasta_file_list" 3< "$id_list"

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

终是蝶衣梦晓楼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值