修改行名以避免在终端中合并文件时出现冗余

modifying line names to avoid redundancies when files are merged in terminal

我有两个包含生物 DNA 序列数据的文件。这些文件中的每一个都是 python 脚本的输出,该脚本根据序列开头的 DNA 条形码将每个 DNA 序列分配给样本 ID。这些 .txt 文件之一的输出如下所示:

>S066_1 IGJRWKL02G0QZG orig_bc=ACACGTGTCGC new_bc=ACACGTGTCGC bc_diffs=0
TTAAGTTCAGCGGGTATCCCTACCTGATCCGAGGTCAACCGTGAGAAGTTGAGGTTATGGCAAGCATCCATAAGAACCCTATAGCGAGAATAATTACTACGCTTAGAGCCAGATGGCACCGCCACTGATTTTAGGGGCCGCTGAATAGCGAGCTCCAAGACCCCTTGCGGGATTGGTCAAAATAGACGCTCGAACAGGCATGCCCCTCGGAATACCAAGGGGCGCAATGTGCGTCCAAAGATTCGATGATTCACTGAATTCTGCAATTCACATTACTTATCGCATTTCGCAGCGTTCTTCATCGATGACGAGTCTAG
>S045_2 IGJRWKL02H5XHD orig_bc=ATCTGACGTCA new_bc=ATCTGACGTCA bc_diffs=0
CTAAGTTCAGCGGGTAGTCTTGTCTGATATCAGGTCCAATTGAGATACCACCGACAATCATTCGATCATCAACGATACAGAATTTCCCAAATAAATCTCTCTACGCAACTAAATGCAGCGTCTCCGTACATCGCGAAATACCCTACTAAACAACGATCCACAGCTCAAACCGACAACCTCCAGTACACCTCAAGGCACACAGGGGATAGG

第一行是序列号,第二行是DNA序列。 ID第一部分的S_066表示序列来自样本066,_1表示它是文件中的第一个序列(不是来自S_066的第一个序列本身).由于所使用的 DNA 测序技术的细微差别,我需要从原始测序文件生成两个这样的文件,结果是我有两个这样的文件的输出,然后我使用 cat 来融合在一起。到目前为止一切顺利。

我工作流程中的下一个下游步骤不允许使用相同的样本名称。现在它进行到一半,出现错误并关闭,因为它遇到了一些相同的序列 ID。因此,这两个文件中的第 400 个序列一定属于同一个样本,或者生成相同的样本 ID(即两个文件可能有 S066_400)。

我想做的是使用一些代码在第二个文件的每隔一行的 _ 之后插入一个数字(1000、4971,等等),从第一行开始。这样 ID 就不会再混淆了,我可以继续了。因此,它将涵盖 S066_2S066_24971S066_49712。部分问题在于 ID 的长度可能是可变的,因此它可能以 S066_49BBT1_ 开头。

尝试:

awk '/^\>/ {= "_13"} {print [=10=]}' filename > tmp.tmp
mv tmp.tmp filename