To_Bz has asked for the wisdom of the Perl Monks concerning the following question:
my $file1=shift; my @array=('A','T','C','G','AA','AT','AG','AC','TA','TT','TG','TC','GA +','GT','GG','GC','CA','CT','CG','CC','AAA','AAT','AAG','AAC','ATA','A +TT','ATG','ATC','AGA','AGT','AGG','AGC','ACA','ACT','ACG','ACC','TAA' +,'TAT','TAG','TAC','TTA','TTT','TTG','TTC','TGA','TGT','TGG','TGC','T +CA','TCT','TCG','TCC','GAA','GAT','GAG','GAC','GTA','GTT','GTG','GTC' +,'GGA','GGT','GGG','GGC','GCA','GCT','GCG','GCC','CAA','CAT','CAG','C +AC','CTA','CTT','CTG','CTC','CGA','CGT','CGG','CGC','CCA','CCT','CCG' +,'CCC','AAAA','AAAT','AAAG','AAAC','AATA','AATT','AATG','AATC','AAGA' +,'AAGT','AAGG','AAGC','AACA','AACT','AACG','AACC','ATAA','ATAT','ATAG +','ATAC','ATTA','ATTT','ATTG','ATTC','ATGA','ATGT','ATGG','ATGC','ATC +A','ATCT','ATCG','ATCC','AGAA','AGAT','AGAG','AGAC','AGTA','AGTT','AG +TG','AGTC','AGGA','AGGT','AGGG','AGGC','AGCA','AGCT','AGCG','AGCC','A +CAA','ACAT','ACAG','ACAC','ACTA','ACTT','ACTG','ACTC','ACGA','ACGT',' +ACGG','ACGC','ACCA','ACCT','ACCG','ACCC','TAAA','TAAT','TAAG','TAAC', +'TATA','TATT','TATG','TATC','TAGA','TAGT','TAGG','TAGC','TACA','TACT' +,'TACG','TACC','TTAA','TTAT','TTAG','TTAC','TTTA','TTTT','TTTG','TTTC +','TTGA','TTGT','TTGG','TTGC','TTCA','TTCT','TTCG','TTCC','TGAA','TGA +T','TGAG','TGAC','TGTA','TGTT','TGTG','TGTC','TGGA','TGGT','TGGG','TG +GC','TGCA','TGCT','TGCG','TGCC','TCAA','TCAT','TCAG','TCAC','TCTA','T +CTT','TCTG','TCTC','TCGA','TCGT','TCGG','TCGC','TCCA','TCCT','TCCG',' +TCCC','GAAA','GAAT','GAAG','GAAC','GATA','GATT','GATG','GATC','GAGA', +'GAGT','GAGG','GAGC','GACA','GACT','GACG','GACC','GTAA','GTAT','GTAG' +,'GTAC','GTTA','GTTT','GTTG','GTTC','GTGA','GTGT','GTGG','GTGC','GTCA +','GTCT','GTCG','GTCC','GGAA','GGAT','GGAG','GGAC','GGTA','GGTT','GGT +G','GGTC','GGGA','GGGT','GGGG','GGGC','GGCA','GGCT','GGCG','GGCC','GC +AA','GCAT','GCAG','GCAC','GCTA','GCTT','GCTG','GCTC','GCGA','GCGT','G +CGG','GCGC','GCCA','GCCT','GCCG','GCCC','CAAA','CAAT','CAAG','CAAC',' +CATA','CATT','CATG','CATC','CAGA','CAGT','CAGG','CAGC','CACA','CACT', +'CACG','CACC','CTAA','CTAT','CTAG','CTAC','CTTA','CTTT','CTTG','CTTC' +,'CTGA','CTGT','CTGG','CTGC','CTCA','CTCT','CTCG','CTCC','CGAA','CGAT +','CGAG','CGAC','CGTA','CGTT','CGTG','CGTC','CGGA','CGGT','CGGG','CGG +C','CGCA','CGCT','CGCG','CGCC','CCAA','CCAT','CCAG','CCAC','CCTA','CC +TT','CCTG','CCTC','CCGA','CCGT','CCGG','CCGC','CCCA','CCCT','CCCG','C +CCC'); my $name1=""; my $seq1=""; my %counts=(); my %counts_1=(); my %counts_2=(); my %counts_3=(); my %counts_4=(); my %total_mono=(); open (IN, "<$file1") or die ("Couldn't open file $file1\n"); while (my $i=<IN>){ next unless ($i =~ /\w+/); chomp($i); if ($i =~ /^>(\S+)/){ unless ($seq1 eq ""){ $seq1 =~ s/[^ATCG]//g; &process_nuc($seq1, $name1); } $seq1=""; $name1=$1; }else{ $seq1.=uc($i); } } close IN; $seq1 =~ s/[^ATCG]//g; &process_nuc($seq1, $name1); print "Matrix_"; print scalar(@array); for (my $k=0; $k<@array; $k++){ print "\t$array[$k]"; }print "\n"; my %norm_1=(); my %norm_2=(); my %norm_3=(); my %norm_4=(); foreach my $k (keys (%counts)){ print "$k"; 60 my $value=0; 61 $norm_1{'A'}=$counts_1{$k}{'A'}/$total_mono{$k}; 62 $norm_1{'T'}=$counts_1{$k}{'T'}/$total_mono{$k}; 63 $norm_1{'C'}=$counts_1{$k}{'C'}/$total_mono{$k}; 64 $norm_1{'G'}=$counts_1{$k}{'G'}/$total_mono{$k};
When I executed, I got results and the following error message:
Use of uninitialized value in division (/) at ./n_f.pl line 61.
Illegal division by zero at ./n_f.pl line 61.
I tried to use eval BLOCK as recomended in http://www.perlmonks.org/?node_id=369002, but it didnīt help that much because I get the same error message. I know that first message is a warning, but how can I know if this affects my results?.
Also, Iīm not quite sure if the second message is an error or a warning, so I donīt know if this made the script to stop.
Iīll appreciate the help.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Uninitialized value in division and Illegal division by zero fix
by AppleFritter (Vicar) on Jul 09, 2014 at 17:47 UTC | |
|
Re: Uninitialized value in division and Illegal division by zero fix
by Old_Gray_Bear (Bishop) on Jul 09, 2014 at 17:42 UTC | |
|
Re: Uninitialized value in division and Illegal division by zero fix
by toolic (Bishop) on Jul 09, 2014 at 17:11 UTC | |
|
Re: Uninitialized value in division and Illegal division by zero fix
by PerlSufi (Friar) on Jul 09, 2014 at 18:46 UTC | |
|
Re: Uninitialized value in division and Illegal division by zero fix
by AnomalousMonk (Archbishop) on Jul 09, 2014 at 22:48 UTC | |
|
Re: Uninitialized value in division and Illegal division by zero fix
by johngg (Canon) on Jul 10, 2014 at 09:16 UTC | |
|
Re: Uninitialized value in division and Illegal division by zero fix
by redbull2012 (Sexton) on Jul 10, 2014 at 09:41 UTC |