使用 awk(或 python)将匹配行中的序列追加到文件中?
append sequences from matching lines over a file using awk (or python)?
我正在尝试为每个人连接一个文件中的所有基因序列,并认为可能有一种方法可以通过使用 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
中完成
$ awk -F'[_ ]' '{a[] = a[] } END{for (i in a) print i, a[i]}' file
CAN4 TCGACGTCTACC
Mex1 TGACTTTCGGCA
Mex2 TGACTATCGCCC
CAN2 TCGGGGTCTACT
我正在尝试为每个人连接一个文件中的所有基因序列,并认为可能有一种方法可以通过使用 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
中完成$ awk -F'[_ ]' '{a[] = a[] } END{for (i in a) print i, a[i]}' file
CAN4 TCGACGTCTACC
Mex1 TGACTTTCGGCA
Mex2 TGACTATCGCCC
CAN2 TCGGGGTCTACT