import redis from configure import DAILY_MAP_NUMBER, MIN_FASTQ_FILE_SIZE, RNA_SEQ_INFO_FILE, DOWNLOADED_SRA_ID_LOG_FILE, IGNORED_SRA_ID_LOG_FILE, UPDATE_NETWORK_LOG_FILE, MAPPED_RDATA_DIR, RAW_RDATA_DIR, SALMON_MAP_RESULT_DIR, REDIS_CHANNEL import json, glob, os, time from datetime import datetime def publish(mapped_files): redis_host = os.getenv('REDIS_HOST', '127.0.0.1') redis_password = os.getenv('REDIS_PASSWORD', '123456') print(redis_password) r = redis.Redis(host=redis_host, port=6379, password=redis_password, db=0) r.publish(REDIS_CHANNEL, json.dumps({'filename':'REDIS_START.txt', 'data':str(datetime.now())})) for fname in mapped_files: print(fname) try: file_basename = os.path.basename(fname) with open(fname, 'r') as f: data = f.read() r.publish(REDIS_CHANNEL, json.dumps({'filename':file_basename, 'data':data})) time.sleep(3) except Exception as e: print(f'ERROR {e}') r.publish(REDIS_CHANNEL, json.dumps({'filename':'REDIS_ERROR.txt', 'data':str(e)})) # after mapping is finished, move all resulting files to MAPPED_RDATA_DIR mapped_files = glob.glob('%s/*_quant.txt' % (SALMON_MAP_RESULT_DIR.rstrip('/'))) print(mapped_files) publish(mapped_files) if mapped_files != []: cmd = 'mv %s/*_quant.txt %s' % (SALMON_MAP_RESULT_DIR.rstrip('/'), MAPPED_RDATA_DIR) os.system(cmd) print('[download_and_map.py] Done. Check directory %s.' % (os.path.abspath(MAPPED_RDATA_DIR))) else: print('[download_and_map.py] No quant files to move.')