Dear Monks,
I came up with a script for parsing 2 files but it is giving
me many warning and error messages. I am not getting howto
debug. Can somebody help ?
My File 1 looks like this:-
155369268 300
169212695 200
My File 2 looks like this:-
>gi|155369268|ref|NM_802300917.1| Homo sapiens ewqeqwaspanin 19 (USUAN
+23), mRNA
CCTGCTCTCGATTCTAATGTGATGCGAACGCAGCATTTCAGGGACTGGATGAGGAGCTTACGGTTTTTT
ACAGAATCATCAATATCTTGGAAGAAAAAGAATGTTAAGAAATAACAAAACAATAATTATTAAGTACTTT
CTTAATCTCATTAATGGAGCTTTCTTGGTTCTTGGACTTTTATTCATGGGATTTGGTGCATGGCTCTTAT
TAGATAGAAATAATTTTTTAACAGCTTTTGATGAAAATAATCACTTCATAGTACCTATTTCTCAAATTTT
GATTGGAATGGGATCTTCTACTGTTCTTTTTTGTCTATTGGGTTATATAGGAATTCACAACGAAATCAGA
TGGCTCCTAATTGTGTATGCAGTATTGATAACATGGACCTTTGCTGTTCAGGTTGTACTTTCAGCATTCA
TCATCACAAAGAAAGAGGAGGTTCAGCAACTATGGCATGACAAAATTGATTTTGTCATTTCTGAGTATGG
ATCTAAAGATAAGCCTGAAGATATAACCAAGTGGACTATTCTGAATGCCTTACAGAAAACATTACAGTGT
TGTGGCCAACATAATTACACAGACTGGATAAAGAATAAGAACAAAGAAAATTCAGGACAGGTGCCATGTT
CTTGCACAAAGTCAACTTTAAGAAAATGGTTTTGTGATGAGCCACTGAATGCAACTTACCTTGAGGGTTG
TGAAAATAAAATCAGTGCATGGTATAATGTTAATGTGTTAACCTTAATCGGAATTAACTTTGGACTTTTA
ACTTCAGAGGTTTTCCAAGTCTCATTAACAGTTTGTTTCTTCAAAAACATCAAGAATATAATCCATGCAG
AAATGTGACCTTTGGATTTCAATTTGTTCAGAAGAAACCAGTTAATTCTTAAAAAATCACATTA
>gi|169212695|ref|XM_96216884.1| PREDICTED: Homo sapiens hypothetical
+protein UJI1001326087 (YHC1001326768), mRNA
ATGTGTGTATATATATATATGCATATATATGTGTGTGTATATATATATACACATATATATGTGTGTGTAT
ATATATACACATATATATGTGTGTGTATATATATATACACATATATATGTGTGTATATATATATACACAC
ACATATATATGTATACATATACATGTATATGTATATATGTATACATATACATATATATGTATATATGTAT
ACATATACATATATACGTATATATACATATATGTATATATGTAAGTATACGTATATATACATATATGTAT
ATGTATGTACATATATATGCATGCACATATATATGTATTTATATATATGCATGTATATGTATATGCATGT
ACATATGGATGTATATATGCACGCATGTCTGTACATATGCATGTATGTATGTACATATAAATGTATATAT
ATGTATACATACATGTGTATATATACATGTATATGTATGTATACGTACATACATATGTATGTATACGTGT
ATGTATACATACATATGTATGTATGCGTACATACATATGTATACGTACATACATATGTATGCTTACACAC
ATGTATGCTTACACACATATGTATGTACGTGTACATACATATGTACACGTACATACATATGTACACGTAC
ATACATATGTTCCAGAGGAAGAAGAAACAAGTGTCTGGTGCCCAGAGACGACCAGATGCCCCACCAGTTC
TGATCCATAGGAGAATGATCGTTCCACATGGCCAACTCCATCCTCATGCAGCAATTCCTCCACAAGCACA
AGACAAGCTTGTCCTGATGTTCCTTGCCCTGGCAGATGTTCAGGACCTTCCTTTGATTCAACCCCTCCAC
CTAAATGGCCCAAGCTTTCGGGGCTGTCATTGTCTGTTTGTCATTCAAGGGCCCAAGCTGAAGAGGGGGT
TGTGGCCTAACCATGGTCGTGTTGTGCTGGACGTCACAGCAGAGGAGGAGGCGCAGAACAAAGGCTGC
The error or warning messages are :-
I am getting this error /warning:-
Substr outside of the string at line 42. <$fh> line 2.
Use of Uninitialized value in concatenation or string at line 42. <$fh
+> line 4.
Use of uninitialized value in hash element at line 34. <$fh> line 4.
...................................
My code is :-
#!/usr/bin/perl
use strict;
use warnings;
my $qfn1 = "File1.txt";
my $qfn2 = "File2.txt";
my %positions;
{
open(my $fh, '<', $qfn1)
or die("Cannot open file \"$qfn1\": $!\n");
while (<$fh>) {
my ($key, $pos) = split /\s+/;
$positions{$key} = $pos;
}
}
{
open(my $fh, '<', $qfn2)
or die("Cannot open file \"$qfn2\": $!\n");
for (;;) {
defined( my $key = <$fh> )
or last;
defined( my $text = <$fh> )
or last;
chomp($key);
chomp($text);
$key = (split(/\|/,$key,3))[1];
defined( my $pos = $positions{$key} ) ##line 34
or next;
my $index = rindex($text, "ATG", $pos);
next if ( $index < 0 );
$index += 3 while ( ($index + 3) < $pos);
print "$key $pos " . substr($text, $index, 3) . "\n"; ##line 42
}
}
20081224 Janitored by Corion: Restored content