in reply to Renaming headers works for some files but fails for some files
To save yourself some grief, I would simply look for > and then replace the line, regardless of what else is there (which is what you are doing anyway). You can also use print $variable and sleep(3); in parts of the code to help see what is present in certain places, particularly if you don't get a match. We don't have the input files, so we can't tell if there are spaces or tabs in the FASTA headers.
use strict; use warnings; my @files = glob("*.fa"); for my $file ( @files ) { # open the input file open my $in, "<", "$file" or die "Cannot open "$file": $!\n"; # open the output file open my $out, ">", "$file.out" or die "Cannot open "$file.out": $!\ +n"; # reset contig number my $contig_number = 1; while ( <$in> ) { chomp; if ( $_ ~= m/^>/ ) { # it's a header print $out ">config_$contig_number\n\n"; $contig_number++; } else { # it's sequence print $out "$_\n\n"; } close $in; close $out; } } my $file_count = @files; print "Successfully processed $file_count files!\n"; exit;
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: Renaming headers works for some files but fails for some files
by MVRS (Acolyte) on May 10, 2013 at 03:13 UTC |