【问题标题】:awk to count lines (reads) in a columnawk 计算列中的行数(读取)
【发布时间】:2021-02-23 12:55:06
【问题描述】:

我有一个文件,其中我在与基因关联的最后一列中关联了读数。

chr7    2457938 2457981 Naca    +   chr7    2457938 2457981 NS500455:81:HTVKJBGXC:1:11101:21577:2860    44  +
chr7    2457938 2457981 Naca    +   chr7    2457938 2457981 NS500455:81:HTVKJBGXC:1:11101:12188:3487    44  +
chr7    2457938 2457981 Naca    +   chr7    2457938 2457981 NS500455:81:HTVKJBGXC:1:11101:9524:3758 44  +
chr7    2457938 2457981 Naca    +   chr7    2457938 2457981 NS500455:81:HTVKJBGXC:1:11101:7243:4130 44  +
chr7    2457938 2457981 Naca    +   chr7    2457938 2457981 NS500455:81:HTVKJBGXC:1:11101:20035:10131   44  +
chr7    2457938 2457981 Naca    +   chr7    2457938 2457981 NS500455:81:HTVKJBGXC:1:11101:14291:16898   44  +
chr7    2457938 2457981 Naca    +   chr7    2457938 2457981 NS500455:81:HTVKJBGXC:1:11101:10796:17822   44  +
chr7    2457938 2457981 Naca    +   chr7    2457938 2457981 NS500455:81:HTVKJBGXC:1:11102:17796:2683    44  +
chr7    2457938 2457981 Naca    +   chr7    2457938 2457981 NS500455:81:HTVKJBGXC:1:11103:22603:1930    44  +
chr7    2457938 2457981 Naca    +   chr7    2457938 2457981 NS500455:81:HTVKJBGXC:1:11103:2286:7789 44  +

chr7 2457938 2457981 Naca + chr7 2457938 2457981 44 + number of reads 即第 6-8 列出现的次数。在此示例中,它们出现了 10 次。我想把它写成一个单独的专栏。

我尝试使用 awk awk '!seen[$5]++' | awk '{a[$12]=1;} END{for (k in a)n++; print n;}' 执行此操作,但它不起作用。 有人可以帮忙吗。 问候, 阿米特。

【问题讨论】:

  • 输出的逻辑是什么?
  • 除了上面提到的拉曼,只想在这里问你正在使用awk '!seen[$5]++' 命令,这是否意味着你正在删除第 5 列的重复项?也请确认一次,因为如果是这种情况,您显示的样本应该更清楚,谢谢。
  • @RavinderSingh13 输出的逻辑是统计每个基因关联的第12-15列出现的次数。
  • @RavinderSingh13 如何显示 1 个基因 n 的读取数(第 12-15 个)列是相关联的。我还在学习awk。请指导我。

标签: awk multiple-columns


【解决方案1】:

对于您显示的示例,您能否尝试以下操作。用 GNU awk 编写和测试。

awk '
FNR==NR{
  arr[$1]++
  next
}
($1 in arr){
  print $0,arr[$1]
  delete arr[$1]
}
' Input_file Input_file


第二个解决方案:如果您的样本按第一列排序,请尝试以下操作:

awk '
prev!=$1 && prev{
  print prevLine,count
}
{
  prev=$1
  prevLine=$0
}
END{
  if(prev){
    print prevLine,count
  }
}
'  Input_file

注意:如果记录未按第一列排序,则使用带有 Input_file 的 sort 命令并将其输出也传递给第二个解决方案。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-07
    • 2014-06-20
    • 1970-01-01
    • 2023-03-09
    • 2013-11-13
    • 2022-01-26
    相关资源
    最近更新 更多