#!/usr/bin/perl use strict; use warnings; use diagnostics; my %geneSymbolConversion; my $input1 = '/scratch/Drosophila/fb_synonym_fb_2014_05.tsv'; open(INF1,"<", $input1 ) or die "$input1: $!\n"; while (){ chomp; if ( /^FBgn\d+/ ) { my @fields = split "\t"; $geneSymbolConversion{ $fields[0] } = $fields[1]; } } warn sprintf( "loaded %d gene symbols from %s\n", scalar keys %geneSymbolConversion, $input1 ); my $input2 = '/scratch/Drosophila/FlyRNAi_data_baseline_vs_EGF.txt'; open(INF2,"<", $input2) or die "$input2: $!\n"; open(OUTF1,">",'FLYRNAi_data_baseline_vs_EGFSymbol.txt') or die $!; while () { chomp; my ($geneID, $EGF_Base, $EGF_Stimulus) = split "\t"; if ( $geneID and $EGF_Base and $EGF_Stimulus ) { my $geneSymbol = $geneSymbolConversion{$geneID} || 'NA'; print OUTF1 join("\t", $geneID, $geneSymbol, $EGF_Base, $EGF_Stimulus), "\n"; } else { warn "$input2: line $.: incomplete data: $_\n"; } }