bash - 在 UNIX 中重命名 fasta/fastq 文件中的条目

标签 bash sed bioinformatics fasta

我有包含 x 个读取的 fasta 文件,我想重命名每个读取的 id。 我的文件如下:

>e855552f-9484-4674-8fc4-d9b1f1add023 runid=4140cbe7f7cd36a17a00b732f27dd37bd09e4380 sampleid=mariposas read=55861 ch=2 start_time=2022-11-23T17:43:40Z model_version_id=2021-05-17_dna_r9.4.1_minion_768_2f1c8637 barcode=barcode06
GCTTTAACATTTAGCTATTTATGACACAGTGAAATAAAAGTAATATCTTTTTATTTTTAATTGTATTTATTAGTTACATGTTTTCACATGCATTTAACATAAATGTGATAATTTATGGGAATTACACTACTGTCAAAGTAGTT
>c9d90319-ec63-4347-9244-ad080b0815c5 runid=4140cbe7f7cd36a17a00b732f27dd37bd09e4380 sampleid=mariposas read=30196 ch=317 start_time=2022-11-23T14:47:32Z model_version_id=2021-05-17_dna_r9.4.1_minion_768_2f1c8637 barcode=barcode11
GCCTTGACTATATGGTTTACCTGTTCAAATACGACTCTACTCATGGTCGTTTCAAGGGAACAGTTGAGGTTCAAGGATGGTTTCCTCGTAGTAGTCTCAATGGAAACAAATCTCCTGTCTTCTGTGAAAGAGACCCTAAAATC

我想用第一个 id 和由“_”链接的条形码(最后一个单词)重命名读取。

我的期望是:

>e855552f-9484-4674-8fc4-d9b1f1add023_barcode06
GCTTTAACATTTAGCTATTTATGACACAGTGAAATAAAAGTAATATCTTTTTATTTTTAATTGTATTTATTAGTTACATGTTTTCACATGCATTTAACATAAATGTGATAATTTATGGGAATTACACTACTGTCAAAGTAGTT
>c9d90319-ec63-4347-9244-ad080b0815c5_barcode11
GCCTTGACTATATGGTTTACCTGTTCAAATACGACTCTACTCATGGTCGTTTCAAGGGAACAGTTGAGGTTCAAGGATGGTTTCCTCGTAGTAGTCTCAATGGAAACAAATCTCCTGTCTTCTGTGAAAGAGACCCTAAAATC

我正在尝试使用 sed 命令,但我不知道这是否是最佳选择。我不知道如何使用 sed 指定多个单词(第一个和最后一个)而不是固定单词。

最佳答案

这个sed一行应该可以解决问题:

sed 's/ .* barcode=/_/' file

它只是用 _ 替换从第一个空格字符到 barcode= 的子字符串。

关于bash - 在 UNIX 中重命名 fasta/fastq 文件中的条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75813398/

相关文章:

R:通过两列应用 Pearson 卡方检验

linux - 如何 SSH,验证更新是否可用。如果是,请下载更新

linux - 从 unix 中的 .gz 日志文件中提取值

perl - 使用 sed/awk/tr/perl 用小写的子字符串替换字符串?

r - 在 R 中操作基因型文件

for-loop - 在多个 Illumina 双端读取文件上使用 trimomatic

linux - 为 ASCII 表中的每个字符创建一个文件

linux - cp之间的区别

linux - 在另一个函数中调用一个函数

awk - sed/awk + ​​regex 删除第一个字段匹配的重复行(ip 地址)