#!/usr/bin/env perl
use strict;
use warnings;
my $file1 = "2hgs_d00_internal_nrg_e.dat";
my $file2 = "2HGS_bio_conv-min_p.pdb";
open( MYFILE, '<', $file1 ) or die "cannot open $file1: $!";
open( NEWF, '<', $file2 ) or die "cannot open $file2: $!";
my (@a_vals, @b_vals);
while ( <MYFILE> ) {
chomp;
my( $label, $index, $value ) = ( split /\s+/ )[3, 5, -1];
$a_vals[ $index ] = $value;
$b_vals[ $index ] = $value;
}
close MYFILE;
while ( <NEWF> ) {
chomp;
my @fields = ( split /\s+/ );
my $index = $fields[4];
my $label = $fields[-1];
if ($label eq "A"){
$fields[-2] = $a_vals[ $index ]
}
if ($label eq "B"){
$fields[-2] = $b_vals[ $index ]
}
my $output = join "\t", @fields;
print "$output\n";
}
close NEWF;
I am still getting values from B from MYFILE |