在摘要中,我有两个标签文件,如描述bellow。
input1.tsv
34167 305603 S568 phosphorylation S 568
99024 179102 T170 Glycosylation T 170
99025 179102 Y182 phosphorylation Y 182
74300 105800 S632 phosphorylation S 632
41095 105800 S748 phosphorylation S 748
41096 105800 S778 acethylation S 778
和input2.tsv
179102 FUCA1 NM_000147.4 NP_000138.2
179102 FUCA1 XM_005245821.2 XP_005245878.1
179102 FUCA1 XM_011541167.2 XP_011539469.1
179102 FUCA1 XM_017000905.1 XP_016856394.1
357819 AGT NM_000029.3 NP_000020.1
105800 INPP5B NM_001297434.1 NP_001284363.1
105800 INPP5B NM_001297434.1 NP_001284363.1
所需的输出
179102 FUCA1 NM_000147.4 NP_000138.2 Glycosylation T 170 phosphorylation Y 182
179102 FUCA1 XM_005245821.2 XP_005245878.1 Glycosylation T 170 phosphorylation Y 182
179102 FUCA1 XM_011541167.2 XP_011539469.1 Glycosylation T 170 phosphorylation Y 182
179102 FUCA1 XM_017000905.1 XP_016856394.1 Glycosylation T 170 phosphorylation Y 182
357819 AGT NM_000029.3 NP_000020.1
105800 INPP5B NM_001297434.1 NP_001284363.1 phosphorylation S 748 phosphorylation S 748 acethylation S 778
105800 INPP5B NM_001297434.1 NP_001284363.1 phosphorylation S 748 phosphorylation S 748 acethylation S 778
我想做一个哈希,以将第一个文件的每个第一个文件的每个行中的每个列中的每个巧合与第二个文件的第一列和打印第二个文件的第一列以及每个行的所有第一个文件的巧合。我正在尝试做一个像
这样的哈希awk 'BEGIN {FS=OFS="t"} NR==FNR {h[$2]=$4"t"$5"t"$6; next} {print $0,h[$1]}' "input1" "input2" > "output";
不便之处是我认为仅在第一个文件中发现的第一个重合,但不是全部。因此,并非所有与第一个文件有关的巧合都在输出文件中注册。为了获得所需的输出,是否有可能在UNIX环境中进行操作?预先感谢
按照以下方式修改命令
awk 'BEGIN {OFS="t"} NR==FNR{h[$2]=h[$2] OFS $4 OFS $5 OFS $6;next} {print $0,h[$1]}' Input1.tsv Input2.tsv
这应该得到您想要的。
修改零件:
-
h[$2]=h[$2] OFS $4 OFS $5 OFS $6
:附加h[$2]
背后的匹配案例