如果类别字段不唯一,则向awk命令添加字段
我运行了几个如果类别字段不唯一,则向awk命令添加字段,awk,Awk,我运行了几个awk命令,需要修改第一个命令,但似乎无法获得正确的语法。基本上,列表中的ID用于搜索文件的$3,以及它们是否匹配类别字段($10)或(NF-1)=参考标准然后将基因ID或$2和RNA或$6输出到更新结果。如果只有一个参考标准,那么这是可行的,但是在LAMA4中有两个参考标准,因此我需要使用参考标准或10美元,其中t或7美元和p或9美元。我似乎无法将其纳入下面的awk。很抱歉,我写了这么长的文章,只是想把所有的细节都包括进去 列表 TTR LAMA4 DSP TTR NM_0003
awk
命令,需要修改第一个命令,但似乎无法获得正确的语法。基本上,列表
中的ID用于搜索文件
的$3
,以及它们是否匹配类别
字段($10)
或(NF-1)
=参考标准
然后将基因ID
或$2
和RNA
或$6
输出到更新
结果。如果只有一个参考标准
,那么这是可行的,但是在LAMA4
中有两个参考标准
,因此我需要使用参考标准
或10美元
,其中t
或7美元
和p
或9美元
。我似乎无法将其纳入下面的awk
。很抱歉,我写了这么长的文章,只是想把所有的细节都包括进去
列表
TTR
LAMA4
DSP
TTR NM_000371.3
LAMA4 NM_001105208.1
LAMA4 NM_002290.3
DSP NM_004415.2
TTR NM_000371.3
LAMA4 NM_002290.3 (since `$10` ="reference standard" and `$7` ="t2" and `$9` ="p2", this is used)
DSP NM_004415.2
文件
#tax_id GeneID Symbol RSG LRG RNA t Protein p Category
9606 7276 TTR NG_009490.1 LRG_416 NM_000371.3 t1 NP_000362.1 p1 reference standard
9606 3910 LAMA4 NG_008209.1 LRG_433 NM_002290.4 NP_002281.3 aligned: Selected
9606 3910 LAMA4 NG_008209.1 LRG_433 NM_001105206.2 NP_001098676.2 aligned: Selected
9606 3910 LAMA4 NG_008209.1 LRG_433 NM_001105207.2 NP_001098677.2 aligned: Selected
9606 3910 LAMA4 NG_008209.1 LRG_433 NM_001105208.2 NP_001098678.1 aligned: Selected
9606 3910 LAMA4 NG_008209.1 LRG_433 NM_001105209.2 NP_001098679.1 aligned: Selected
9606 3910 LAMA4 NG_008209.1 LRG_433 NM_001105208.1 t1 NP_001098678.1 p1 reference standard
9606 3910 LAMA4 NG_008209.1 LRG_433 NM_002290.3 t2 NP_002281.2 p2 reference standard
9606 1832 DSP NG_008803.1 LRG_423 NM_004415.3 NP_004406.2 aligned: Selected
9606 1832 DSP NG_008803.1 LRG_423 NM_001008844.2 NP_001008844.1 aligned: Selected
9606 1832 DSP NG_008803.1 LRG_423 NM_001319034.1 NP_001305963.1 aligned: Selected
9606 1832 DSP NG_008803.1 LRG_423 NM_004415.2 t1 NP_004406.2 p1 reference standard
awk
awk 'FNR==NR{a[$0];next} $(NF-1)$NF=="referencestandard" && $3 in a{print $3, ($5~/^NM_/?$5:$6)}' list file > update
当前结果
TTR
LAMA4
DSP
TTR NM_000371.3
LAMA4 NM_001105208.1
LAMA4 NM_002290.3
DSP NM_004415.2
TTR NM_000371.3
LAMA4 NM_002290.3 (since `$10` ="reference standard" and `$7` ="t2" and `$9` ="p2", this is used)
DSP NM_004415.2
期望的结果
TTR
LAMA4
DSP
TTR NM_000371.3
LAMA4 NM_001105208.1
LAMA4 NM_002290.3
DSP NM_004415.2
TTR NM_000371.3
LAMA4 NM_002290.3 (since `$10` ="reference standard" and `$7` ="t2" and `$9` ="p2", this is used)
DSP NM_004415.2
不是很漂亮,但是
awk 'FNR==NR{a[$0];next}
$(NF-1)$NF=="referencestandard" && $3 in a && $7>b[$3] && $9>c[$3]{d[$3]=$3 FS $6; b[$3]=$7; c[$3]=$9}
END{for(key in d){print d[key]}}' list file
产出:
TTR NM_000371.3
LAMA4 NM_002290.3
DSP NM_004415.2
非常感谢您的帮助:)。