nac wrote:
HI again,
Hello,
I have corrected myself a bit, I think the script is now giving me what I want, having said that, I guess it is not the best way ( even if there is more than one way), again any pointer are welcome. many thanks Nat #!/usr/bin/perl use strict; use warnings; my @seq; @seq=qw{^TGGCAGTGGAGG ^TGTCTGGCAGTG ^TG....GCAGTG TCTGTCTG TCTGGCAG GCAGTGGA TGTCTGGC ^TGTCTGGC ^..TCTGGCAGTG ^TGTCTGGCAGTG ^TGCATGGC}; open (IN,"</Users/nac/Desktop/example.fastq") or die "can't open in:$!"; open (OUT,">>//Users/nac/Desktop/example.fastq\_class_COUNTED2.txt") or die "can't open out: $!"; my %final_hash; while (<IN>) { if (/^A|T|G|C/){ print my $seq_line=$_; foreach my $ff (@seq){ if ($seq_line =~ /$ff/g){ if (!exists $final_hash{$ff}) { $final_hash{$ff}=1; } else { $final_hash {$ff}++; } } } } } for my $key (sort {$final_hash {$b}<=> $final_hash {$a}}keys %final_hash){ my $value=$final_hash{$key}; print OUT $key,"\t",$value, "\n"; }
You say that this code produces the results: GCAGTGGA 9 TCTGGCAG 8 ^TGGCAGTGGAGG 7 TCTGTCTG 2 But when I run this code on the data you provided I get: GCAGTGGA 10 TCTGGCAG 6 ^TGGCAGTGGAGG 5 TCTGTCTG 1 So I don't know if I can help you. John -- Any intelligent fool can make things bigger and more complex... It takes a touch of genius - and a lot of courage to move in the opposite direction. -- Albert Einstein -- To unsubscribe, e-mail: beginners-unsubscr...@perl.org For additional commands, e-mail: beginners-h...@perl.org http://learn.perl.org/