#!/usr/bin/perl
use Parallel::ForkManager;
# inicializa el paralelizador a 8 procesos
my $pm = new Parallel::ForkManager(8);


open(LIST,$ARGV[0]);
@x=<LIST>;
close(LIST);
$size=$#x+1;

for ($i=0;$i<$size;$i++) {
   @names=split(/\s/,$x[$i]);
   $prot1=$names[1];
    $dir1 = substr($prot1,2,2);

   for ($j=$i+1;$j<$size;$j++) {
   @names=split(/\s/,$x[$j]);
   $prot2=$names[1];
    $dir2 = substr($prot2,2,2);

    # inicializa cada proceso a paralelizar
    $pm -> start and next;
  $X=`../TMalign/TMalign /home/recerca/SCOP1.7/pdbstyle-1.73/$dir1/$prot1.ent /home/recerca/SCOP1.7/pdbstyle-1.73/$dir2/$prot2.ent | fgrep RMSD`;
   @line=split(/[\s=,]+/,$X);
  system("echo $prot1 $prot2 $line[6] >> ../TMalign/RES/TMres");
    # finaliza cada proceso a finalizar
    $pm -> finish;
}
}

# espera a que hayan acabado todos
$pm -> wait_all_children; 


