hi,

I got this program from one of forums:

http://www.perlguru.com/gforum.cgi?post=32920

its something like this:
-------------------------------------------------------------------------
open(IN, "/path/outModified.pl") or die "$!";

while (my $line = <IN>) {
chomp($line);
my @array = (split (/\s+/, $line))[6, 7, 8];
# print "@array\n";
push @points, [ @array ];
}

close(IN);

print '@points : ', Dumper \@points;

open my $out_file, '>', "/path/dist_modified.pl" or die "cannot open: $!\n";

for my $i1 ( 0 .. $#points -1 ){
my ( $x1, $y1, $z1 ) = @{ $points[$i1] };
for my $i2 ( 1 .. $#points){
my ( $x2, $y2, $z2 ) = @{ $points[$i2] };
my $dist = sqrt(($x2 - $x1)**2 + ($y2 - $y1)**2 + ($z2 - $z1)**2);
print $out_file "153L.pdb: the distance between CA $i1 and CA $i2 = $dist\n";
}
}
close $out_file or die "cannot close file: $!\n";
========================================
Thanks to Shawnhcorey and KevinR.

my doubt is, if i have to compare the $dist with another file in the directory which has the data:

col1 col2
1 2.69
2 2.97032
3 3.25064
4 3.53096
5 3.81128
6 4.0916
7 4.37192

can I match the value of $dist with the column 2(col2) with its nearest higher value and retrieve the column1(col1) corresponding to it? I dont know how to write this in perl. Can you help...

To make it clear, if the value of $dist = 2.84, then the program should search for second row in the file [2 2.97032] and print only 2. that is the first column.it this possible. I think i have to use regular expressions?? or pattern matching??

Recommended Answers

All 4 Replies

open(FILE,"<test.txt");
$compare=$ARGV[0]; # this takes the compare on the command line
while(<FILE>){
	chomp;
	$x++;
	next if($x==1); #this skips the label at the top
	($n,$value)=split(/\s/);
	print "$n\n" if($compare>$last_value && $compare<=$value);
	$last_value=$value;
}

mishel Offline
Newbie Poster
What does the community think of mishel?
Community Reputation Points: 10
Reputation-Altering Power: 0
How helpful is mishel at solving threads?
Solved Threads Replied To: 0
Last Activity: Oct 6th, 2008

I'm eager to help too, but posting code for a person that has not been here for months is probably something I wouldn't do. Its your decision though.

Welcome to DaniWeb, good to have another perl person around.

Thanks for the welcome. I was just looking through threads in which no one had posted an answer and wasn't looking at activity. I just joined Daniweb this week, because I had a system problem and posted in another forum. I appreciated the help so much I thought I'd come to the area where I have the most experience (which is perl - I've been using perl - probably poorly at times - for about 15 years). Just trying to give back a bit.

Mitchems

Awesome, I hope to see you around.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.