Re: [AMBER] problem in plotting total energy graphs by perl script

From: Bill Ross <ross.cgl.ucsf.edu>
Date: Sun, 20 Mar 2016 22:10:36 -0700

Hi Sehrish,

mden format was designed for easy extraction, if you are writing scripts
for this purpose. You have to turn on printing in mdin.

Bill

On 3/20/16 9:56 PM, Sehrish Naz Aijaz wrote:
> Dear Bill,
> Are you asking about mden content in my output files??? Or you are saying to use mden file generated during production runs???
> Can you tell me how can I plot those mden file which scripts will help for plotting and processing mden files???
>
> Sent from Mail<https://go.microsoft.com/fwlink/?LinkId=550986> for Windows 10
>
> From: Bill Ross<mailto:ross.cgl.ucsf.edu>
> Sent: 20 March 2016 01:11
> To: AMBER Mailing List<mailto:amber.ambermd.org>
> Subject: Re: [AMBER] problem in plotting total energy graphs by perl script
>
> Have you looked at mden file contents? They could be easier to work with.
>
> Bill
>
> On 3/19/16 3:16 AM, Sehrish Naz Aijaz wrote:
>> Dear Hai,
>> I try to run this in my amber12 but it gives the following error. Can you explain this to me...
>> Traceback (most recent call last):
>> File "/usr/local/amber14/bin/mdout_analyzer.py", line 3, in <module>
>> from tkFileDialog import askopenfilenames
>> ImportError: No module named tkFileDialog
>>
>> Sent from Mail<https://go.microsoft.com/fwlink/?LinkId=550986> for Windows 10
>>
>> From: Hai Nguyen<mailto:nhai.qn.gmail.com>
>> Sent: 19 March 2016 14:48
>> To: AMBER Mailing List<mailto:amber.ambermd.org>
>> Subject: Re: [AMBER] problem in plotting total energy graphs by perl script
>>
>> I think it should be compatible (Jason might correct me if I am wrong).
>>
>> Here is the tutorial: http://jswails.wikidot.com/helpful-scripts#toc8
>>
>> Cheers
>> Hai
>>
>> On Sat, Mar 19, 2016 at 2:26 AM, Sehrish Naz Aijaz <sehrish.naz.outlook.com>
>> wrote:
>>
>>> Dear Hai,
>>> I have amber12 in my system. Is this script compatible for amber12 which I
>>> think not compatible with amber12. So what should I do???
>>>
>>> Sent from Mail<https://go.microsoft.com/fwlink/?LinkId=550986> for
>>> Windows 10
>>>
>>> From: Hai Nguyen<mailto:nhai.qn.gmail.com>
>>> Sent: 19 March 2016 13:56
>>> To: AMBER Mailing List<mailto:amber.ambermd.org>
>>> Subject: Re: [AMBER] problem in plotting total energy graphs by perl script
>>>
>>> Can you try to use mdout_analyzer.py in AmberTools15? (It's pain to debug
>>> Perl code)
>>>
>>> Check http://ambermd.org/doc12/Amber15.pdf (page 515)
>>>
>>> Hai
>>>
>>> On Sat, Mar 19, 2016 at 1:25 AM, Sehrish Naz Aijaz <
>>> sehrish.naz.outlook.com>
>>> wrote:
>>>
>>>> Dear all,
>>>> I had run 10 ns simulation (AMBER12) of large compounds in TIP3P box to
>>>> check their stable conformation with time. the input file I used for
>>>> production is
>>>> NPT production with no restrains
>>>> &cntrl
>>>> imin=0, ntx=7, irest=1, ntrx=1, ntxo=1,
>>>> ntpr=500, ntwx=500, ntwv=200, ntwe=200,
>>>> ntf=2, ntb=2, cut=10.0,
>>>> nsnb=100, igb=0,
>>>> nstlim=2000000,
>>>> t=0.0, dt=0.001,
>>>> ntt=3, gamma_ln=1.0, tempi=300.0, temp0=300.0,
>>>> vlimit=20,
>>>> ntp=1, taup=1.0, pres0=1.0, comp=44.6,
>>>> ntc=2, tol=0.00000001,
>>>> /
>>>>
>>>> after getting the production files. I tried to calculate the total energy
>>>> graphs of the system by using perl script as follows
>>>> . #!/usr/bin/perl
>>>>
>>>>
>>>> if ($#ARGV < 0) {
>>>> print " Incorrect usage...\n";
>>>> exit;
>>>> }
>>>>
>>>>
>>>> foreach $i ( 0..$#ARGV ) {
>>>> $filein = $ARGV[$i];
>>>> $checkfile = $filein;
>>>> $checkfile =~ s/\.Z//;
>>>> if ( $filein ne $checkfile ) {
>>>> open(INPUT, "zcat $filein |") ||
>>>> die "Cannot open compressed $filein -- $!\n";
>>>> } else {
>>>> open(INPUT, $filein) || die "Cannot open $filein -- $!\n";
>>>> }
>>>> print "Processing sander output file ($filein)...\n";
>>>> &process_input;
>>>> close(INPUT);
>>>> }
>>>>
>>>> print "Starting output...\n";
>>>> .sortedkeys = sort by_number keys(%TIME);
>>>> .sortedavgkeys = sort by_number keys(%AVG_TIME);
>>>>
>>>> foreach $i ( TEMP, TSOLUTE, TSOLVENT, PRES, EKCMT, ETOT, EKTOT, EPTOT,
>>>> DENSITY, VOLUME, ESCF ) {
>>>> print "Outputing summary.$i\n";
>>>> open(OUTPUT, "> summary.$i");
>>>> %outarray = eval "\%$i";
>>>> foreach $j ( .sortedkeys ) {
>>>> print OUTPUT "$j ", $outarray{$j}, "\n";
>>>> }
>>>> close (OUTPUT);
>>>>
>>>> print "Outputing summary_avg.$i\n";
>>>> open(OUTPUT, "> summary_avg.$i");
>>>> %outarray = eval "\%AVG_$i";
>>>> foreach $j ( .sortedavgkeys ) {
>>>> print OUTPUT "$j ", $outarray{$j}, "\n";
>>>> }
>>>> close (OUTPUT);
>>>>
>>>> print "Outputing summary_rms.$i\n";
>>>> open(OUTPUT, "> summary_rms.$i");
>>>> %outarray = eval "\%RMS_$i";
>>>> foreach $j ( .sortedavgkeys ) {
>>>> print OUTPUT "$j ", $outarray{$j}, "\n";
>>>> }
>>>> close (OUTPUT);
>>>>
>>>>
>>>> }
>>>>
>>>>
>>>> sub by_number {
>>>> if ($a < $b) {
>>>> -1;
>>>> } elsif ($a == $b) {
>>>> 0;
>>>> } elsif ($a > $b) {
>>>> 1;
>>>> }
>>>> }
>>>>
>>>> sub process_input {
>>>>
>>>> $status = 0;
>>>> $debug = 0;
>>>> while ( <INPUT> ) {
>>>> $string = $_;
>>>>
>>>> print $_ if ( ! /NB-upda/ && $debug );
>>>>
>>>> if (/A V E R A G E S/) {
>>>> $averages = 1;
>>>> ($averages_over) = /.*O V E R.*(\d*).*S T E P S/;
>>>> }
>>>>
>>>> $rms = 1 if (/R M S/);
>>>>
>>>> if (/NSTEP/) {
>>>> ($time, $temp, $pres) =
>>>> /NSTEP =.*TIME.* =(.*\d*\.\d*).*TEMP.* =(.*\d*\.\d*).*PRESS =
>>>> (.*\d*\.\d*)/;
>>>> if ( $debug ) {
>>>> print $_;
>>>> print "time is $time, temp is $temp, pres is $pres\n";
>>>> }
>>>> $_ = <INPUT>;
>>>>
>>>> if (/Etot/) {
>>>> ($etot, $ektot, $eptot) =
>>>>
>>>> /Etot.*=(.*\d*\.\d*).*EKtot.*=(.*\d*\.\d*).*EPtot.*=(.*\d*\.\d*)/;
>>>> if ( $debug ) {
>>>> print $_;
>>>> print "Etot is $etot, ektot is $ektot, eptot is $eptot\n";
>>>> }
>>>> $_ = <INPUT>;
>>>> }
>>>> if (/BOND.*ANGLE.*DIHED/) {
>>>> ($bond, $angle, $dihedral) =
>>>>
>>>> /BOND.*=(.*\d*\.\d*).*ANGLE.*=(.*\d*\.\d*).*DIHED.*=(.*\d*\.\d*)/;
>>>> if ( $debug ) {
>>>> print $_;
>>>> print "bond is $bond, angle is $angle, dihedral is
>>>> $dihedral\n";
>>>> }
>>>> $_ = <INPUT>;
>>>> }
>>>> if (/1-4 NB/) {
>>>> ($nb14, $eel14, $nb) =
>>>> /1-4 NB.*=(.*\d*\.\d*).*1-4
>>>> EEL.*=(.*\d*\.\d*).*VDWAALS.*=(.*\d*\.\d*)/;
>>>> if ( $debug ) {
>>>> print $_;
>>>> print "nb14 is $nb14, eel14 is $eel14, vdwaals is $nb\n";
>>>> }
>>>> $_ = <INPUT>;
>>>> }
>>>> if (/EELEC/) {
>>>> ($eel, $ehbond, $constraint) =
>>>>
>>>> /EELEC.*=(.*\d*\.\d*).*EHBOND.*=(.*\d*\.\d*).*CONSTRAINT.*=(.*\d*\.\d*)/;
>>>> if ( $debug ) {
>>>> print $_;
>>>> print "eel is $eel, ehbond is $ehbond, constraint is
>>>> $constraint\n";
>>>> }
>>>> $_ = <INPUT>;
>>>> #
>>>> # check to see if EAMBER is in the mdout file (present when
>>>> # NTR=1)
>>>> #
>>>> if ( /EAMBER/ ) {
>>>> $_ = <INPUT>;
>>>> }
>>>> }
>>>> if (/EKCMT/) {
>>>> ($ekcmt, $virial, $volume) =
>>>>
>>>> /EKCMT.*=(.*\d*\.\d*).*VIRIAL.*=(.*\d*\.\d*).*VOLUME.*=(.*\d*\.\d*)/;
>>>> if ( $debug ) {
>>>> print $_;
>>>> print "Ekcmt is $ekcmt, virial is $virial, volume is
>>>> $volume\n";
>>>> }
>>>> $_ = <INPUT>;
>>>> }
>>>> if (/T_SOLUTE/) {
>>>> ($tsolute, $tsolvent) =
>>>> /T_SOLUTE =(.*\d*\.\d*).*T_SOLVENT =(.*\d*\.\d*)/;
>>>> if ( $debug ) {
>>>> print $_;
>>>> print "Temp solute is $tsolute, temp solvent is $tsolvent\n";
>>>> }
>>>> $_ = <INPUT>;
>>>> }
>>>>
>>>> if (/Density/) {
>>>> ($density) = /.*Density.*=(.*\d*\.\d*)/;
>>>> if ( $debug ) {
>>>> print $_;
>>>> print "Density is $density\n";
>>>> }
>>>> $_ = <INPUT>;
>>>> }
>>>>
>>>> if (/Etot/) {
>>>> ($etot, $ektot, $eptot) =
>>>>
>>>> /Etot.*=(.*\d*\.\d*).*EKtot.*=(.*\d*\.\d*).*EPtot.*=(.*\d*\.\d*)/;
>>>> if ( $debug ) {
>>>> print $_;
>>>> print "Etot is $etot, ektot is $ektot, eptot is $eptot\n";
>>>> }
>>>> $_ = <INPUT>;
>>>> }
>>>> if (/ESCF/) {
>>>> ($escf) =
>>>> /.*ESCF.*=(.*\d*\.\d*)/;
>>>> if ( $debug ) {
>>>> print $_;
>>>> print "ESCF is $escf\n";
>>>> }
>>>> $_ = <INPUT>;
>>>> }
>>>>
>>>> # update arrays
>>>>
>>>> if ( $averages == 1 ) {
>>>> $AVG_TIME{$time} = $time;
>>>> $AVG_TEMP{$time} = $temp;
>>>> $AVG_PRES{$time} = $pres;
>>>> $AVG_ETOT{$time} = $etot;
>>>> $AVG_EKTOT{$time} = $ektot;
>>>> $AVG_EPTOT{$time} = $eptot;
>>>> $AVG_BOND{$time} = $bond;
>>>> $AVG_ANGLE{$time} = $angle;
>>>> $AVG_DIHEDRAL{$time} = $dihedral;
>>>> $AVG_NB14{$time} = $nb14;
>>>> $AVG_EEL14{$time} = $eel14;
>>>> $AVG_NB{$time} = $nb;
>>>> $AVG_EEL{$time} = $eel;
>>>> $AVG_EHBOND{$time} = $ehbond;
>>>> $AVG_CONSTRAINT{$time} = $constraint;
>>>> $AVG_EKCMT{$time} = $ekcmt;
>>>> $AVG_VIRIAL{$time} = $virial;
>>>> $AVG_VOLUME{$time} = $volume;
>>>> $AVG_TSOLUTE{$time} = $tsolute;
>>>> $AVG_TSOLVENT{$time} = $tsolvent;
>>>> $AVG_DENSITY{$time} = $density;
>>>> $AVG_ESCF{$time} = $escf;
>>>> $averages = 0;
>>>> } elsif ( $rms == 1 ) {
>>>> $RMS_TIME{$time} = $time;
>>>> $RMS_TEMP{$time} = $temp;
>>>> $RMS_PRES{$time} = $pres;
>>>> $RMS_ETOT{$time} = $etot;
>>>> $RMS_EKTOT{$time} = $ektot;
>>>> $RMS_EPTOT{$time} = $eptot;
>>>> $RMS_BOND{$time} = $bond;
>>>> $RMS_ANGLE{$time} = $angle;
>>>> $RMS_DIHEDRAL{$time} = $dihedral;
>>>> $RMS_NB14{$time} = $nb14;
>>>> $RMS_EEL14{$time} = $eel14;
>>>> $RMS_NB{$time} = $nb;
>>>> $RMS_EEL{$time} = $eel;
>>>> $RMS_EHBOND{$time} = $ehbond;
>>>> $RMS_CONSTRAINT{$time} = $constraint;
>>>> $RMS_EKCMT{$time} = $ekcmt;
>>>> $RMS_VIRIAL{$time} = $virial;
>>>> $RMS_VOLUME{$time} = $volume;
>>>> $RMS_TSOLUTE{$time} = $tsolute;
>>>> $RMS_TSOLVENT{$time} = $tsolvent;
>>>> $RMS_DENSITY{$time} = $density;
>>>> $RMS_ESCF{$time} = $escf;
>>>>
>>>> $rms = 0;
>>>> } else {
>>>> $TIME{$time} = $time;
>>>> $TEMP{$time} = $temp;
>>>> $PRES{$time} = $pres;
>>>> $ETOT{$time} = $etot;
>>>> $EKTOT{$time} = $ektot;
>>>> $EPTOT{$time} = $eptot;
>>>> $BOND{$time} = $bond;
>>>> $ANGLE{$time} = $angle;
>>>> $DIHEDRAL{$time} = $dihedral;
>>>> $NB14{$time} = $nb14;
>>>> $EEL14{$time} = $eel14;
>>>> $NB{$time} = $nb;
>>>> $EEL{$time} = $eel;
>>>> $EHBOND{$time} = $ehbond;
>>>> $CONSTRAINT{$time} = $constraint;
>>>> $EKCMT{$time} = $ekcmt;
>>>> $VIRIAL{$time} = $virial;
>>>> $VOLUME{$time} = $volume;
>>>> $TSOLUTE{$time} = $tsolute;
>>>> $TSOLVENT{$time} = $tsolvent;
>>>> $DENSITY{$time} = $density;
>>>> $ESCF{$time} = $escf;
>>>> }
>>>>
>>>> }
>>>> }
>>>> }
>>>>
>>>> But after running this perl script on the output files I got graph
>>>> displaying half values of output files as attached here. Can anybody
>>> guide
>>>> me whats wrong with the perl graph or my input file as my output files
>>> are
>>>> printing all values for energy but perl script plot half values???
>>>>
>>>>
>>>>
>>>> Sent from Mail for Windows 10
>>>>
>>>>
>>>> _______________________________________________
>>>> AMBER mailing list
>>>> AMBER.ambermd.org
>>>> http://lists.ambermd.org/mailman/listinfo/amber
>>>>
>>>>
>>> _______________________________________________
>>> AMBER mailing list
>>> AMBER.ambermd.org
>>> http://lists.ambermd.org/mailman/listinfo/amber
>>> _______________________________________________
>>> AMBER mailing list
>>> AMBER.ambermd.org
>>> http://lists.ambermd.org/mailman/listinfo/amber
>>>
>> _______________________________________________
>> AMBER mailing list
>> AMBER.ambermd.org
>> http://lists.ambermd.org/mailman/listinfo/amber
>> _______________________________________________
>> AMBER mailing list
>> AMBER.ambermd.org
>> http://lists.ambermd.org/mailman/listinfo/amber
>
> _______________________________________________
> AMBER mailing list
> AMBER.ambermd.org
> http://lists.ambermd.org/mailman/listinfo/amber
> _______________________________________________
> AMBER mailing list
> AMBER.ambermd.org
> http://lists.ambermd.org/mailman/listinfo/amber


_______________________________________________
AMBER mailing list
AMBER.ambermd.org
http://lists.ambermd.org/mailman/listinfo/amber
Received on Sun Mar 20 2016 - 22:30:04 PDT
Custom Search