invaderzard has asked for the wisdom of the Perl Monks concerning the following question:
I'm not sure if this is a valid question to ask, but I can't debug a program and thus I require your help!
#!/usr/bin/perl use Modern::Perl; use File::Slurp qw/read_file write_file/; my $uniprot = 'D:\\ARP\\Downloads\\uniprot-sfinal.txt'; my $activin = 'D:\\ARP\\Downloads\\Activator-Pfam.txt'; my $antioxin = 'D:\\ARP\Downloads\\AntiOxidant-Pfam.txt'; my $toxinin= 'D:\\ARP\\Downloads\\Toxin-Pfam.txt'; my $activout = 'D:\\ARP\\Downloads\\ActivACNPF.txt'; my $antioxout= 'D:\\ARP\\Downloads\\AntioxACNPF.txt'; my $toxinout= 'D:\\ARP\\Downloads\\ToxinACNPF.txt'; my @activline; my @antioxline; my @toxinline; my %activ = map { /(.+)\s+\|\s+(PF.{5})/; $1 => $2 } read_file $activi +n; my %antiox = map{ /(.+)\s+\|\s+(PF.{5})/; $1 => $2 } read_file $antiox +in; my %toxin = map { /(.+)\s+\|\s+(PF.{5})/;$1=> $2} read_file $toxinin; for ( read_file $uniprot ) { /(.{6})\s+.+=([^\s]+)/; push @activline, "$1 $2 $activ{$1}\n" if $activ{$1}; push @antioxline, "$1 $2 $antiox{$1}\n" if $antiox{$1}; push @toxinline, "$1 $2 $antiox{$1}\n" if $antiox{$1}; } write_file $activout, @activline; write_file $antioxout, @antioxline; write_file $toxinout, @toxinline; print STDOUT "DONE\n";
This is a program I'm writing for my research project. Here's a few lines from each input file:
D:\\ARP\\Downloads\\uniprot-sfinal.txt
Q6GZX4 ORFNames=FV3-001R ;PF04947 Q6GZX3 ORFNames=FV3-002L ;PF03003 Q197F8 ORFNames=IIV3-002R Q197F7 ORFNames=IIV3-003L Q6GZX2 ORFNames=FV3-003R Q6GZX1 ORFNames=FV3-004R Q197F5 ORFNames=IIV3-005L
D:\\ARP\\Downloads\\Activator-Pfam.txt
Q6GZX4 | PF04947.9 Q96355 | PF01486.12 PF00319.13 Q96356 | PF01486.12 PF00319.13 Q39371 | PF01486.12 PF00319.13
D:\\ARP\Downloads\\AntiOxidant-Pfam.txt
D0EYG3 | PF10262.4 E7QVU5 | PF10417.4 PF00578.16 D1JAS4 | PF10417.4 PF00578.16
D:\\ARP\\Downloads\\Toxin-Pfam.txt
C7T183 | PF02950.12 C7T1P5 | PF02950.12 E2E4E4 | PF00918.12 A2PU44 | PF01375.12
The error codes I got were as shown
Use of uninitialized value in list assignment at ARP//positivedatasetextractor.pl line 18Line 18: my %activ = map { /(.+)\s+\|\s+(PF.{5})/; $1 => $2 } read_file $activin;
Use of uninitialized value in list assignment at ARP//positivedatasetextractor.pl line 20Line 20: my %toxin = map { /(.+)\s+\|\s+(PF.{5})/;$1=> $2} read_file $toxinin;
Use of uninitialized value $1 in hash element at ARP//positivedatasetextractor.pl Line 23Line 23: push @activline, "$1 $2 $activ{$1}\n" if $activ{$1};
Use of uninitialized value $1 in hash element at ARP//positivedatasetextractor.pl Line 24Line 24: push @antioxline, "$1 $2 $antiox{$1}\n" if $antiox{$1};
Use of uninitialized value $1 in hash element at ARP//positivedatasetextractor.pl Line 25Line 25: push @toxinline, "$1 $2 $antiox{$1}\n" if $antiox{$1};
I know this is pretty long, but I have no idea how to debug this, so I'm posting this here for help. Thanks in advance!
Update: Thanks for your help, everyone! Well, I have further problems which use the same datasets, but is quite unrelated to this matter, so I'll be posting it on another new thread. Thanks again!
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Debugging help!
by aitap (Curate) on Aug 31, 2012 at 14:01 UTC | |
by invaderzard (Acolyte) on Aug 31, 2012 at 14:14 UTC | |
by NetWallah (Canon) on Aug 31, 2012 at 14:35 UTC | |
by aitap (Curate) on Aug 31, 2012 at 14:32 UTC | |
|
Re: Debugging help!
by Marshall (Canon) on Sep 01, 2012 at 12:19 UTC |