Mercurial > repos > chawhwa > neuma
view NEUMA-1.2.1/filter_exclusive_NRgene_from_gene_table.pl @ 0:c44c43d185ef draft default tip
NEUMA-1.2.1 Uploaded
author | chawhwa |
---|---|
date | Thu, 08 Aug 2013 00:46:13 -0400 |
parents | |
children |
line wrap: on
line source
#!/usr/bin/perl if(@ARGV<2) { print "usage: $0 gene2NM_file table_file > output_file\n"; exit; } my $gene2NM_file = shift @ARGV; my $table_file = shift @ARGV; my %gene2NM=(); &filtered_gene2NM($gene2NM_file,\%gene2NM); &read_and_print_table($table_file,\%gene2NM); sub read_and_print_table { my $table_file = shift @_; my $pGene2NM = shift @_; open TABLE, $table_file or die "Can't open gene table file $table_file\n"; chomp(my $header=<TABLE>); print "$header\n"; while(<TABLE>){ chomp; my @line = split/\t/; my $gid = shift @line; if(exists $pGene2NM->{$gid}) { print "$_\n"; } } close TABLE; } sub filtered_gene2NM{ my $gene2NM_file = shift @_; my $pGene2NM = shift @_; my %gene2NM_total = (); my %gene2NR = (); open GENE2NM, $gene2NM_file or die "Can't open gene2NM_file $gene2NM_file\n"; while(<GENE2NM>){ chomp; my ($gid,$rid) = split/\t/; $gene2NM_total{$gid}++; if($rid=~/^NR/) { $gene2NR{$gid}++; } } close GENE2NM; for my $gid (keys %gene2NM_total){ if(!exists $gene2NR{$gid} || $gene2NM_total{$gid} > $gene2NR{$gid}){ $pGene2NM->{$gid}=1; } } }