使用awk(或python)从文件中的匹配行追加序列?

时间:2015-04-10 17:22:31

标签: python awk sed

我正在尝试连接每个人的文件中的所有基因序列,并认为可能有一种方法可以使用awk或sed使用oneliner。

假设我有一个带有ID名称(Mex1,Can2等)和序列(TGAC ...)的文件,每行都有不同的ID,基因(A,B)和序列。

Mex1_A TGACTT
Mex2_A TGACTA
CAN2_A TCGGGG
CAN4_A TCGACG
Mex1_B TCGGCA
Mex2_B TCGCCC
CAN2_B TCTACT
CAN4_B TCTACC

有没有办法从每个匹配的ID中追加序列,连接一行中每个个体的所有序列数据,例如:

Mex1 TGACTTTCGGCA
Mex2 TGACTATCGCCC
CAN2 TCGGGGTCTACT
CAN4 TCGACGTCTACC

使用这些编辑器可以吗?也许最好在perl / python中完成

1 个答案:

答案 0 :(得分:1)

$ awk -F'[_ ]' '{a[$1] = a[$1] $3} END{for (i in a) print i, a[i]}' file
CAN4 TCGACGTCTACC
Mex1 TGACTTTCGGCA
Mex2 TGACTATCGCCC
CAN2 TCGGGGTCTACT