【发布时间】:2016-09-07 06:45:50
【问题描述】:
我有许多数据文件,其中每一列代表一个唯一的样本,每一行对应一个基因名称。这是我的一个较小文件的示例:
MAPK3 9.49707613464767 9.34083460789419 9.12918870414545
TIE1 5.12900020712651 5.15008091018047 5.15008091018047
CYP2C19 3.80757247946463 3.80757247946463 3.87721584865861
CXCR5 6.40745840005515 6.40745840005515 6.40745840005515
CXCR5 6.04763929379884 6.13038198258514 6.13038198258514
DUSP1 12.0320377077951 12.7960658385305 12.625340661444
MMP10 4.1933379022831 4.1933379022831 4.1933379022831
RXRG 4.33755505408386 4.32903686336417 4.32903686336417
RXRG 6.91141485189572 6.96893082690402 6.96893082690402
请注意,在第一列中,基因名称CXCR5 和RXRG 已重复,但每个条目的值不同。我需要的输出文件如下所示:
MAPK3 9.49707613464767 9.34083460789419 9.12918870414545
TIE1 5.12900020712651 5.15008091018047 5.15008091018047
CYP2C19 3.80757247946463 3.80757247946463 3.87721584865861
CXCR5 6.22754884693 6.2689201913201 6.2689201913201
DUSP1 12.0320377077951 12.7960658385305 12.625340661444
MMP10 4.1933379022831 4.1933379022831 4.1933379022831
RXRG 5.6244849529898 5.6489838451341 5.6489838451341
重复基因的值被平均并替换每个样本的原始条目。此外,我想保持独特的基因名称和值不变。需要明确的是,对于第 1 列中的每个重复基因名称,我不想要整行的平均值,而是每列的平均值。 我已经尝试使用这里描述的聪明的 awk 单行代码 calculate and print the average value of strings in a column 和这里 Average from different columns in shell script 。但是我无法概括命令来解释我的文件,这些文件可能有多达 100 个样本/列。他们不必要地混淆了我独特的基因名称。
我的新手级编码技能将是我的死亡!有什么建议吗?
谢谢
【问题讨论】: