2013-04-18 64 views
0

我正在嘗試編寫一個shell腳本,用於搜索文件中的文本並將文本和關聯信息輸出到單獨的文件中。正在搜索文本

從包含基因標識的列表文件:

DDIT3 ENSG00000175197 
DNMT1 ENSG00000129757 
DYRK1B ENSG00000105204 

我想尋找這些基因標識(ENSG *),其RPKM1和RPKM2值在GTF文件:

chr16 gencodeV7  gene 88772891  88781784  0.126744  +  .  gene_id "ENSG00000174177.7"; transcript_ids "ENST00000453996.1,ENST00000312060.4,ENST00000378384.3,"; RPKM1 "1.40735"; RPKM2 "1.61345"; iIDR "0.003"; 
chr11 gencodeV7  gene 55850277  55851215  0.000000  +  .  gene_id "ENSG00000225538.1"; transcript_ids "ENST00000425977.1,"; RPKM1 "0"; RPKM2 "0"; iIDR "NA"; 

並打印/寫入一個單獨的輸出文件

Gene_ID   RPKM1 RPKM2 
ENSG00000108270 7.81399 8.149 
ENSG00000101126 12.0082 8.55263 

我已經在命令行上使用它每個ID使用:

grep -w "ENSGno" rnaseq.gtf| awk '{print $10,$13,$14,$15,$16}' > output.file 

,但是當談到編寫shell腳本,我已經試過的各種組合,同時,閱讀,做和改變變量,但沒有成功。任何想法都會很棒!

+0

你如何獲得這些RPKM [12]從樣本數據值? –

+0

RPKM是樣品中mRNA丰度的量度;該技術是RNAseq。 RPKM被定義爲讀取每百萬讀數的讀數。希望這可以幫助?感謝Harriet – user1879573

回答

1

你可以這樣做:

while read line 
do 
    var=$(echo $line | awk '{print $2}') 
    grep -w "$var" rnaseq.gtf| awk '{print $10,$13,$14,$15,$16}' >> output.file 
done < geneIDs.file 
+0

嗨,我試過了,我得到了基因ID,它對應着RPKM1&2值,但它打印出目標rnaseq.gtf文件中的所有基因IDS。我不知道如何一遍又一遍地搜索源geneID.csv文件中找到的相同目標rnaseq.gtf文件中的術語,並將匹配的geneID和RPKM1&2值打印到單獨的輸出文件中。感謝Harriet – user1879573

+0

嗯,我真的不知道這個問題。你能否用精確的輸入和確切的輸出來更新你的文章?假設'grep'正確地完成了這項工作,我只是將'grep'用在'while read file'中。 – fedorqui

+0

會做,謝謝。 Harriet – user1879573