我想將輸入文件中的一組變量匹配到我的數據文件並返回各種字段。使用perl匹配txt文件中的變量集
input.txt中
ENSG00000165322
ENSG00000170540
ENSG00000143153
ENSG00000213145
data.txt文件包含由(我覺得)分隔的多個字段分號(;)。這裏有一個例子:
chr10 gencodeV7 gene 32094365 32217742 0.714042 - . gene_id "ENSG00000165322.12"; transcript_ids "ENST00000311380.4,ENST00000375250.5,ENST00000492028.1,ENST00000497085.1,ENST00000493008.1,ENST00000344936.2,ENST00000396144.4,ENST00000375245.4,ENST00000477117.1,ENST00000497103.1,ENST00000454919.1,"; RPKM1 "7.54177"; RPKM2 "9.47656"; iIDR "0.000";
chr16 gencodeV7 gene 18802991 18812917 7.333434 - . gene_id "ENSG00000170540.7"; transcript_ids "ENST00000304414.6,ENST00000545430.1,ENST00000546206.1,"; RPKM1 "84.0696"; RPKM2 "90.714"; iIDR "0.000";
我想在input.txt中每個變量與數據文件相匹配,並與RPKM1打印出匹配的術語,它是在雙引號關聯的值,並用它來RPKM2值的相應數值,以便它看起來像這樣哪裏還有不匹配打印出A N/A
ENSG00000165322 7.54177 9.47656
ENSG00000170540 84.0696 90.714
ENSG00000143153 73.2162 85.090
ENSG00000213145 N/A N/A
我可以使用這個腳本使用awk做到這一點:
exec < input.txt
while read line
do
set $line
rpkm=`grep $1 data.txt | cut -f9| cut -d";" -f 3-4 | sed -e 's/;/\t/g'`
echo $line $rpkm >> output.txt
done
,但我嘗試爲了學習perl和搜索後幾小時,我已經嘗試了這個,但我不知道如何獲得輸出。
use strict;
use warnings;
my $input_txt = "input.txt" ;
my $raw_data = "data.txt" ;
if ($input_txt =~ $raw_data) ;
close $input
如果您有任何建議和解釋,那將是美好的。
'perldoc perlintro' – toolic
我們可以稱之爲變量嗎? RPKM2「9.47656」 – Sekai
變量是input.txt,例如ENSG00000165322等。我想從data.txt文件的input.txt中找到變量,並將其與相應的RPKM1和RPKM2值一起打印出來。希望這可以幫助? – user1879573