【发布时间】:2023-03-13 08:50:02
【问题描述】:
我想根据参考文本文件中的信息更改我的 FASTA 标头。所以说我有两个文件:
file1.txt(参考,制表符分隔)
chr1:100-1000(+) ORF1_ORF2_
chr2:30-400(-) ORF2_
chr3:50-4500(+)
chr4:60-800(-) ORF1_
file2.fasta
>chr1:100-1000(+)
TTTTGAGAGGACTTCTCTGAGAGCTATGCTAGTCATCGAGGGGAAA
>chr2:30-400(-)
GGGGGGAGAGAGATCTCTGAGCTAGTCATCGTAGCTAGTCATGGGG
>chr3:50-4500(+)
ATGCGCGAGCGAGCGCGACGATCATCGTAGCTACAAAAAAAAAAAG
>chr4:60-800(-)
AGTCTAGCTATCGTAGCTGATCGTAGCTAGCTGATCGTAGCTAGTC
我想使用 file1.txt 中的 $1 来识别 file2.fasta 中的相应标头。如果匹配,则在当前标头前加上 file1.txt 中的 $2。所以期望的输出是:
输出.fasta
>ORF1_ORF2_chr1:100-1000(+)
TTTTGAGAGGACTTCTCTGAGAGCTATGCTAGTCATCGAGGGGAAA
>ORF2_chr2:30-400(-)
GGGGGGAGAGAGATCTCTGAGCTAGTCATCGTAGCTAGTCATGGGG
>chr3:50-4500(+)
ATGCGCGAGCGAGCGCGACGATCATCGTAGCTACAAAAAAAAAAAG
>ORF1_chr4:60-800(-)
AGTCTAGCTATCGTAGCTGATCGTAGCTAGCTGATCGTAGCTAGTC
我过去曾使用 awk 来比较两个文件中的列,但是对于如何将文本文件与 fasta 文件(其中有标题和序列而不是列)进行比较,我感到很困惑。任何帮助都会很棒!
【问题讨论】:
-
为什么会有 python 和 bash 标签?请删除不相关的标签。
-
哦,来吧。我没有提到 sed 标签,但是你没有使用 sed。请运用大脑和普通礼貌。
-
我并不是要将问题限制为仅 awk 解决方案(类似问题似乎已通过 sed 等解决,因此使用了标志)。
-
^^ 同意。我只是匆忙编造了答案。删除了评论,因为它暗示了一种不好的做法......
标签: awk sed bioinformatics fasta