#!usr/bin/perl use strict; use warnings; my $sequence='ABCD'; my @headings= qw/ Tags Frequency /; my $headings=join("\t",@headings); my @input_files=<*.seq>; foreach my $input_file (@input_files) { open INPUT, "<", $input_file or die "Cannot open file \"$input_file\". $!"; (my $outfile = $input_file) =~ s/.seq/\.tag\.txt/i; my %freq; while (my $line=) { if ($line=~m/$sequence(.{11})(.{11})$sequence/i){ my $revcomp=reverse($1); $revcomp=~tr/ACGTacgt/TGCAtgca/; $freq{$_}++ for $revcomp, $2; } } close INPUT or die "Cannot close file \"$input_file\". $!"; open OUTPUT, ">", $outfile or die "Cannot open file \"$outfile\". + $!"; print OUTPUT $headings, "\n"; for my $tag (sort {$freq{$b} <=> $freq{$a}} keys %freq) { print OUTPUT $tag,"\t",$freq{$tag},"\n"; } close OUTPUT or die "Unable to close \"$outfile\". $!"; }