Saurabh Singhvi wrote:
> Hi all,

Hello,

> The following code block
> 
> foreach $protein (@pdbs) {
>        $rmsd[$i] = 0;
>        foreach $protein2 (@pdbs2) {
>                system("./TMalign $protein $protein2 | cgrep -i rmsd >

What is cgrep?  I don't have that on my system.

> temp") == 0 or die $?;
>                open(TEMP,'temp') or die $?;

If open fails there will be nothing useful in $?, you want to use the $!
variable instead.

>                chomp($line = <TEMP>);
>                close TEMP;
>                ($length,$rmsd,$tm_score,$id) = split(/\,/,$line);
>                $rmsd =~ s/RMSD\=//;
>                $rmsd =~ s/\s//g;
>                $rmsd[$i] += $rmsd;
>        }
>        $i++;
> }

Perhaps this will work better:

for my $protein ( @pdbs ) {
    my $temp;
    for my $protein2 ( @pdbs2 ) {
        open my $TEMP, "./TMalign $protein $protein2 |"
                or die "Cannot open pipe from 'TMalign' $!":
        while ( <$TEMP> ) {
            next unless /RMSD \s* = \s* ( \d+ )/ix;
            $temp += $1;
            last;
        }
        close $TEMP or warn $! ? "Error closing 'TMalign' pipe: $!"
                               : "Exit status $? from 'TMalign'";
    }
    push @rmsd, $temp;
}


> is giving error :
> 
> open: null file name
> apparent state: unit 10 named
> last format: (A100)
> lately reading sequential formatted external IO

I searched through perldiag but I couldn't find that error message.



John
-- 
use Perl;
program
fulfillment

-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>


Reply via email to