用于构建蛋白质组学数据的Bash代码

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用于构建蛋白质组学数据的Bash代码相关的知识,希望对你有一定的参考价值。

我需要有关重构数据集的帮助,以便我可以执行下游分析。我目前正处理蛋白质组学数据,并希望进行比较分析。问题是蛋白质ID。通常,一种蛋白质可以具有多于1个id并且它们被“;”分开。我需要用不同的蛋白质ID打印相同蛋白质的整个系列。例如:-

输入文件 :

        tom dick harry  jan
a;b;c   1     2    3     4
d;e     4     5    7     3

理想输出:

    tom dick harry jan
a   1   2   3   4
b   1   2   3   4
c   1   2   3   4
d   4   5   7   3
e   4   5   7   3

非常感谢提前

答案
$ awk 'NR==1{$0="key "$0} {split($1,a,/;/); for (i=1; i in a; i++) { $1=a[i]; print } }' file | column -t
key  tom  dick  harry  jan
a    1    2     3      4
b    1    2     3      4
c    1    2     3      4
d    4    5     7      3
e    4    5     7      3

如果你不喜欢它,你可以从输出中删除单词“key”,但是恕我直言的有一些列和一些没有标题是一个非常糟糕的主意 - 只是让任何进一步的处理更加困难。

另一答案
#!/bin/bash

read header
printf "%4s %s
" "" "$header"

while true
do
  read ids values
  for id in $(tr ';' ' ' <<< "$ids")
  do
    printf "%-4s %s
" "$id" "$values"
  done
done

这读取标题和打印(只是略有不同的格式),然后它读取每一行并打印这些行中的每一行,在行的开头给出的每个id一行。为了找到ids,ids字符串被分割为分号(;)。

以上是关于用于构建蛋白质组学数据的Bash代码的主要内容,如果未能解决你的问题,请参考以下文章

代谢组学数据分析的统计学方法综述

Mass Spectrometry-Compatible Subcellular Fractionation for Proteomics 质谱兼容的蛋白质组学的亚细胞分离(解读人:王茹凯)

生物信息学常识汇总

Mol Cell Proteomics. |赵赟| 全面地分析个人尿蛋白质组学的变化揭示出不同的性别变化

UniProt数据库怎么看

代谢组学2.代谢物鉴定