【发布时间】:2015-06-24 15:53:17
【问题描述】:
我有两个包含生物 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
第一行是序列 ID,第二行是 DNA 序列。 ID第一部分的S_066表示该序列来自样本066,_1表示它在文件中的第一个序列(不是S_066本身的第一个序列)。由于所使用的 DNA 测序技术的细微差别,我需要从原始测序文件生成两个这样的文件,结果是我有其中两个文件的输出,然后我使用cat 将它们合并在一起.到目前为止一切顺利。
我的工作流程中的下一个下游步骤不允许使用相同的样本名称。现在它完成了一半,出错并关闭,因为它遇到了一些相同的序列 ID。因此,这两个文件中的第 400 个序列必须属于同一个样本,或者其他东西,生成相同的样本 ID(即两个文件可能有 S066_400)。
我想做的是使用一些代码在第二个文件的每隔一行的_ 之后立即插入一个数字(1000、4971 等),从第一行开始。这样,ID 将不再被混淆,我可以继续。因此,它将涵盖S066_2 到S066_24971 或S066_49712。部分问题在于 ID 的长度可能是可变的,因此它可以以S066_ 或49BBT1_ 开头。
【问题讨论】:
-
作为旁注:你到底为什么要在 bash 中这样做?
标签: unix terminal bioinformatics