Changeset 1044 in parammd


Ignore:
Timestamp:
Jul 21, 2016, 4:39:07 PM (5 years ago)
Author:
alexey
Message:

Added energy plot. Plus corrected all logical scenarios. output everything available at time of MD simulation carsh..

Files:
2 edited

Legend:

Unmodified
Added
Removed
  • bin/parammd.py

    r1043 r1044  
    230230        message_box(warning_str,'warning.png')
    231231        exit()
     232
     233if 'md_options' not in json_variables:
     234    if 'analysis_options_evolutions' in json_variables:
     235        warning_str = "<p> Error:  </p> MD simulation has to be run before Trajectory Analysis! <p> </p>"
     236        message_box(warning_str,'warning.png')
     237        exit()
     238
    232239
    233240#### PDB transformations #########################################
     
    808815    stdout_namdmd = os.fdopen(master_namdmd, 'r', 0)
    809816    namdmd_log = open('namdmd_log.out','w')
     817    temp_plot  = open('temperature_plot.dat','w')
     818    totenergy_plot  = open('totalenergy_plot.dat','w')
    810819    time_temperature_array = []
    811820    time_array = []
    812821    temperature_array = []
     822    totenergy_array = []
     823    time_totenergy_array = []
     824
     825    error_string_md = ''
    813826
    814827    while True:
     
    831844                        time_array.append(float(OutArr[1]))
    832845                        temperature_array.append(float(OutArr[12]))
    833 
     846                        temperature_string = str(float(OutArr[1])) + "\t" + str(float(OutArr[12]))
     847                        print >> temp_plot, temperature_string
     848                        # TOT_ENERGY
     849                        time_totenergy_array.append([float(OutArr[1]),float(OutArr[11])])
     850                        totenergy_array.append(float(OutArr[11]))
     851                        totenergy_string = str(float(OutArr[1])) + "\t" + str(float(OutArr[11]))
     852                        print >> totenergy_plot, totenergy_string
     853               
     854                if "ERROR:" in output:
     855                    socket_dict["_textarea"] = output#.strip()
     856                    error_string_md += "<p>" + output + "</p>"
     857                   
    834858                if socket_dict:
    835859                    doc_string = json.dumps(socket_dict)
     
    852876    output_res[ 'progress_text' ] = 'MD Simulation Progress: 100%'
    853877
     878    if error_string_md:
     879        warning_str = "<p> Error:  </p> MD simulation terminated with the following error(s): <p> </p>" + error_string_md + "<p> Exiting... </p>"
     880        message_box(warning_str,'warning.png')
     881        output_res[ 'error' ] = 'MD simulation crashed. See the log file...'
     882        base_dir = json_variables[ '_base_directory' ]
     883
     884        output_basename = ''
     885        outpdb_view = ''
     886       
     887        if 'add_waterbox' in json_variables:
     888            output_basename = 'step2_solvator'
     889            outpdb_view = output_basename
     890            if 'min_options' in json_variables:
     891                shutil.copy('namd_out_whole_min.coor', 'namd_out_whole_min.pdb')
     892                outpdb_view = 'namd_out_whole_min'
     893        else:
     894            output_basename = 'step1_pdbreader'
     895            outpdb_view = output_basename
     896
     897        outpdb = str(base_dir) + "/" + output_basename + ".pdb"
     898        outcrd = str(base_dir) + "/" + output_basename + ".crd"
     899        outpsf = str(base_dir) + "/" + output_basename + ".psf"
     900        outxplorpsf = str(base_dir) + "/" + output_basename + ".xplor.psf"
     901       
     902        outpdb_atomic_view = str(base_dir) + "/" + outpdb_view + ".pdb"
     903       
     904        output_res[ 'outputpdb' ] = str(outpdb)
     905        output_res[ 'outputcrd' ] = str(outcrd)
     906        output_res[ 'outputpsf' ] = str(outpsf)
     907        output_res[ 'outputxplorpsf' ] = str(outxplorpsf)
     908       
     909        outputmin_arr_files = []
     910        outputmin_arr_files.append(str(base_dir) + "/" + 'namd_out_whole_min' + ".coor")
     911        #outputmin_arr_files.append(str(base_dir) + "/" + 'namd_out_whole_min' + ".vel")
     912
     913        outputmd_arr_files = []
     914       
     915        dcd_path =  str(base_dir) + "/" + "namd_equil.dcd"
     916        vel_path =  str(base_dir) + "/" + "namd_out_equil.restart.vel"
     917        coor_path = str(base_dir) + "/" + "namd_out_equil.restart.coor"
     918        xsc_path =  str(base_dir) + "/" + "namd_out_equil.restart.xsc"
     919        xst_path =  str(base_dir) + "/" + "namd_out_equil.xst"
     920
     921        if os.path.exists(dcd_path):
     922            outputmd_arr_files.append(dcd_path)
     923        if os.path.exists(vel_path):
     924            outputmd_arr_files.append(vel_path)
     925        if os.path.exists(coor_path):
     926            outputmd_arr_files.append(coor_path)
     927        if os.path.exists(xsc_path):
     928            outputmd_arr_files.append(xsc_path)
     929        if os.path.exists(xst_path):
     930            outputmd_arr_files.append(xst_path)
     931        #outputmd_arr_files.append(str(base_dir) + "/" + "namd_out_equil.vel")
     932        #outputmd_arr_files.append(str(base_dir) + "/" + "namd_out_equil.coor")
     933        #outputmd_arr_files.append(str(base_dir) + "/" + "namd_out_equil.xsc")
     934        #outputmd_arr_files.append(str(base_dir) + "/" + "namd_out_equil.xst")
     935        outputmd_arr_files.append(str(base_dir) + "/" + "namdmd_log.out")
     936
     937        if 'md_options' in json_variables:
     938            output_res[ 'outputmd' ] = outputmd_arr_files
     939 
     940        if 'min_options' in json_variables:
     941            output_res[ 'outputmin' ] = outputmin_arr_files
     942
     943        output_res[ 'outputpdb_view' ] = str(outpdb_atomic_view)
     944
     945        print json.dumps( output_res )
     946        exit()
     947
     948
    854949#################################################################
    855950base_dir = json_variables[ '_base_directory' ]
     
    9441039            if output:
    9451040                socket_dict["_textarea"] = output#.strip()
    946                                
     1041                #socket_dict["_textarea"] = ""
    9471042                if "Processing file" in output:
    9481043                    OutArr = re.split(r'[\s]*', output)
     
    9721067   
    9731068#### OUTPUT PLOTS #################################################
    974 
    975 if 'analysis_options_temperature' in json_variables:
     1069#### TEMPERATURE PLOT #######################################################
     1070if 'analysis_options_evolutions_temperature' in json_variables:
    9761071   
    9771072    min_x = min(time_array)
     
    9801075    max_y = max(temperature_array)
    9811076
    982     flot_data = {
     1077    flot_data_temperature = {
    9831078        "options":
    9841079        {
     
    9901085            "ymax"   : max_y,
    9911086            "xlabel" : "Time, steps",
    992             "ylabel" : "T, K",
     1087            "ylabel" : "T(K)",
    9931088            "legend" :
    9941089            {
     
    10021097    }
    10031098   
    1004     data_label = "Temperature"
    1005     current_set_data = {
     1099    data_label_temperature = "Temperature"
     1100    current_set_data_temperature = {
    10061101        "points"  : { "show" : "true" },
    10071102        "lines"  :  { "show" : "true" },
    1008         "label"  : data_label,
     1103        "label"  : data_label_temperature,
    10091104        "data"   : time_temperature_array
    10101105    }
    1011     flot_data['data'].append(current_set_data)
    1012    
    1013     output_res[ 'temperature_plot' ] = flot_data
     1106    flot_data_temperature['data'].append(current_set_data_temperature)
     1107   
     1108    output_res[ 'temperature_plot' ] = flot_data_temperature
     1109
     1110## ENERGY PLOT #######################################################
     1111if 'analysis_options_evolutions_totenergy' in json_variables:
     1112   
     1113    min_x = min(time_array)
     1114    min_y = min(totenergy_array)
     1115    max_x = max(time_array)
     1116    max_y = max(totenergy_array)
     1117
     1118    flot_data_totenergy = {
     1119        "options":
     1120        {
     1121            #"xscale" : "log",
     1122            #"yscale" : "log",
     1123            "xmin"   : min_x,
     1124            "xmax"   : max_x,
     1125            "ymin"   : min_y,
     1126            "ymax"   : max_y,
     1127            "xlabel" : "Time, steps",
     1128            "ylabel" : "Energy (kcal/mol)",
     1129            "legend" :
     1130            {
     1131                "backgroundOpacity"   : 0.2,
     1132                "labelBoxBorderColor" : "black",
     1133                "position"            : "ne",
     1134                "margin"              : [0, -22]
     1135            },
     1136        },
     1137        "data": [ ]
     1138    }
     1139   
     1140    data_label_totenergy = "Total Energy"
     1141    current_set_data_totenergy = {
     1142        "points"  : { "show" : "true" },
     1143        "lines"  :  { "show" : "true" },
     1144        "label"  : data_label_totenergy,
     1145        "data"   : time_totenergy_array
     1146    }
     1147    flot_data_totenergy['data'].append(current_set_data_totenergy)
     1148   
     1149    output_res[ 'totenergy_plot' ] = flot_data_totenergy
     1150
     1151### Analysis Plots results ######################################
     1152
     1153outputanalysis_arr_files = []
     1154outputanalysis_arr_files.append(str(base_dir) + "/" + "temperature_plot.dat")
     1155outputanalysis_arr_files.append(str(base_dir) + "/" + "totalenergy_plot.dat")
     1156
     1157output_res[ 'outputanalysis' ] = outputanalysis_arr_files
    10141158
    10151159##################################################################
  • modules/param_test.json

    r1042 r1044  
    232232                   "default"  : ""
    233233               },
    234                {
    235                      "role"     : "input", 
    236                      "id"       : "analysis_options_temperature",
    237                      "label"    : "Show Temperature Plot?",
    238                      "type"     : "checkbox", 
    239                      "checked"  : "false",
    240                      "required" : "false",
     234              {
     235                     "role"     : "input", 
     236                     "id"       : "analysis_options_evolutions",
     237                     "label"    : "Evolution of Macroscopic Parameters",
     238                     "type"     : "checkbox", 
     239                     "checked"  : "false",
     240                     "required" : "false",
     241                     "repeater" : "yes",
    241242                     "help"     : "help"
    242                  },     
    243 
     243                 },             
     244               {
     245                     "role"     : "input", 
     246                     "id"       : "analysis_options_evolutions_temperature",
     247                     "label"    : "Generate Temperature Plot?",
     248                     "type"     : "checkbox", 
     249                     "checked"  : "true",
     250                     "required" : "false",
     251                     "repeat"   : "analysis_options_evolutions",
     252                     "help"     : "help"
     253                 },     
     254               {
     255                     "role"     : "input", 
     256                     "id"       : "analysis_options_evolutions_totenergy",
     257                     "label"    : "Generate Total Enegry Plot?",
     258                     "type"     : "checkbox", 
     259                     "checked"  : "true",
     260                     "required" : "false",
     261                     "repeat"   : "analysis_options_evolutions",
     262                     "help"     : "help"
     263                 },     
    244264
    245265#####################################################################################################
     
    299319                   "multiple": "true"   
    300320                   },
     321                 
     322                   {
     323                   "role"  : "output",
     324                   "id"    : "outputanalysis",
     325                   "label" : "Analysis Results: ",
     326                   "type"  : "file",
     327                   "multiple": "true"   
     328                   },
     329       
    301330                 {
    302331                   "role"  : "output",
     
    330359                   "zoom"  : "true",
    331360                   "hover" : "true"
     361                   },
     362                   {
     363                   "role"  : "output",
     364                   "id"    : "totenergy_plot",
     365                   "label" : "Total Energy Evolution Plot:",
     366                   "type"  : "plot2d",
     367                   "height": "220px",
     368                   "width" : "450px",
     369                   "pan"   : "true",
     370                   "zoom"  : "true",
     371                   "hover" : "true"
    332372                   }
    333 
    334373                 ],
    335374# the executable will take inputs in order and produce output
Note: See TracChangeset for help on using the changeset viewer.