target: AT3G19880A, length: 1168 miRNA : miR156a length: 20 mfe: -19.3 kcal/mol p-value: 0.607541 position 165
i have a file which is basically has the repetion similar to given above (size of the file is 20GB). i have written a perl script which actually runned in a smaller file which matches the pattern and retrive the information
open(FH,$file) || die "cant open file\n"; #@lines=<FH>; #close FH; while ($line=<FH>) { chomp $line; if ($line =~ /^target:\s+(\S+)/) { push (@target,$1);}#print "$1\n"; elsif ($line =~ /^miRNA :\s+(\S+)/) {push (@mirna,$1)#print "$1\n"; } elsif ($line =~ /^p-value:\s+(\S+)/) {push (@score,$1)#print "$1\n"; } elsif ($line =~ /^position\s+(\S+)/) {push (@start,$1)#print "$1\n"; } } $length=@mirna; for ($i = 0; $i <$length; $i++) { print "$mirna[$i]\t$target[$i]\t$start[$i]\t$score[$i]\n";}
this is the code i have written for which the output is
miR156a AT3G19833 151 0.607541 miR156a AT3G19883 11 0.607541 miR156a AT3G19883 12 0.607541 miR156a AT3G19773 15 0.607541 miR156a AT3G19833 161 0.607541 miR156a AT3G19780 163 0.607541
the code i have written is running for smaller file but not for bigger ones..can anybody suggest a better in order run the program in effecient way...
In reply to to read particular lines by tarakaramji
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |