【问题标题】:Grep a pattern from file从文件中提取模式
【发布时间】:2013-05-29 01:36:43
【问题描述】:

我正在尝试使用 grep 提取快速值。

我运行 eXpress,我的 .xprs 制表符分隔值文件如下所示:

bundle_id   target_id   length  eff_length  tot_counts  uniq_counts est_counts  eff_counts  ambig_distr_alpha   ambig_distr_beta    fpkm    fpkm_conf_low   fpkm_conf_high  solvable
1   Contig14365 310 106.787904  85  85  85.000000   246.750792  0.000000e+00    0.000000e+00    147.370523  147.370523  147.370523  T
2   Singlet_45262   346 232.432874  109 37  89.933541   133.875234  1.998601e+00    7.198885e-01    71.637085   51.273440   92.000730   T
2   Singlet_68764   236 119.092916  74  2   21.066459   41.746263   6.254955e+00    1.736541e+01    32.750608   0.142967    65.358248   T
3   Contig1270  736 500.694431  50  0   0.125252    0.184116    1.000000e+00    1.000000e+00    0.046316    0.000000    0.759071    F
3   Contig1271  851 628.717767  57  9   43.657462   59.092492   4.701649e-01    1.810055e-01    12.856315   4.051524    21.661106   T
3   Singlet_69558   790 555.880836  50  0   15.217286   21.626318   1.000000e+00    1.000000e+00    5.068381    0.000000    12.670313   F

我想获得非编码RNA特定的表达值,所以我想使用:

grep -f <list of ncRNAs contigs> <express file>

我制作了一个带有 ncRNA 重叠群 ID 的文件,如下所示:

Singlet_51268
Singlet_63946
Singlet_70630
Singlet_72272
Singlet_60543
Contig11105
Singlet_18043
Singlet_64779
Singlet_50335
Singlet_39678
Singlet_21655
Singlet_5438
Singlet_6400
Contig4197
Singlet_17193
Singlet_55710
Singlet_70948
Singlet_25172
Singlet_65515
Singlet_30239
Singlet_54617
Singlet_11188
Contig14540

由于我的 ncRNA 为 577,我希望最终得到一个 577 行的 .xprs 文件,但我最终得到了一个包含 701 个 Contig 的 .xprs 文件。

所以我有 124 个重叠群与我的 ncRNA 不对应。

如何提取 ncRNA 特定的值?我尝试过使用 grep,但我无法修复它。

有什么建议吗?

谢谢

【问题讨论】:

  • 尝试使用-E &lt;regex&gt; 以获得更好的匹配。你也可以使用-oShow only the part of a matching line that matches PATTERN.
  • grep -w -f 似乎工作正常。感谢您的帮助

标签: shell command-line express grep


【解决方案1】:

如果您可以使用awk,那么这应该可以工作 -

awk 'NR==FNR {a[$1]++; next} $2 in a' file xprs

【讨论】:

  • 我使用了 grep -w -f 效果很好!感谢您的帮助
  • @user1819854 您应该将其发布为答案并接受它。这对其他人来说是一个很好的参考。 :)
【解决方案2】:

我用过

grep -w -f &lt;list of ncRNAs contigs&gt; &lt;express file&gt;

效果很好!

注意:

-w 将 grep 限制为 仅限全字,因此 grep 不会搜索“12345”,也会提取“123456”。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-15
    相关资源
    最近更新 更多