# Utility functions # Purpose: check what new edges have been created today. # Created by Hui on 20 July 2021 def get_edge_set(fname): result = set() with open(fname) as f: for line in f: line = line.strip() lst = line.split('\t') if len(lst) == 10: target_id = lst[0].split()[0].upper() tf_id = lst[1].split()[0].upper() result.add(target_id + '_' + tf_id) return result def make_new_edges_file(Sold, Snew, fname_new, output_file): Sdiff = Snew.difference(Sold) result = [] with open(fname_new) as f: for line in f: line = line.strip() lst = line.split('\t') if len(lst) == 10: target_id = lst[0].split()[0].upper() tf_id = lst[1].split()[0].upper() if target_id + '_' + tf_id in Sdiff: # this is a new edge line, keep it result.append(line) with open(output_file, 'w') as f: header = '\t'.join(['target_id target_name', 'source_id source_name', 'score', 'type of score', 'RNA-seqs', 'ChIP-seq', 'Log likelihood', 'Date', 'Strength', 'Inference method']) + '\n' f.write(header) for line in result: f.write(line + '\n') if __name__ == '__main__': S2 = get_edge_set('/home/lanhui/brain/Data/temp/edges.txt') S1 = get_edge_set('/home/lanhui/brain/Data/temp/edges.txt.old') make_new_edges_file(S1, S2, '/home/lanhui/brain/Data/temp/edges.txt', 'mynewedges.txt')