2013-05-29 67 views
0

我想用grep來拉出明確的值。從文件grep一個模式

我跑快遞和我有我的.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 

我想非codingRNA特異性表達值,所以我想用:

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

我做了一個文件,非編碼RNA重疊羣的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 

由於我ncRN和577一樣,我預計最終會得到一個包含577行的.xprs文件,但我最終得到了701個Contigs的.xprs文件。

所以我有124個重疊羣不符合我的ncRNA。

我怎樣才能取出ncRNAs特定的值?我試着玩grep,但我無法修復它。

有什麼建議嗎?

感謝

+0

嘗試使用'-E '來獲得更好的匹配。您也可以使用'-o''只顯示匹配PATTERN的匹配行的一部分.' – Bill

+1

grep -w -f 好像工作正常。感謝您的幫助 – user1819854

回答

1

如果你可以使用awk那麼這應該工作 -

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

我使用了grep -w -f 列表,並且它工作正常!感謝您的幫助,儘管 – user1819854

+1

@ user1819854您應該將其作爲答案發布並接受它。這對其他人來說是一個很好的參考。 :) –

1

我用

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

它工作得很好!

注:

-w限制grep來全字,這樣的grep不搜索 「12345」,並拉出 「123456」。

相關問題