>scaffold00001
TGACCAGCGTTACATGTCAACGTTTTTTTAAACATTGAATATTTATTCATCTGTTCTCGA
CGTCGCACATTGTGCAAGCCATCAACTTGATCTAATTAAGTATATCCGCTAAAGATCAGC
GCCTTTTGTTTTGACAACAACAAGTATCATACCAGCACTTTAACGATGTAGTCAATAAAA
NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
TGTCTGCTTCCGTTGATACCTGCGCGAGCCGGTCGTCACGATTCGGTACCTTGCCGTCAA
TCAAAAAATGGCAATGATGATCCAACAATGGGACTTGGTCGACAAACTCAGATAAGTCGT
CCAAAATACTTCCTCCTTCACACGTTTGCTGGTGCAATGACCAGCCCACGTTTTCCTAGA
>scaffold00002
ATTCATGTTGCTCGTCGTCACCTGACCGAGCAGGGCCAGAACCGGGACATGATCCATTTT
GGCATCATACAAACCATTTAATAGATGAATGGCGCCAGGGCCGCCAATGGAGAGACAAAC
ACCCAAACCGCCTGTTAACTTAGCAGTTGCCGCTGCGGACAAAGCGGCGACTTCCTCATG
NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
CAACTGCTCTTAGTGTGATCTCATTTATCAAAGAGATCAGACTTTGTGAATTCAGATTTT
TTCAAGCCATACAACAACTAACCCAATTTAAGAAATACCCACTTATTGCGATTTGCTTTT
CTATTAGTTAGCATTTTAAATTGTGAAACGTGCCACTTATAAACAAATTTCCGTCTTCTT
####
#!/util/bin/perl
use strict;
use warnings;
use File::Copy;
#################
#-----Declaration of Arguements-----#
my $fasta=$ARGV[0] || die ("Please provide a 454Scaffolds.fna fasta file to parse.\n"); # Argument accepts scaffold fasta file.
my $tempfasta="temp.fasta";
my $workingfasta="working.fasta";
my $scaffold; # Initializing $scaffold globally.
my $enumerator; # Initializing $enumerator globally.
#----Main Program-----#
copy($fasta, $tempfasta) or die "Could not copy $fasta to $workingfasta.";
open (FILE,">working.fasta");
while (my $fastaline=)
{
if($fastaline=~ m/^>/) # IF first character in line is > assign line to $fastaline then...
{
my $scaffold_header=$fastaline; # set $scaffold_header to $fastaline then...
$scaffold_header=~ /(>)(\S*)(\s*)(\S*)/; # divide $ scaffold header components then...
$scaffold= $2; # assign component $2 to $scaffold then...
print WORKFILE ">" . "$scaffold" . ".1\n"; # print $scaffold to screen and start new line.
$enumerator=1;
} elsif ($fastaline!~ m/G/ and $fastaline!~ m/A/ and $fastaline!~ m/T/ and $fastaline!~ m/C/)
{
$enumerator++;
print WORKFILE (">" . "$scaffold" . ".$enumerator\n");
} else {
print WORKFILE $fastaline;
}
};
close (FILE);
close (WORKFILE);
####
>scaffold00001.1
TGACCAGCGTTACATGTCAACGTTTTTTTAAACATTGAATATTTATTCATCTGTTCTCGA
CGTCGCACATTGTGCAAGCCATCAACTTGATCTAATTAAGTATATCCGCTAAAGATCAGC
GCCTTTTGTTTTGACAACAACAAGTATCATACCAGCACTTTAACGATGTAGTCAATAAAA
>scaffold00001.2
>scaffold00001.3
>scaffold00001.4
TGTCTGCTTCCGTTGATACCTGCGCGAGCCGGTCGTCACGATTCGGTACCTTGCCGTCAA
TCAAAAAATGGCAATGATGATCCAACAATGGGACTTGGTCGACAAACTCAGATAAGTCGT
CCAAAATACTTCCTCCTTCACACGTTTGCTGGTGCAATGACCAGCCCACGTTTTCCTAGA
>scaffold00002.1
ATTCATGTTGCTCGTCGTCACCTGACCGAGCAGGGCCAGAACCGGGACATGATCCATTTT
GGCATCATACAAACCATTTAATAGATGAATGGCGCCAGGGCCGCCAATGGAGAGACAAAC
ACCCAAACCGCCTGTTAACTTAGCAGTTGCCGCTGCGGACAAAGCGGCGACTTCCTCATG
>scaffold00002.2
>scaffold00002.3
CAACTGCTCTTAGTGTGATCTCATTTATCAAAGAGATCAGACTTTGTGAATTCAGATTTT
TTCAAGCCATACAACAACTAACCCAATTTAAGAAATACCCACTTATTGCGATTTGCTTTT
CTATTAGTTAGCATTTTAAATTGTGAAACGTGCCACTTATAAACAAATTTCCGTCTTCTT
####
>scaffold00001.1
TGACCAGCGTTACATGTCAACGTTTTTTTAAACATTGAATATTTATTCATCTGTTCTCGA
CGTCGCACATTGTGCAAGCCATCAACTTGATCTAATTAAGTATATCCGCTAAAGATCAGC
GCCTTTTGTTTTGACAACAACAAGTATCATACCAGCACTTTAACGATGTAGTCAATAAAA
>scaffold00001.2
TGTCTGCTTCCGTTGATACCTGCGCGAGCCGGTCGTCACGATTCGGTACCTTGCCGTCAA
TCAAAAAATGGCAATGATGATCCAACAATGGGACTTGGTCGACAAACTCAGATAAGTCGT
CCAAAATACTTCCTCCTTCACACGTTTGCTGGTGCAATGACCAGCCCACGTTTTCCTAGA
>scaffold00002.1
ATTCATGTTGCTCGTCGTCACCTGACCGAGCAGGGCCAGAACCGGGACATGATCCATTTT
GGCATCATACAAACCATTTAATAGATGAATGGCGCCAGGGCCGCCAATGGAGAGACAAAC
ACCCAAACCGCCTGTTAACTTAGCAGTTGCCGCTGCGGACAAAGCGGCGACTTCCTCATG
>scaffold00002.2
CAACTGCTCTTAGTGTGATCTCATTTATCAAAGAGATCAGACTTTGTGAATTCAGATTTT
TTCAAGCCATACAACAACTAACCCAATTTAAGAAATACCCACTTATTGCGATTTGCTTTT
CTATTAGTTAGCATTTTAAATTGTGAAACGTGCCACTTATAAACAAATTTCCGTCTTCTT
####
elsif ($fastaline!~ m/G/ and $fastaline!~ m/A/ and $fastaline!~ m/T/ and $fastaline!~ m/C/)