Mercurial > repos > pieterlukasse > nist_wrapper
diff nist_wrapper.py @ 7:165c22633081
adding log
author | pieter.lukasse@wur.nl |
---|---|
date | Thu, 22 Jan 2015 22:06:00 +0100 |
parents | e19a6fbcf1db |
children | 35e4707e0ac3 |
line wrap: on
line diff
--- a/nist_wrapper.py Thu Jan 22 21:52:00 2015 +0100 +++ b/nist_wrapper.py Thu Jan 22 22:06:00 2015 +0100 @@ -22,7 +22,7 @@ -def _prepare_NIST(uuid_value, nist_home_dir, nist_ini_file, spectrum_file, is_wine): +def _prepare_NIST(uuid_value, nist_home_dir, nist_ini_file, spectrum_file, is_wine, log_file): ''' executes the following steps: - copy nist_home_dir folder to nist_home_dir+_uuid @@ -48,6 +48,7 @@ utils.copy_file(spectrum_file, new_nist_home+"/spectrum_file.msp") + log_file.write("configuring NIST input...") # remove old file: os.remove(new_nist_home+"/MSSEARCH/AUTOIMP.MSD") with open(new_nist_home + "/MSSEARCH/AUTOIMP.MSD", "a") as text_file: @@ -70,6 +71,7 @@ # remove old file os.remove(new_nist_home+"/MSSEARCH/nistms.INI") # make new one + log_file.write("configuring NIST ini...") o = open(new_nist_home+"/MSSEARCH/nistms.INI","a") #open for append # TODO : this loop/replace below is a bit limited to specific variables...either test different NIST versions or make more generic (harder in case of wine, or we need extra "home in .INI file" parameter): for line in open(nist_ini_file): @@ -83,7 +85,7 @@ return new_nist_home -def _run_NIST(new_nist_home, output_file, is_wine): +def _run_NIST(new_nist_home, output_file, is_wine, log_file): ''' - run : (wine) new_nist_home/MSSEARCH/nistms$.exe /INSTRUMENT /PAR=2 - monitor : new_nist_home/MSSEARCH/SRCREADY.TXT for content = "1" @@ -114,6 +116,7 @@ pro = "" if is_wine: + log_file.write("calling wine with " + exec_path) print "calling wine with " + exec_path cmd = ["wine "+ exec_path + " /INSTRUMENT /PAR=2"] # The os.setsid() is passed in the argument preexec_fn so @@ -130,6 +133,7 @@ timeSleeping = 0 # monitor process by checking state file: + log_file.write("monitoring SRCREADY.TXT...") while True and timeSleeping < 20: # check if SRCREADY.TXT is there already: if os.path.exists(file_to_monitor): @@ -141,6 +145,7 @@ #p.terminate() - not needed, nistm$ will terminate...nistms.exe is the one that #stays open...and orphan..killing it: + log_file.write("killing wine process...") if is_wine: # pid = utils.get_process_pid("nistms.exe") # os.kill(pid, 9) @@ -287,21 +292,23 @@ spectrum_file = sys.argv[3] nist_output_file = sys.argv[4] final_output_file = sys.argv[5] + output_log_file = sys.argv[6] # html report pars: output_html_report = None output_html_report_files_path = None - if len(sys.argv) > 6: - output_html_report = sys.argv[6] - output_html_report_files_path = sys.argv[7] + if len(sys.argv) > 7: + output_html_report = sys.argv[7] + output_html_report_files_path = sys.argv[8] is_wine = False if "wine" in nist_home_dir: is_wine = True uuid_value = str(uuid.uuid4()) + log_file = open(output_log_file,'w') # prepare NIST environment for running: - new_nist_home = _prepare_NIST(uuid_value, nist_home_dir, nist_ini_file, spectrum_file, is_wine) + new_nist_home = _prepare_NIST(uuid_value, nist_home_dir, nist_ini_file, spectrum_file, is_wine, log_file) # run NIST search command: _run_NIST(new_nist_home, nist_output_file, is_wine) @@ -316,6 +323,7 @@ _create_html_report(output_html_report, output_html_report_files_path, hits_dict, spectra_dict) + log_file.close() #_save_data(enriched_data, headers, output_result) seconds_end = int(round(time.time()))