This is the input:
>d1dlwa_ a.1.1.1
slfeqlggqaavqavtaqfyangidmpnqtnktaaflcaalggpnawtgrnlkevhanmgvsnaqfttvighlrsaltgagvaaalveqtvavaetvrgdvvtvniqadatvatff
>d1uvyc1 b.1.1.1
niqadatvatffngidmpnqtnktaaflcaalggpnawtgrnlkevhanmgvsnaqfttvighlrsaltgagvaaalveqtvavaetvrgdvvtvslfeqlggqaavqavtaqfya
####
My expected output (each in a .fa file):
>1dl_a_
slfeqlggqaavqavtaqfyangidmpnqtnktaaflcaalggpnawtgrnlkevhanmgvsnaqfttvighlrsaltgagvaaalveqtvavaetvrgdvvtvniqadatvatff
>1uvy_c1
niqadatvatffngidmpnqtnktaaflcaalggpnawtgrnlkevhanmgvsnaqfttvighlrsaltgagvaaalveqtvavaetvrgdvvtvslfeqlggqaavqavtaqfya
####
#!/usr/bin/perl -w
@PDBchain;
@PDBcode;
@pdbString;
@SCOPclass;
$count =0; #SET A COUNTER FOR NUMBER OF ENTRIES
open (IN, "$ARGV[0]");
my @array;
while ()
{
my $pdbId = $_;
chomp($pdbId);
push @array, $pdbId;
print $pdbId;
print "\n\n";
if ($pdbId =~/>d(\d\w\w\w)(\w[_\d])\s(\w)/)
{
$pdbString[$count] = "";
$PDBcode[$count]=$1; #SAVE PDB CODE
print $PDBcode[$count];
print "\n";
$PDBchain[$count]=$2; #SAVE PDB CHAIN
$SCOPclass[$count]=$3; #SAVE SCOP CLASS (A,B,C,D,E,F,G)
$count++;
next;
}
else
{
$pdbString[$count].=$pdbId;
next;
}
print $pdbString[$count]; #this prints the complete fasta sequence per entry!
print "\n\n";
}
close IN;
print "Total number of entries: ".$count. "\n"; #COUNT TOTAL NUMBER OF PDBS REPRESENTED
for(my $i=0;$i<$count;$i++)
{
open (OUT, ">>$PDBcode[$i]_$PDBchain[$i].fa");
print OUT ">",$PDBcode[$i], "_", $PDBchain[$i], "\n";
print OUT $pdbString[$i];
#WHY AM I UNABLE TO PRINT THE SEQUENCE HERE?
close OUT;
}