[gmx-users] Error while running perl distances.pl
"가디 장데부 고라크스나트"
f07338 at kist.re.kr
Mon Sep 4 04:47:39 CEST 2017
Hello Gmx user,
I would like to transport solute molecule from the ion channel (intracellular to extracellular site) using steered MD and umbrella sampling method to calculate the energy.
I followed Dr. Lemkul's tutorial and it works fine upto equilibration step but in distance.pl it shows some errors.
I used the distance of pulling along the Z-axis but still it do not work. I found when I use distance as a pull-geometry, solute moves away from the channel rather transporting through channel. Then I tried direction as a pull-geoetry, then solute transported from the chanel,and generated pullf.xvg but not pullx.xvg file.
I separated the trajectory using trjconv command
gmx_mpi_d -f recenter_traj.xtc -s md_pull.tpr -n pro-lig.ndx -o conf.gro -sep
It generated conformations.
Now I would like to calculate the COM distance between ion channel (protein) and solute (lig) using perl distance.pl but I received following error.
Error
readline() on closed filehandle IN at distances.pl line 16
Use of uminitialized value $distance in concatanation (.) or string at distances.pl line 30.
Here is the distance.pl file which I used for this purpose which was downloaded from Dr. Lemkul's tutorial file.
-----------------
#!/usr/bin/perl -w
use strict;
# loop g_dist command - measure distance in each frame, write to a file
for (my $i=0; $i<=800; $i++) {
print "Processing configuration $i...\n";
system("gmx distance -s md_pull.tpr -f conf${i}.gro -n index.ndx -oall dist${i}.xvg -select \'com of group \"lig\" plus com of group \"protein\"\' &>/dev/null");
}
# write output to single file
open(OUT, ">>summary_distances.dat");
for (my $j=0; $j<=800; $j++) {
open(IN, "<dist${j}.xvg");
my @array = <IN>;
my $distance;
foreach $_ (@array) {
if ($_ =~ /[#@]/) {
# do nothing, it's a comment or formatting line
} else {
my @line = split(" ", $_);
$distance = $line[1];
}
}
close(IN);
print OUT "$j\t$distance\n";
}
close(OUT);
# clean up
print "Cleaning up...\n";
for (my $k=0; $k<=800; $k++) {
unlink "dist${k}.xvg";
}
exit;
-------------------------
this generated the summary_distances.dat with only frame numbers but there is no distance column in the file.
Please help me to solve this issue
Regards,
Dr. Changdev G. Gadhe
Post-Doc Researcher,
Convergence Research Center for Diagnosis, Treatment and Care System of Dementia,
Korea Institute of Science and Technology,
Hwarangno 14-gil 5, Seongbuk-gu, Seoul 136-791, Korea
Ph.: +82-10-2779-1546 , Lab: +82-02-958-6850
Email: F07338 at kist.re.kr
More information about the gromacs.org_gmx-users
mailing list