#!/usr/bin/perl #use strict; #use warnings; my $sourceDir = '../Perl/Test'; my $outFile = "out.ffn"; my $i = 0; opendir(my $sourceDH, $sourceDir) or die $!; my @allfiles = grep /\.ffn$/, sort readdir($sourceDH); closedir $sourceDH; open my $outFH, ">>", $outFile or die $!; for my $sourceFile (@allfiles) { open my $sourceFH, "<", $sourceDir . '/' . $sourceFile or die $!; $NameReadIn = <$sourceFH>; close $sourceFH; # Get organism name chop($NameReadIn); $NameReadIn =~s/(>)/_/g; $NameReadIn =~s/(\[)/>/g; $positionName=index($NameReadIn,">"); $ZeichenName = substr($NameReadIn,$positionName,); chop($Name); if ( -z "$outFH" ) { print $outFH "$Name\n"; } else { print $outFH "\n$Name\n"; } # Get sequences: open my $sourceFH, "<", $sourceDir . '/' . $sourceFile or die $!; @DNAReadIn = <$sourceFH>; close $sourceFH; $DNAString=join("",@DNAReadIn); $DNAString =~s/(\]\n)/,/g; while ($DNAString =~ m{,\w{3}(\w{24})}g) { print $outFH "$1"; } $i++; } close $outFH; print "Done! $i files have been processed!\n";