From aa3ee5248a54303a774ac2ce2951e502a64a4d1b Mon Sep 17 00:00:00 2001 From: Sumedha Sanjeev Date: Thu, 29 Aug 2024 11:30:31 -0500 Subject: [PATCH 01/30] generate_input changes --- config/config.yaml | 25 ++++++------------------- spras/omicsintegrator1.py | 17 ++++++++++++++++- 2 files changed, 22 insertions(+), 20 deletions(-) diff --git a/config/config.yaml b/config/config.yaml index b87bcd45..761a824a 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -45,7 +45,7 @@ container_registry: algorithms: - name: "pathlinker" params: - include: true + include: false run1: k: range(100,201,100) @@ -59,7 +59,7 @@ algorithms: - name: "omicsintegrator2" params: - include: true + include: false run1: b: [4] g: [0] @@ -69,7 +69,7 @@ algorithms: - name: "meo" params: - include: true + include: false run1: max_path_length: [3] local_search: ["Yes"] @@ -77,18 +77,18 @@ algorithms: - name: "mincostflow" params: - include: true + include: false run1: flow: [1] # The flow must be an int capacity: [1] - name: "allpairs" params: - include: true + include: false - name: "domino" params: - include: true + include: false run1: slice_threshold: [0.3] module_threshold: [0.05] @@ -108,14 +108,6 @@ datasets: other_files: [] # Relative path from the spras directory data_dir: "input" - - - label: data1 - # Reuse some of the same sources file as 'data0' but different network and targets - node_files: ["node-prizes.txt", "sources.txt", "alternative-targets.txt"] - edge_files: ["alternative-network.txt"] - other_files: [] - # Relative path from the spras directory - data_dir: "input" gold_standards: - @@ -126,11 +118,6 @@ gold_standards: data_dir: "input" # List of dataset labels to compare with the specific gold standard dataset dataset_labels: ["data0"] - - - label: gs1 - node_files: ["gs_nodes1.txt"] - data_dir: "input" - dataset_labels: ["data1", "data0"] # If we want to reconstruct then we should set run to true. # TODO: if include is true above but run is false here, algs are not run. diff --git a/spras/omicsintegrator1.py b/spras/omicsintegrator1.py index 16469924..2319a4c4 100644 --- a/spras/omicsintegrator1.py +++ b/spras/omicsintegrator1.py @@ -47,7 +47,7 @@ def write_conf(filename=Path('config.txt'), w=None, b=None, d=None, mu=None, noi """ class OmicsIntegrator1(PRM): - required_inputs = ['prizes', 'edges'] + required_inputs = ['prizes', 'edges', 'dummy_nodes'] @staticmethod def generate_inputs(data, filename_map): @@ -75,6 +75,11 @@ def generate_inputs(data, filename_map): # Omics Integrator already gives warnings for strange prize values, so we won't here node_df.to_csv(filename_map['prizes'],sep='\t',index=False,columns=['NODEID','prize'],header=['name','prize']) + print("DATA: NODE TABLE") + print(data.node_table.head()) + print("NODE DF") + print(node_df.head()) + # Get network file edges_df = data.get_interactome() @@ -82,6 +87,16 @@ def generate_inputs(data, filename_map): edges_df.to_csv(filename_map['edges'],sep='\t',index=False, columns=['Interactor1','Interactor2','Weight','Direction'], header=['protein1','protein2','weight','directionality']) + + # creates the dummy_nodes file + if node_df.contains_node_columns('dummy'): + dummy_df = node_df[node_df['dummy'] == True] # revisit this - where is this column being created? + # save as list of dummy nodes + dummy_df.to_csv(filename_map['dummy_nodes'], sep='\t', index=False, columns=['NODEID'], header=None) + else: + # create empty dummy file + with open(filename_map['dummy_nodes'], mode='w') as file: + pass # TODO add parameter validation From b6aebe6eff530e060893c78b202f76ba82806644 Mon Sep 17 00:00:00 2001 From: Sumedha Sanjeev Date: Sun, 1 Sep 2024 18:42:32 -0500 Subject: [PATCH 02/30] run() changes v1 --- spras/omicsintegrator1.py | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/spras/omicsintegrator1.py b/spras/omicsintegrator1.py index 2319a4c4..35fedb42 100644 --- a/spras/omicsintegrator1.py +++ b/spras/omicsintegrator1.py @@ -9,7 +9,7 @@ # TODO decide on default number of processes and threads -def write_conf(filename=Path('config.txt'), w=None, b=None, d=None, mu=None, noise=None, g=None, r=None): +def write_conf(filename=Path('config.txt'), w=None, b=None, d=None, mu=None, noise=None, g=None, r=None, dummy_mode=None): """ Write the configuration file for Omics Integrator 1 See https://github.com/fraenkel-lab/OmicsIntegrator#required-inputs @@ -32,6 +32,7 @@ def write_conf(filename=Path('config.txt'), w=None, b=None, d=None, mu=None, noi f.write(f'g = {g}\n') # not the same as g in Omics Integrator 2 if r is not None: f.write(f'r = {r}\n') + #TODO: if dummy_mode is not None: f.write('processes = 1\n') f.write('threads = 1\n') @@ -90,7 +91,7 @@ def generate_inputs(data, filename_map): # creates the dummy_nodes file if node_df.contains_node_columns('dummy'): - dummy_df = node_df[node_df['dummy'] == True] # revisit this - where is this column being created? + dummy_df = node_df[node_df['dummy'] == True] #TODO: revisit this - where is this column being created? # save as list of dummy nodes dummy_df.to_csv(filename_map['dummy_nodes'], sep='\t', index=False, columns=['NODEID'], header=None) else: @@ -104,7 +105,7 @@ def generate_inputs(data, filename_map): # TODO add reasonable default values # TODO document required arguments @staticmethod - def run(edges=None, prizes=None, dummy_mode=None, mu_squared=None, exclude_terms=None, + def run(edges=None, prizes=None, dummy_nodes=None, dummy_mode=None, mu_squared=None, exclude_terms=None, output_file=None, noisy_edges=None, shuffled_prizes=None, random_terminals=None, seed=None, w=None, b=None, d=None, mu=None, noise=None, g=None, r=None, container_framework="docker"): """ @@ -133,6 +134,19 @@ def run(edges=None, prizes=None, dummy_mode=None, mu_squared=None, exclude_terms bind_path, prize_file = prepare_volume(prizes, work_dir) volumes.append(bind_path) + # add dummy node file if dummy_mode is not None + if dummy_mode is not None: + if dummy_mode == 'file': + #TODO: needs to use dummy node file that was put in the dataset + # can't handle path to file + pass + # checks if dummy node file is not given + if dummy_nodes is None: + raise ValueError('Dummy node file is required if dummy_mode is given') + bind_path, dummy_file = prepare_volume(dummy_nodes, work_dir) + volumes.append(bind_path) + + out_dir = Path(output_file).parent # Omics Integrator 1 requires that the output directory exist out_dir.mkdir(parents=True, exist_ok=True) @@ -153,10 +167,12 @@ def run(edges=None, prizes=None, dummy_mode=None, mu_squared=None, exclude_terms '--msgpath', '/OmicsIntegrator/msgsteiner-1.3/msgsteiner', '--outpath', mapped_out_dir, '--outlabel', 'oi1'] + + # Add the dummy file argument if dummy_mode is enabled + if dummy_mode is not None and dummy_mode: + command.extend(['--dummy', dummy_file]) # Add optional arguments - if dummy_mode is not None: - command.extend(['--dummyMode', str(dummy_mode)]) if mu_squared is not None and mu_squared: command.extend(['--musquared']) if exclude_terms is not None and exclude_terms: From 333b5a0035078a10b6f8d49ced1771cd9b1a394e Mon Sep 17 00:00:00 2001 From: Sumedha Sanjeev Date: Sun, 1 Sep 2024 18:56:50 -0500 Subject: [PATCH 03/30] removing uneccesary changes --- spras/omicsintegrator1.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/spras/omicsintegrator1.py b/spras/omicsintegrator1.py index 35fedb42..ed539fc1 100644 --- a/spras/omicsintegrator1.py +++ b/spras/omicsintegrator1.py @@ -9,7 +9,7 @@ # TODO decide on default number of processes and threads -def write_conf(filename=Path('config.txt'), w=None, b=None, d=None, mu=None, noise=None, g=None, r=None, dummy_mode=None): +def write_conf(filename=Path('config.txt'), w=None, b=None, d=None, mu=None, noise=None, g=None, r=None): """ Write the configuration file for Omics Integrator 1 See https://github.com/fraenkel-lab/OmicsIntegrator#required-inputs @@ -32,7 +32,6 @@ def write_conf(filename=Path('config.txt'), w=None, b=None, d=None, mu=None, noi f.write(f'g = {g}\n') # not the same as g in Omics Integrator 2 if r is not None: f.write(f'r = {r}\n') - #TODO: if dummy_mode is not None: f.write('processes = 1\n') f.write('threads = 1\n') @@ -168,7 +167,7 @@ def run(edges=None, prizes=None, dummy_nodes=None, dummy_mode=None, mu_squared=N '--outpath', mapped_out_dir, '--outlabel', 'oi1'] - # Add the dummy file argument if dummy_mode is enabled + # add the dummy node file argument if dummy_mode is enabled if dummy_mode is not None and dummy_mode: command.extend(['--dummy', dummy_file]) From 516211cec620c2a79921c03ab2c3396460ba07bd Mon Sep 17 00:00:00 2001 From: Sumedha Sanjeev Date: Wed, 4 Sep 2024 10:29:04 -0500 Subject: [PATCH 04/30] some comments --- spras/omicsintegrator1.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/spras/omicsintegrator1.py b/spras/omicsintegrator1.py index ed539fc1..b825deb9 100644 --- a/spras/omicsintegrator1.py +++ b/spras/omicsintegrator1.py @@ -91,6 +91,9 @@ def generate_inputs(data, filename_map): # creates the dummy_nodes file if node_df.contains_node_columns('dummy'): dummy_df = node_df[node_df['dummy'] == True] #TODO: revisit this - where is this column being created? + # doesn't the oi1 code handle assigning what nodes are dummy nodes (in the forest code?) + # how do i get that output(?) to become a column in node_df + # save as list of dummy nodes dummy_df.to_csv(filename_map['dummy_nodes'], sep='\t', index=False, columns=['NODEID'], header=None) else: From e31a8bb9035593ae7486a8d34e4c49952e6b7060 Mon Sep 17 00:00:00 2001 From: Sumedha Sanjeev Date: Sun, 8 Sep 2024 16:56:59 -0500 Subject: [PATCH 05/30] changes to run() --- spras/omicsintegrator1.py | 33 +++++++++++++++++++-------------- 1 file changed, 19 insertions(+), 14 deletions(-) diff --git a/spras/omicsintegrator1.py b/spras/omicsintegrator1.py index b825deb9..6e13371a 100644 --- a/spras/omicsintegrator1.py +++ b/spras/omicsintegrator1.py @@ -49,6 +49,11 @@ def write_conf(filename=Path('config.txt'), w=None, b=None, d=None, mu=None, noi class OmicsIntegrator1(PRM): required_inputs = ['prizes', 'edges', 'dummy_nodes'] + #TODO: WHERE ARE WE SETTING DUMMY MODE IN CONFIG FILE??? + # ALGORITHMS OR DATASET (OTHER FILES)? + # if dummy_mode = file then is it going in other_files? + # what about the other three modes? + @staticmethod def generate_inputs(data, filename_map): """ @@ -90,10 +95,7 @@ def generate_inputs(data, filename_map): # creates the dummy_nodes file if node_df.contains_node_columns('dummy'): - dummy_df = node_df[node_df['dummy'] == True] #TODO: revisit this - where is this column being created? - # doesn't the oi1 code handle assigning what nodes are dummy nodes (in the forest code?) - # how do i get that output(?) to become a column in node_df - + dummy_df = node_df[node_df['dummy'] == True] # save as list of dummy nodes dummy_df.to_csv(filename_map['dummy_nodes'], sep='\t', index=False, columns=['NODEID'], header=None) else: @@ -136,18 +138,20 @@ def run(edges=None, prizes=None, dummy_nodes=None, dummy_mode=None, mu_squared=N bind_path, prize_file = prepare_volume(prizes, work_dir) volumes.append(bind_path) + # 4 dummy mode possibilities: + # 1. terminals -> connect the dummy node to all nodes that have been assigned prizes + # 2. all -> connect the dummy node to all nodes in the interactome i.e. full set of nodes in graph + # 3. others -> connect the dummy node to all nodes that are not terminal nodes i.e. nodes w/o prizes + # 4. file -> custom nodes - connect the dummy node to a specific list of nodes provided in a file + # add dummy node file if dummy_mode is not None if dummy_mode is not None: if dummy_mode == 'file': #TODO: needs to use dummy node file that was put in the dataset - # can't handle path to file - pass - # checks if dummy node file is not given - if dummy_nodes is None: - raise ValueError('Dummy node file is required if dummy_mode is given') - bind_path, dummy_file = prepare_volume(dummy_nodes, work_dir) - volumes.append(bind_path) - + bind_path, dummy_file = prepare_volume(dummy_nodes, work_dir) + volumes.append(bind_path) + #TODO: handle other 3 possibilities here? + # or is this handled in actual Oi1 code out_dir = Path(output_file).parent # Omics Integrator 1 requires that the output directory exist @@ -170,8 +174,9 @@ def run(edges=None, prizes=None, dummy_nodes=None, dummy_mode=None, mu_squared=N '--outpath', mapped_out_dir, '--outlabel', 'oi1'] - # add the dummy node file argument if dummy_mode is enabled - if dummy_mode is not None and dummy_mode: + # add the dummy node file argument if dummy_mode is file + #TODO: anything for the other 3 modes? + if dummy_mode is not None and dummy_mode == 'file': command.extend(['--dummy', dummy_file]) # Add optional arguments From 97951284e1b7ae0c6fb51522853217d37a746309 Mon Sep 17 00:00:00 2001 From: Sumedha Sanjeev Date: Sun, 8 Sep 2024 17:27:05 -0500 Subject: [PATCH 06/30] commenting my thoughts --- spras/omicsintegrator1.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/spras/omicsintegrator1.py b/spras/omicsintegrator1.py index 6e13371a..ac4592e3 100644 --- a/spras/omicsintegrator1.py +++ b/spras/omicsintegrator1.py @@ -54,6 +54,8 @@ class OmicsIntegrator1(PRM): # if dummy_mode = file then is it going in other_files? # what about the other three modes? + #TODO: need to change stuff in dataset.py for handling dummy column addition? + @staticmethod def generate_inputs(data, filename_map): """ @@ -147,11 +149,12 @@ def run(edges=None, prizes=None, dummy_nodes=None, dummy_mode=None, mu_squared=N # add dummy node file if dummy_mode is not None if dummy_mode is not None: if dummy_mode == 'file': - #TODO: needs to use dummy node file that was put in the dataset + # needs to use dummy node file that was put in the dataset bind_path, dummy_file = prepare_volume(dummy_nodes, work_dir) volumes.append(bind_path) #TODO: handle other 3 possibilities here? # or is this handled in actual Oi1 code + # other 2/3 modes just use prizes columns (except all which uses all nodes) out_dir = Path(output_file).parent # Omics Integrator 1 requires that the output directory exist From fc7d74667f4b95a533d1a7f4a5829ebb906a407c Mon Sep 17 00:00:00 2001 From: Sumedha Sanjeev Date: Wed, 11 Sep 2024 12:15:46 -0500 Subject: [PATCH 07/30] run() additions --- spras/omicsintegrator1.py | 27 +++++++++++---------------- 1 file changed, 11 insertions(+), 16 deletions(-) diff --git a/spras/omicsintegrator1.py b/spras/omicsintegrator1.py index ac4592e3..fc248a75 100644 --- a/spras/omicsintegrator1.py +++ b/spras/omicsintegrator1.py @@ -49,12 +49,7 @@ def write_conf(filename=Path('config.txt'), w=None, b=None, d=None, mu=None, noi class OmicsIntegrator1(PRM): required_inputs = ['prizes', 'edges', 'dummy_nodes'] - #TODO: WHERE ARE WE SETTING DUMMY MODE IN CONFIG FILE??? - # ALGORITHMS OR DATASET (OTHER FILES)? - # if dummy_mode = file then is it going in other_files? - # what about the other three modes? - - #TODO: need to change stuff in dataset.py for handling dummy column addition? + #TODO: edit generate_inputs to include NODEID (check notes) @staticmethod def generate_inputs(data, filename_map): @@ -146,15 +141,11 @@ def run(edges=None, prizes=None, dummy_nodes=None, dummy_mode=None, mu_squared=N # 3. others -> connect the dummy node to all nodes that are not terminal nodes i.e. nodes w/o prizes # 4. file -> custom nodes - connect the dummy node to a specific list of nodes provided in a file - # add dummy node file if dummy_mode is not None - if dummy_mode is not None: - if dummy_mode == 'file': + # add dummy node file to the volume if dummy_mode is not None and it is 'file' + if dummy_mode is not None and dummy_mode == 'file': # needs to use dummy node file that was put in the dataset bind_path, dummy_file = prepare_volume(dummy_nodes, work_dir) volumes.append(bind_path) - #TODO: handle other 3 possibilities here? - # or is this handled in actual Oi1 code - # other 2/3 modes just use prizes columns (except all which uses all nodes) out_dir = Path(output_file).parent # Omics Integrator 1 requires that the output directory exist @@ -177,10 +168,14 @@ def run(edges=None, prizes=None, dummy_nodes=None, dummy_mode=None, mu_squared=N '--outpath', mapped_out_dir, '--outlabel', 'oi1'] - # add the dummy node file argument if dummy_mode is file - #TODO: anything for the other 3 modes? - if dummy_mode is not None and dummy_mode == 'file': - command.extend(['--dummy', dummy_file]) + # add the dummy mode argument + if dummy_mode is not None and dummy_mode: + # for custom dummy modes, add the file + if dummy_mode == 'file': + command.extend(['--dummy', dummy_file]) + # else pass in the dummy_mode and let oi1 handle it + else: + command.extend(['--dummy', dummy_mode]) # Add optional arguments if mu_squared is not None and mu_squared: From 8934b4c669376a7f70782502233510abaeb9e677 Mon Sep 17 00:00:00 2001 From: Sumedha Sanjeev Date: Wed, 11 Sep 2024 12:31:34 -0500 Subject: [PATCH 08/30] generate_input() additions --- spras/omicsintegrator1.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/spras/omicsintegrator1.py b/spras/omicsintegrator1.py index fc248a75..90283475 100644 --- a/spras/omicsintegrator1.py +++ b/spras/omicsintegrator1.py @@ -49,7 +49,7 @@ def write_conf(filename=Path('config.txt'), w=None, b=None, d=None, mu=None, noi class OmicsIntegrator1(PRM): required_inputs = ['prizes', 'edges', 'dummy_nodes'] - #TODO: edit generate_inputs to include NODEID (check notes) + #TODO: TEST !!!!! + test files?? @staticmethod def generate_inputs(data, filename_map): @@ -94,7 +94,7 @@ def generate_inputs(data, filename_map): if node_df.contains_node_columns('dummy'): dummy_df = node_df[node_df['dummy'] == True] # save as list of dummy nodes - dummy_df.to_csv(filename_map['dummy_nodes'], sep='\t', index=False, columns=['NODEID'], header=None) + dummy_df.to_csv(filename_map['dummy_nodes'], sep='\t', index=False, columns=['NODEID', 'dummy'], header=['NODEID', 'dummy']) else: # create empty dummy file with open(filename_map['dummy_nodes'], mode='w') as file: From e28d80182f6d2a16e38c48bc5e95194a23d73fc8 Mon Sep 17 00:00:00 2001 From: Sumedha Sanjeev Date: Fri, 20 Sep 2024 12:16:48 -0500 Subject: [PATCH 09/30] test files for dummy nodes + generate_input fixes --- config/config.yaml | 30 +- input/dummy.txt | 55 ++ input/modified_prize_05.txt | 1124 +++++++++++++++++++++++++++++++++++ spras/omicsintegrator1.py | 17 +- 4 files changed, 1204 insertions(+), 22 deletions(-) create mode 100644 input/dummy.txt create mode 100644 input/modified_prize_05.txt diff --git a/config/config.yaml b/config/config.yaml index 761a824a..6d2b4863 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -42,6 +42,9 @@ container_registry: # then myAlg will be run on (a=1,b=0.5),(a=1,b=0.75),(a=2,b=0.5), and (a=2,b=0,75). Pretty neat, but be # careful: too many parameters might make your runs take a long time. +# TODO: where does the dummy node argument go? +# i.e. where do i set dummy_mode = all, etc. + algorithms: - name: "pathlinker" params: @@ -56,6 +59,7 @@ algorithms: b: [5, 6] w: np.linspace(0,5,2) d: [10] + dummy_mode: ["file"] - name: "omicsintegrator2" params: @@ -100,24 +104,24 @@ algorithms: datasets: - # Labels can only contain letters, numbers, or underscores - label: data0 - node_files: ["node-prizes.txt", "sources.txt", "targets.txt"] + label: hivtest2 + node_files: ["modified_prize_05.txt", "dummy.txt"] # DataLoader.py can currently only load a single edge file, which is the primary network - edge_files: ["network.txt"] + edge_files: ["phosphosite-irefindex13.0-uniprot.txt"] # Placeholder other_files: [] # Relative path from the spras directory data_dir: "input" -gold_standards: - - - # Labels can only contain letters, numbers, or underscores - label: gs0 - node_files: ["gs_nodes0.txt"] - # edge_files: [] TODO: later iteration - data_dir: "input" - # List of dataset labels to compare with the specific gold standard dataset - dataset_labels: ["data0"] +# gold_standards: +# - +# # Labels can only contain letters, numbers, or underscores +# label: gs0 +# node_files: ["gs_nodes0.txt"] +# # edge_files: [] TODO: later iteration +# data_dir: "input" +# # List of dataset labels to compare with the specific gold standard dataset +# dataset_labels: ["data0"] # If we want to reconstruct then we should set run to true. # TODO: if include is true above but run is false here, algs are not run. @@ -160,4 +164,4 @@ analysis: # 'euclidean', 'manhattan', 'cosine' metric: 'euclidean' evaluation: - include: true + include: false diff --git a/input/dummy.txt b/input/dummy.txt new file mode 100644 index 00000000..535f50a7 --- /dev/null +++ b/input/dummy.txt @@ -0,0 +1,55 @@ +UBAC2_HUMAN +H37_HUMAN +PHF3_HUMAN +DDX52_HUMAN +HNRPK_HUMAN +Q5T5H1_HUMAN +ZC11A_HUMAN +TCPG_HUMAN +2A5E_HUMAN +CPNE2_HUMAN +HEYL_HUMAN +CAMP1_HUMAN +SVEP1_HUMAN +SPRL1_HUMAN +C9JFD3_HUMAN +THAP5_HUMAN +NCOR1_HUMAN +SKIL_HUMAN +A8YXX4_HUMAN +CO4A2_HUMAN +ZBTB3_HUMAN +MORC4_HUMAN +HIPK3_HUMAN +ZN200_HUMAN +TGFR1_HUMAN +Q2TU89_HUMAN +SUMO2_HUMAN +UBC9_HUMAN +AXIN1_HUMAN +RS27_HUMAN +UBP25_HUMAN +RN111_HUMAN +CBX4_HUMAN +B4E127_HUMAN +G4XH65_HUMAN +CPNE1_HUMAN +HDAC1_HUMAN +RNF4_HUMAN +SETB1_HUMAN +SMAD2_HUMAN +TRI62_HUMAN +FAF1_HUMAN +EF1G_HUMAN +AHNK_HUMAN +LRP1_HUMAN +UIMC1_HUMAN +B3KWV4_HUMAN +CDC27_HUMAN +RB_HUMAN +ZMYM2_HUMAN +WWP1_HUMAN +RU17_HUMAN +HIPK1_HUMAN +ZZEF1_HUMAN +SMAD4_HUMAN \ No newline at end of file diff --git a/input/modified_prize_05.txt b/input/modified_prize_05.txt new file mode 100644 index 00000000..bd3be433 --- /dev/null +++ b/input/modified_prize_05.txt @@ -0,0 +1,1124 @@ +NODEID prize +B0YIW2_HUMAN 5.029365599650682 +HTF4_HUMAN 4.582688156260696 +FETUA_HUMAN 4.027455886706566 +HBA_HUMAN 3.955817065609741 +KCRM_HUMAN 3.885427876677981 +B7ZKJ8_HUMAN 3.885427876677981 +H4_HUMAN 3.885427876677981 +FBLN1_HUMAN 3.885427876677981 +H3BLZ8_HUMAN 3.737659276683696 +MMTA2_HUMAN 3.645611351503717 +CL16A_HUMAN 3.645611351503717 +ALBU_HUMAN 3.495543593199523 +UBAC2_HUMAN 3.4400540448812222 +H37_HUMAN 3.4400540448812222 +PHF3_HUMAN 3.324208299637505 +DDX52_HUMAN 3.324208299637505 +TBA1B_HUMAN 3.324208299637505 +HNRPK_HUMAN 3.3188421301096285 +Q5T5H1_HUMAN 3.3188421301096285 +ZC11A_HUMAN 3.3188421301096285 +EPB41_HUMAN 3.3010716433184752 +LARP1_HUMAN 3.3010716433184752 +GLYR1_HUMAN 3.291925211826148 +ZC3HD_HUMAN 3.291925211826148 +TRFE_HUMAN 3.2382104940279395 +A0A0A0MTS7_HUMAN 3.238051370574229 +RL34_HUMAN 3.199587163788601 +HOMEZ_HUMAN 3.1604645579223023 +A2MG_HUMAN 3.1604645579223023 +ITIH2_HUMAN 3.144305136412102 +PLMN_HUMAN 3.1395052780156214 +PCLO_HUMAN 3.1395052780156214 +TRFL_HUMAN 3.1395052780156214 +NU153_HUMAN 3.1383736075715567 +HNRH3_HUMAN 3.1358609655646563 +H12_HUMAN 3.096027032739838 +A0A087WVP1_HUMAN 3.0343829212843927 +NDUA5_HUMAN 3.029621522802649 +PZP_HUMAN 3.029621522802649 +TRI32_HUMAN 3.029008185470572 +ITIH1_HUMAN 3.029008185470572 +TETN_HUMAN 3.029008185470572 +POSTN_HUMAN 3.029008185470572 +PTBP1_HUMAN 2.962566624533064 +PEDF_HUMAN 2.962566624533064 +A0A0G2JQJ7_HUMAN 2.962566624533064 +CO7_HUMAN 2.962566624533064 +CO3_HUMAN 2.962566624533064 +A2AP_HUMAN 2.962566624533064 +ANT3_HUMAN 2.9454736787752185 +THBG_HUMAN 2.938925530905134 +SRS10_HUMAN 2.829700827078314 +LCAP_HUMAN 2.829700827078314 +SRSF2_HUMAN 2.829700827078314 +LUZP1_HUMAN 2.829700827078314 +SP16H_HUMAN 2.829700827078314 +AGAP2_HUMAN 2.829700827078314 +A0A087X0X3_HUMAN 2.795249183187452 +C9JV77_HUMAN 2.7916197949376103 +H15_HUMAN 2.747877665335442 +A8MXP9_HUMAN 2.7306756910406835 +WBP11_HUMAN 2.7306756910406835 +RASL3_HUMAN 2.7306756910406835 +E9PCW1_HUMAN 2.7306756910406835 +APOA1_HUMAN 2.720750771925425 +A9Z1X7_HUMAN 2.7206557198521564 +MPZL1_HUMAN 2.7206557198521564 +PTN1_HUMAN 2.7206557198521564 +EIF3A_HUMAN 2.7053973652732437 +CO9_HUMAN 2.642270222720444 +DNLI1_HUMAN 2.62905096626394 +A0A087WX41_HUMAN 2.62527679827281 +RSRC2_HUMAN 2.62527679827281 +MAGD1_HUMAN 2.6037488593668185 +K4DI81_HUMAN 2.58545961733328 +TSP4_HUMAN 2.5781570496516366 +MCTP2_HUMAN 2.5739996934436533 +SRRM2_HUMAN 2.5599794882543963 +PHAX_HUMAN 2.55229335257594 +CCD86_HUMAN 2.5433868130220105 +T2AG_HUMAN 2.5153505347187397 +RBM14_HUMAN 2.51233260431366 +SNIP1_HUMAN 2.51233260431366 +RS10_HUMAN 2.4894305938870938 +PRC2C_HUMAN 2.4894305938870938 +JUPI1_HUMAN 2.48882925856076 +A0A075B738_HUMAN 2.481386971939166 +LYAR_HUMAN 2.481386971939166 +ABI1_HUMAN 2.481386971939166 +KPBB_HUMAN 2.481386971939166 +A0A0G2JPR0_HUMAN 2.460765792624727 +M0QYC1_HUMAN 2.432755782368094 +PHF2_HUMAN 2.415789642322741 +PRC2A_HUMAN 2.4140889675670696 +NEK4_HUMAN 2.4140889675670696 +TF2B_HUMAN 2.4140889675670696 +HJURP_HUMAN 2.4140889675670696 +STMN1_HUMAN 2.4140889675670696 +GELS_HUMAN 2.4104977645875323 +RAI1_HUMAN 2.407172399141249 +TTC4_HUMAN 2.380388595749011 +FA53C_HUMAN 2.349945242744137 +H0Y5F5_HUMAN 2.3235758982106964 +TBB4A_HUMAN 2.323008637528439 +HMHA1_HUMAN 2.320724815309965 +LEUK_HUMAN 2.3002413241447117 +RRP12_HUMAN 2.296341778114889 +VTDB_HUMAN 2.287877464838444 +LMO7_HUMAN 2.283650895240041 +RNF25_HUMAN 2.283650895240041 +C10_HUMAN 2.281967707725145 +SKI2_HUMAN 2.281967707725145 +ATP4A_HUMAN 2.281967707725145 +TCF25_HUMAN 2.281967707725145 +TM160_HUMAN 2.2816943670374368 +ACINU_HUMAN 2.2724349590916813 +C9JYS8_HUMAN 2.2724349590916813 +TSP1_HUMAN 2.265610263847204 +PCM1_HUMAN 2.2486198914855287 +CLAP1_HUMAN 2.24046014360604 +A0A0C4DGB9_HUMAN 2.236380744008414 +TRA2B_HUMAN 2.2320502169087955 +HEBP2_HUMAN 2.2211603377352622 +GLE1_HUMAN 2.2142665101729357 +CUL4A_HUMAN 2.2123687456514425 +RB15B_HUMAN 2.208371655746705 +PHF8_HUMAN 2.20252042150617 +KI67_HUMAN 2.198038970223691 +H0Y449_HUMAN 2.195984606980593 +FEM1A_HUMAN 2.1906023175925395 +MY18A_HUMAN 2.175819836002309 +GBB3_HUMAN 2.175819836002309 +RBP56_HUMAN 2.153112950890257 +TBC13_HUMAN 2.1478379363448883 +SF3B1_HUMAN 2.1439001320846174 +AKT2_HUMAN 2.1439001320846174 +SLTM_HUMAN 2.1439001320846174 +RBM22_HUMAN 2.1439001320846174 +ATF7_HUMAN 2.1439001320846174 +ARC1A_HUMAN 2.1439001320846174 +NDUB8_HUMAN 2.114945948576723 +SENP1_HUMAN 2.114945948576723 +CD2AP_HUMAN 2.112392025090484 +CDK9_HUMAN 2.105059488765234 +S39AA_HUMAN 2.101534906059656 +NFAC1_HUMAN 2.101534906059656 +RB_HUMAN 2.100687896308613 +B7WPE2_HUMAN 2.100687896308613 +LS14A_HUMAN 2.100687896308613 +ATF2_HUMAN 2.100160602610354 +H14_HUMAN 2.096770743840173 +KAPCB_HUMAN 2.093004073260828 +NELFE_HUMAN 2.093004073260828 +NUCL_HUMAN 2.093004073260828 +ARFG2_HUMAN 2.093004073260828 +RL1D1_HUMAN 2.093004073260828 +IF16_HUMAN 2.093004073260828 +ZMYD8_HUMAN 2.093004073260828 +BD1L1_HUMAN 2.093004073260828 +SMG5_HUMAN 2.093004073260828 +GBRG2_HUMAN 2.093004073260828 +UBP1_HUMAN 2.093004073260828 +SPIR1_HUMAN 2.093004073260828 +CRTC1_HUMAN 2.093004073260828 +DBNL_HUMAN 2.093004073260828 +CTRO_HUMAN 2.093004073260828 +DDX5_HUMAN 2.093004073260828 +NCBP1_HUMAN 2.093004073260828 +ELL2_HUMAN 2.093004073260828 +TLE5_HUMAN 2.093004073260828 +ROA2_HUMAN 2.093004073260828 +CAP1_HUMAN 2.093004073260828 +NPM_HUMAN 2.093004073260828 +MCES_HUMAN 2.093004073260828 +E9PGC8_HUMAN 2.093004073260828 +RSRC1_HUMAN 2.093004073260828 +MARE2_HUMAN 2.093004073260828 +H2B1M_HUMAN 2.093004073260828 +TB182_HUMAN 2.093004073260828 +TR150_HUMAN 2.093004073260828 +J3QR29_HUMAN 2.093004073260828 +THOC5_HUMAN 2.093004073260828 +A0A096LP69_HUMAN 2.093004073260828 +NOLC1_HUMAN 2.093004073260828 +CCNT1_HUMAN 2.093004073260828 +A0A087X188_HUMAN 2.093004073260828 +A0A075B6G3_HUMAN 2.093004073260828 +RBMX_HUMAN 2.093004073260828 +IF4B_HUMAN 2.093004073260828 +ROA0_HUMAN 2.093004073260828 +T2FA_HUMAN 2.093004073260828 +WNK1_HUMAN 2.093004073260828 +MTCL2_HUMAN 2.093004073260828 +SRSF4_HUMAN 2.093004073260828 +TRIPC_HUMAN 2.093004073260828 +SNX17_HUMAN 2.093004073260828 +PCF11_HUMAN 2.093004073260828 +DC1L1_HUMAN 2.093004073260828 +VPS72_HUMAN 2.093004073260828 +MKRN2_HUMAN 2.093004073260828 +NKAP1_HUMAN 2.093004073260828 +L2GL1_HUMAN 2.093004073260828 +RS6_HUMAN 2.093004073260828 +SFSWA_HUMAN 2.093004073260828 +ULK1_HUMAN 2.093004073260828 +E9PN89_HUMAN 2.093004073260828 +SYMPK_HUMAN 2.093004073260828 +RS27A_HUMAN 2.093004073260828 +PRCC_HUMAN 2.093004073260828 +EDC3_HUMAN 2.093004073260828 +RRAGC_HUMAN 2.093004073260828 +TCOF_HUMAN 2.093004073260828 +F8W7T1_HUMAN 2.093004073260828 +PPM1H_HUMAN 2.093004073260828 +KI18B_HUMAN 2.093004073260828 +CE350_HUMAN 2.091231409713808 +KNL1_HUMAN 2.091231409713808 +CSKI2_HUMAN 2.091231409713808 +UBP24_HUMAN 2.091231409713808 +SIN3B_HUMAN 2.091231409713808 +AAAT_HUMAN 2.091231409713808 +PB1_HUMAN 2.091231409713808 +ARGL1_HUMAN 2.091231409713808 +CCD92_HUMAN 2.091231409713808 +E7EQT4_HUMAN 2.091231409713808 +BUD13_HUMAN 2.091231409713808 +FNBP4_HUMAN 2.091231409713808 +SUMO2_HUMAN 2.091231409713808 +ROAA_HUMAN 2.091231409713808 +MAST3_HUMAN 2.091231409713808 +UFL1_HUMAN 2.091231409713808 +GNL1_HUMAN 2.0892707200089293 +Q9HBD4_HUMAN 2.0892707200089293 +SF3B5_HUMAN 2.0844344915355792 +SEM4D_HUMAN 2.0844344915355792 +AN32B_HUMAN 2.081399852781724 +SCAF4_HUMAN 2.080073763404992 +SMRC2_HUMAN 2.0770885338720166 +NUMA1_HUMAN 2.0741363450505035 +UBE2T_HUMAN 2.0741363450505035 +E7EVA0_HUMAN 2.0741363450505035 +H9KVB4_HUMAN 2.0741363450505035 +E9PG73_HUMAN 2.0741363450505035 +OBI1_HUMAN 2.0741363450505035 +NCOA5_HUMAN 2.0741363450505035 +CUX1_HUMAN 2.0741363450505035 +MTOR_HUMAN 2.0741363450505035 +TPX2_HUMAN 2.0741363450505035 +ADDB_HUMAN 2.0741363450505035 +YTDC1_HUMAN 2.0741363450505035 +ARP19_HUMAN 2.0741363450505035 +LZTS1_HUMAN 2.0741363450505035 +SMRCD_HUMAN 2.0741363450505035 +SNW1_HUMAN 2.0741363450505035 +S39A7_HUMAN 2.0741363450505035 +PHB2_HUMAN 2.0741363450505035 +WBP4_HUMAN 2.0741363450505035 +SPD2B_HUMAN 2.0741363450505035 +AB1IP_HUMAN 2.0741363450505035 +DNJB2_HUMAN 2.0741363450505035 +TF3C1_HUMAN 2.0741363450505035 +PNM8A_HUMAN 2.0741363450505035 +COF1_HUMAN 2.0741363450505035 +IWS1_HUMAN 2.0741363450505035 +RHG01_HUMAN 2.0741363450505035 +PLEC_HUMAN 2.0741363450505035 +RN168_HUMAN 2.0741363450505035 +DDX21_HUMAN 2.0741363450505035 +NSD2_HUMAN 2.0741363450505035 +F5H7W8_HUMAN 2.0741363450505035 +PHF20_HUMAN 2.0741363450505035 +PR38B_HUMAN 2.0741363450505035 +MNX1_HUMAN 2.0741363450505035 +ELF1_HUMAN 2.0741363450505035 +ZC3C1_HUMAN 2.0741363450505035 +CTCF_HUMAN 2.0741363450505035 +E7ESS2_HUMAN 2.0741363450505035 +EPN4_HUMAN 2.0741363450505035 +RAB1A_HUMAN 2.0741363450505035 +TP53B_HUMAN 2.0741363450505035 +RBP2_HUMAN 2.0713486005782946 +RBM5_HUMAN 2.0713486005782946 +KMT2C_HUMAN 2.0713486005782946 +A0A087WUE4_HUMAN 2.0713486005782946 +T22D4_HUMAN 2.0713486005782946 +C9JCC6_HUMAN 2.070445474815505 +K2C1_HUMAN 2.070445474815505 +GRAP2_HUMAN 2.0694380337606075 +CBX5_HUMAN 2.0694380337606075 +ARI4A_HUMAN 2.0694380337606075 +CIR1_HUMAN 2.066314476087648 +TEX2_HUMAN 2.066247893108421 +TNR8_HUMAN 2.06313711752553 +BC11B_HUMAN 2.063074993592968 +G5E9I4_HUMAN 2.057475184452913 +AMPD2_HUMAN 2.057475184452913 +JIP4_HUMAN 2.057475184452913 +BAG4_HUMAN 2.057475184452913 +NAB1_HUMAN 2.057475184452913 +SCAFB_HUMAN 2.057475184452913 +2A5E_HUMAN 2.053529256826423 +CYTSA_HUMAN 2.053529256826423 +LIMA1_HUMAN 2.053529256826423 +DCP2_HUMAN 2.0479931944263523 +MCM4_HUMAN 2.0479931944263523 +BCLF1_HUMAN 2.047635344122845 +F110C_HUMAN 2.047635344122845 +CCAR2_HUMAN 2.047635344122845 +AAK1_HUMAN 2.047635344122845 +A0A0C4DGT3_HUMAN 2.047635344122845 +ARP10_HUMAN 2.047635344122845 +RHPN2_HUMAN 2.047635344122845 +TPIS_HUMAN 2.0443402002488544 +NU107_HUMAN 2.0437288702099448 +ARHG7_HUMAN 2.036554522091055 +NEK1_HUMAN 2.036554522091055 +SAC2_HUMAN 2.036554522091055 +HECD1_HUMAN 2.036554522091055 +A0A075B7F8_HUMAN 2.0258840676012166 +FKBP4_HUMAN 2.0258840676012166 +NUCKS_HUMAN 2.0238476248551227 +NOPC1_HUMAN 2.023668755442608 +TPD54_HUMAN 2.023668755442608 +LEMD2_HUMAN 2.019570825094521 +NFAC2_HUMAN 2.019474619149151 +ATIF1_HUMAN 2.0162849025813614 +CIAO1_HUMAN 2.0162849025813614 +TBP_HUMAN 2.0162849025813614 +CC020_HUMAN 2.0162849025813614 +LAR1B_HUMAN 2.0162849025813614 +MDN1_HUMAN 2.0162849025813614 +ABL2_HUMAN 2.010141366952319 +BTF3_HUMAN 2.0096256649264213 +J3QS41_HUMAN 2.0060888000963253 +SUGP1_HUMAN 2.00501153904742 +TSH1_HUMAN 2.00501153904742 +H0YLM1_HUMAN 2.004925899348196 +GOLP3_HUMAN 2.004925899348196 +TANC1_HUMAN 2.003893158665265 +DNMT1_HUMAN 2.001547002460393 +S26A2_HUMAN 2.001547002460393 +MSL1_HUMAN 2.001547002460393 +DDX23_HUMAN 2.001547002460393 +KLC4_HUMAN 2.001547002460393 +TOPK_HUMAN 2.001547002460393 +RFIP1_HUMAN 2.001547002460393 +4ET_HUMAN 2.001547002460393 +TAGL2_HUMAN 2.0000647481974987 +CAF1A_HUMAN 2.0000647481974987 +SMBP2_HUMAN 2.0000647481974987 +B7ZL14_HUMAN 1.999364734545024 +GON4L_HUMAN 1.999364734545024 +DDX3X_HUMAN 1.999364734545024 +MYC_HUMAN 1.995364993831002 +RPGF1_HUMAN 1.995364993831002 +CD7_HUMAN 1.9952164715454883 +APOB_HUMAN 1.9952164715454883 +CBPN_HUMAN 1.992890123029605 +GAPD1_HUMAN 1.9917206849966784 +RIF1_HUMAN 1.9917206849966784 +DEFI6_HUMAN 1.9917206849966784 +CHERP_HUMAN 1.9917206849966784 +PARN_HUMAN 1.9917206849966784 +NIPBL_HUMAN 1.9917206849966784 +S25A3_HUMAN 1.991375722886299 +KTNA1_HUMAN 1.991375722886299 +HMGN3_HUMAN 1.991375722886299 +RUFY1_HUMAN 1.9856617408191743 +DUS3_HUMAN 1.978294679290043 +PDS5A_HUMAN 1.9775401751552404 +HXB4_HUMAN 1.9750550166567504 +ICE1_HUMAN 1.9750550166567504 +SC61B_HUMAN 1.969143829670624 +CENPF_HUMAN 1.969143829670624 +H0YL70_HUMAN 1.968302933471068 +SC22B_HUMAN 1.960187609399384 +ZN644_HUMAN 1.9556137936327185 +OCAD2_HUMAN 1.9486769534370176 +NEXN_HUMAN 1.9481548894726344 +CE022_HUMAN 1.9480945422071272 +LASP1_HUMAN 1.9480945422071272 +ZC3H4_HUMAN 1.9470950307992143 +PCBP1_HUMAN 1.944984803261588 +UBP31_HUMAN 1.9445373394280647 +SETD2_HUMAN 1.9434305219033925 +FBX41_HUMAN 1.9434305219033925 +ZRAB2_HUMAN 1.9434305219033925 +CLAP2_HUMAN 1.9434305219033925 +RBCC1_HUMAN 1.9434305219033925 +RNF10_HUMAN 1.9418115434283745 +ATG9A_HUMAN 1.9415669480747133 +HNRL2_HUMAN 1.9415669480747133 +TCPB_HUMAN 1.9368901870733024 +ARHG6_HUMAN 1.9368901870733024 +UBR5_HUMAN 1.9368901870733024 +RFC1_HUMAN 1.9368901870733024 +F5H0R1_HUMAN 1.9368901870733024 +IRX1_HUMAN 1.9368901870733024 +PRP16_HUMAN 1.9368901870733024 +PRKDC_HUMAN 1.9340489974114472 +RHG25_HUMAN 1.9340489974114472 +TICRR_HUMAN 1.9340489974114472 +A0A1B0GV45_HUMAN 1.9340489974114472 +JARD2_HUMAN 1.9340489974114472 +EEPD1_HUMAN 1.9340489974114472 +PININ_HUMAN 1.9340489974114472 +2A5A_HUMAN 1.9323419277671952 +PI4KB_HUMAN 1.9323419277671952 +OSB11_HUMAN 1.9323419277671952 +IMA1_HUMAN 1.9323419277671952 +DOT1L_HUMAN 1.9301631333073044 +V5IRT4_HUMAN 1.928795297583716 +TYB4_HUMAN 1.9283777316613235 +DEN4B_HUMAN 1.9271301716229812 +A0A0U1RRM6_HUMAN 1.9271301716229812 +RRP1_HUMAN 1.9271301716229812 +LSM12_HUMAN 1.9254733389302685 +NEMF_HUMAN 1.9254733389302685 +ATRX_HUMAN 1.9217182069478531 +NCBP3_HUMAN 1.9217182069478531 +J3KMZ8_HUMAN 1.918483687108067 +CCNK_HUMAN 1.9177379301127877 +FYB1_HUMAN 1.9177379301127877 +SENP3_HUMAN 1.9177379301127877 +A0A0C4DFX9_HUMAN 1.9177379301127877 +LAR4B_HUMAN 1.9177379301127877 +ATAD5_HUMAN 1.9177379301127877 +KNOP1_HUMAN 1.9177379301127877 +TF3B_HUMAN 1.9177379301127877 +PYR1_HUMAN 1.9177379301127877 +NU188_HUMAN 1.9177379301127877 +PNISR_HUMAN 1.9134882382668332 +PACS1_HUMAN 1.9134882382668332 +A0A0A0MRV0_HUMAN 1.912601619901632 +ZN318_HUMAN 1.912601619901632 +PHIP_HUMAN 1.912601619901632 +DYR1A_HUMAN 1.9125880555053756 +C9J2V2_HUMAN 1.9125880555053756 +CAF1B_HUMAN 1.9125880555053756 +MTSS2_HUMAN 1.9125880555053756 +G5E9M7_HUMAN 1.9125880555053756 +DCP1B_HUMAN 1.9125880555053756 +DSN1_HUMAN 1.90964677968256 +EF2K_HUMAN 1.90964677968256 +VINEX_HUMAN 1.90964677968256 +SR140_HUMAN 1.9092246320613344 +PEA15_HUMAN 1.906810259700644 +ZC3H1_HUMAN 1.906810259700644 +SKA3_HUMAN 1.906810259700644 +MRP_HUMAN 1.9064228740215896 +KAT6A_HUMAN 1.9056028560293767 +SAMTR_HUMAN 1.8994200131133023 +TF3C2_HUMAN 1.896650097868306 +SNUT1_HUMAN 1.896650097868306 +D6RIF6_HUMAN 1.8928651212222507 +CLK3_HUMAN 1.8925827513787212 +KTNB1_HUMAN 1.8925827513787212 +RPGP2_HUMAN 1.883349235592444 +NU133_HUMAN 1.8818650852676615 +I3L0U5_HUMAN 1.8818650852676615 +A0A140T9T7_HUMAN 1.87554278578986 +MIA2_HUMAN 1.8721924141342208 +BICD1_HUMAN 1.8721924141342208 +G3V4K3_HUMAN 1.872162332032529 +RRAGD_HUMAN 1.872162332032529 +MFR1L_HUMAN 1.871047222852938 +ZC3HE_HUMAN 1.869044120260192 +DCAF1_HUMAN 1.869044120260192 +CNOT3_HUMAN 1.868022236667097 +API5_HUMAN 1.856455021578958 +WIPF1_HUMAN 1.8554918125016648 +GTF2I_HUMAN 1.8554918125016648 +CAMP1_HUMAN 1.8554918125016648 +DTBP1_HUMAN 1.8554918125016648 +SEC62_HUMAN 1.8554918125016648 +CATG_HUMAN 1.8553794198461877 +HNRPF_HUMAN 1.8446537391239848 +AAKB1_HUMAN 1.8446537391239848 +DCAKD_HUMAN 1.8446537391239848 +TREX1_HUMAN 1.8446537391239848 +NASP_HUMAN 1.843796582675232 +IKZF2_HUMAN 1.84325778310388 +NKTR_HUMAN 1.8429899049403595 +H0Y4E8_HUMAN 1.842425461713462 +F8W0Q9_HUMAN 1.842425461713462 +DCP1A_HUMAN 1.840430126933067 +TMM11_HUMAN 1.8399900893860357 +K1C16_HUMAN 1.839943247227828 +A0A087X1R1_HUMAN 1.8380453078961316 +NCOA2_HUMAN 1.8359056314622089 +ZN335_HUMAN 1.8359056314622089 +V9GYM8_HUMAN 1.8359056314622089 +TNIP1_HUMAN 1.8359056314622089 +TOM1_HUMAN 1.8359056314622089 +NUP98_HUMAN 1.8290791644626692 +DGCR8_HUMAN 1.827307091291376 +RNF31_HUMAN 1.825511192580273 +ATX2L_HUMAN 1.8190036768064892 +K7ELC2_HUMAN 1.8159384695411844 +ERIC1_HUMAN 1.8159384695411844 +CDA7L_HUMAN 1.8159384695411844 +HERC1_HUMAN 1.815501713477811 +SPD2A_HUMAN 1.815501713477811 +VP13B_HUMAN 1.815501713477811 +SCD_HUMAN 1.815034017163588 +TB22B_HUMAN 1.813795383823543 +TRA2A_HUMAN 1.8134821764910776 +ICAM2_HUMAN 1.812812980225904 +PCNP_HUMAN 1.812812980225904 +PDLI7_HUMAN 1.812812980225904 +H2AX_HUMAN 1.8124777079272067 +J3KPC5_HUMAN 1.8115344911869389 +XRCC6_HUMAN 1.8115344911869389 +ESYT2_HUMAN 1.8087656672268064 +NCOA3_HUMAN 1.806211545700895 +AKAP1_HUMAN 1.8053604267554 +DLGP4_HUMAN 1.8046647169767465 +MED1_HUMAN 1.8027453719934063 +CCNF_HUMAN 1.8027453719934063 +PRAG1_HUMAN 1.8027453719934063 +T184B_HUMAN 1.8027453719934063 +ANLN_HUMAN 1.8014868709712133 +JKIP1_HUMAN 1.8014868709712133 +B2CL2_HUMAN 1.8007998786172206 +VPP2_HUMAN 1.7994284332160366 +EP400_HUMAN 1.7992020816383725 +MABP1_HUMAN 1.7992020816383725 +DDA1_HUMAN 1.7992020816383725 +YJU2B_HUMAN 1.796675590645714 +LRRC1_HUMAN 1.795911398762831 +MB12A_HUMAN 1.7940052918727143 +NF1_HUMAN 1.7933085596410143 +TFPT_HUMAN 1.7933085596410143 +EF2_HUMAN 1.7933085596410143 +RERE_HUMAN 1.7933085596410143 +PUM1_HUMAN 1.7927955325322298 +SRS11_HUMAN 1.7927955325322298 +TLS1_HUMAN 1.7922326814840743 +RHG35_HUMAN 1.792165796529125 +ERBIN_HUMAN 1.7919187298648105 +UB2J1_HUMAN 1.7907974703379206 +I3L2J0_HUMAN 1.7907974703379206 +RL28_HUMAN 1.7867712786372327 +TIF1B_HUMAN 1.7867712786372327 +PTN18_HUMAN 1.7867712786372327 +C9JQE8_HUMAN 1.785668449430576 +CNOT2_HUMAN 1.784613430637171 +JUPI2_HUMAN 1.7785735346084048 +CND2_HUMAN 1.778246202637384 +ZDHC8_HUMAN 1.778246202637384 +A0A140TA76_HUMAN 1.778246202637384 +PREY_HUMAN 1.7775522661491632 +GGYF1_HUMAN 1.775787714332404 +RIC8A_HUMAN 1.774172424035765 +SASH3_HUMAN 1.773513627853916 +YLPM1_HUMAN 1.7720618765978158 +CBX8_HUMAN 1.7720618765978158 +PLAK2_HUMAN 1.7693290668469035 +CE170_HUMAN 1.7688201117820157 +CLPX_HUMAN 1.768201267123909 +CWC15_HUMAN 1.768201267123909 +AUTS2_HUMAN 1.7668267820920909 +A6NMQ1_HUMAN 1.7668267820920909 +BICRL_HUMAN 1.7668267820920909 +LAP2A_HUMAN 1.7668267820920909 +TBCD4_HUMAN 1.7668267820920909 +VTNC_HUMAN 1.7660954889737666 +TCPZ_HUMAN 1.7639058211203502 +SENP2_HUMAN 1.7619178688595742 +RBM15_HUMAN 1.7619178688595742 +RELL1_HUMAN 1.7604442112214442 +PRPS1_HUMAN 1.7604442112214442 +TASOR_HUMAN 1.7595362564644987 +SFPQ_HUMAN 1.7594791229630506 +ZN320_HUMAN 1.7594791229630506 +ZN592_HUMAN 1.7594791229630506 +EDC4_HUMAN 1.7594791229630506 +NCOA7_HUMAN 1.7594791229630506 +WAC_HUMAN 1.758477834900746 +PLCG1_HUMAN 1.7536469168550288 +ACACA_HUMAN 1.751804598112101 +F5GX28_HUMAN 1.7493077191635205 +SMG1_HUMAN 1.7493077191635205 +RS4X_HUMAN 1.744776394542244 +SHKB1_HUMAN 1.744776394542244 +UBP36_HUMAN 1.744776394542244 +MYPT1_HUMAN 1.743972249080854 +A0A1B0GVL4_HUMAN 1.7421036403940269 +NDE1_HUMAN 1.7347057683454448 +CBX3_HUMAN 1.7319626633555625 +LBR_HUMAN 1.7319626633555625 +PEX19_HUMAN 1.7313850342383876 +ASAP3_HUMAN 1.7299577009918496 +NCK1_HUMAN 1.7299577009918496 +TM209_HUMAN 1.7299577009918496 +BPTF_HUMAN 1.7299577009918496 +A6NIW2_HUMAN 1.7299577009918496 +GIT1_HUMAN 1.7293642143059356 +RENT1_HUMAN 1.7277438934967115 +FGD6_HUMAN 1.7265598328201814 +PALM_HUMAN 1.7258711686866466 +KLDC4_HUMAN 1.720045341334363 +ARFG1_HUMAN 1.720045341334363 +INCE_HUMAN 1.7192877172491672 +A0A0C4DGZ1_HUMAN 1.7192877172491672 +IF4G1_HUMAN 1.7184322502679668 +IF4H_HUMAN 1.717590657754205 +BRCA2_HUMAN 1.7141251254542167 +SH3L3_HUMAN 1.7092399321618308 +G3XAN8_HUMAN 1.7092399321618308 +MA7D1_HUMAN 1.7092399321618308 +TRIR_HUMAN 1.7092399321618308 +IQCB1_HUMAN 1.7092399321618308 +CIA2B_HUMAN 1.7092399321618308 +SRSF9_HUMAN 1.7080785314356497 +RALY_HUMAN 1.7080785314356497 +UCKL1_HUMAN 1.7080785314356497 +R4GMX8_HUMAN 1.7080785314356497 +MGAP_HUMAN 1.7080785314356497 +NSD3_HUMAN 1.7029043597981288 +GEPH_HUMAN 1.7000852357484857 +RPRD2_HUMAN 1.7000852357484857 +TDT_HUMAN 1.6966551417840128 +APC1_HUMAN 1.694898972781371 +DENR_HUMAN 1.694898972781371 +SI1L1_HUMAN 1.6919854649545665 +TCPD_HUMAN 1.690617938729064 +RB12B_HUMAN 1.6901698599848254 +KIF1C_HUMAN 1.6901698599848254 +ZN217_HUMAN 1.688737299297794 +ECT2_HUMAN 1.688737299297794 +PUM2_HUMAN 1.68758461340343 +PAN3_HUMAN 1.6869718435986891 +GLPC_HUMAN 1.6862254152495693 +PLCL2_HUMAN 1.6831225762746234 +CRKL_HUMAN 1.6818237841265384 +CIRBP_HUMAN 1.681141112634762 +WEE1_HUMAN 1.6804466318356368 +PTBP3_HUMAN 1.6800357982877163 +T2EB_HUMAN 1.679223063064028 +PARG_HUMAN 1.679223063064028 +TBC15_HUMAN 1.6772080389536972 +ARMC7_HUMAN 1.6772080389536972 +NFIC_HUMAN 1.6772080389536972 +PAPOA_HUMAN 1.6772080389536972 +AKA10_HUMAN 1.6772080389536972 +VMA21_HUMAN 1.6772080389536972 +A0A087WZV0_HUMAN 1.6771463933324673 +A0A1B0GTW1_HUMAN 1.6771463933324673 +X6R7X0_HUMAN 1.6771463933324673 +UNK_HUMAN 1.6771463933324673 +SENP7_HUMAN 1.6771463933324673 +OXSR1_HUMAN 1.6753615114019746 +PXK_HUMAN 1.6710146392964635 +KHDR1_HUMAN 1.6710146392964635 +RM38_HUMAN 1.6708431432717945 +ATG2A_HUMAN 1.670572014013327 +SF3B2_HUMAN 1.6698092197126786 +RHG04_HUMAN 1.668670898676557 +MBP_HUMAN 1.6643778204226511 +IN80E_HUMAN 1.6643778204226511 +PCY1A_HUMAN 1.6642517673671366 +WDHD1_HUMAN 1.663274744014383 +BPL1_HUMAN 1.663274744014383 +ARI4B_HUMAN 1.663274744014383 +SFR1_HUMAN 1.663274744014383 +TISD_HUMAN 1.663274744014383 +PHF6_HUMAN 1.663274744014383 +RCN3_HUMAN 1.6619734426235824 +LRRF1_HUMAN 1.6599301052774371 +PML_HUMAN 1.6564200532197424 +SRSF6_HUMAN 1.6556264804570962 +PP14B_HUMAN 1.6556264804570962 +PVRIG_HUMAN 1.6556264804570962 +TAF9B_HUMAN 1.6529959642169378 +KDM3B_HUMAN 1.6527500850207928 +ZN609_HUMAN 1.651172937797034 +RECQ4_HUMAN 1.6502214136897413 +PDE4A_HUMAN 1.6502214136897413 +H13_HUMAN 1.6487484134643091 +B4DY08_HUMAN 1.6487484134643091 +J3KNL6_HUMAN 1.6487484134643091 +MPP8_HUMAN 1.644622719177054 +B9EGE7_HUMAN 1.644622719177054 +ESS2_HUMAN 1.644622719177054 +NBEL2_HUMAN 1.64269992345517 +M3K2_HUMAN 1.6367104797579248 +SAFB2_HUMAN 1.6358338110561552 +PTN7_HUMAN 1.6349593665241 +ABR_HUMAN 1.6342311178769535 +A0A0B4J2E5_HUMAN 1.6330199652404895 +P121A_HUMAN 1.6324656025906694 +PHAG1_HUMAN 1.6323040840368914 +UNKL_HUMAN 1.630771279510544 +RBL1_HUMAN 1.630588813414638 +BCKD_HUMAN 1.630588813414638 +J3QQJ0_HUMAN 1.6283890950706992 +PSIP1_HUMAN 1.625271323331981 +PRR12_HUMAN 1.625181279988604 +ZZZ3_HUMAN 1.625181279988604 +RN169_HUMAN 1.625181279988604 +NCK5L_HUMAN 1.625181279988604 +FOXK2_HUMAN 1.625008982169042 +TYB10_HUMAN 1.623366530478342 +NOSIP_HUMAN 1.6231317053084626 +LC7L2_HUMAN 1.6231317053084626 +RLIG1_HUMAN 1.622993700947564 +SPT4H_HUMAN 1.6203457919362023 +NSE2_HUMAN 1.618118054418137 +DHX30_HUMAN 1.6168480219685335 +EGLN1_HUMAN 1.614854310072849 +PTSS1_HUMAN 1.6139697076023756 +CA131_HUMAN 1.6139697076023756 +IKZF1_HUMAN 1.6139697076023756 +FACD2_HUMAN 1.611266629431071 +BT2A1_HUMAN 1.610393863373781 +PDE3B_HUMAN 1.6098048778662402 +4EBP3_HUMAN 1.608898667913959 +ZN598_HUMAN 1.6066377596960149 +VIME_HUMAN 1.6047294192141035 +A0A5E8_HUMAN 1.603907509952331 +NOL8_HUMAN 1.603907509952331 +TEBP_HUMAN 1.603907509952331 +MARCS_HUMAN 1.6016262103462997 +EMSY_HUMAN 1.601107803033725 +TMED2_HUMAN 1.601064624453597 +UBN1_HUMAN 1.601064624453597 +INAR1_HUMAN 1.6004867491643342 +TLK2_HUMAN 1.6004867491643342 +BOREA_HUMAN 1.5987537264652687 +MBLC1_HUMAN 1.596365603301689 +C2CD5_HUMAN 1.594359049740105 +LMBD2_HUMAN 1.593257221651549 +MTMR4_HUMAN 1.5867062539232395 +RFTN1_HUMAN 1.5867062539232395 +A8K727_HUMAN 1.5867062539232395 +CEP95_HUMAN 1.5863495754611554 +B5MCU0_HUMAN 1.5863495754611554 +KIF1B_HUMAN 1.5863495754611554 +RASF5_HUMAN 1.5860233224503275 +AFF4_HUMAN 1.5860233224503275 +THOC2_HUMAN 1.5846150343713394 +TFDP2_HUMAN 1.5846150343713394 +J3KN59_HUMAN 1.5838005455677533 +TIA1_HUMAN 1.5838005455677533 +FBX42_HUMAN 1.5836658366009186 +A0A0J9YWL0_HUMAN 1.5774447536145375 +LEO1_HUMAN 1.576851257996113 +GIPC1_HUMAN 1.5764803833226075 +I2BP2_HUMAN 1.5758455443241708 +RWDD4_HUMAN 1.5752653922867537 +MAST4_HUMAN 1.574150295475778 +MAP1S_HUMAN 1.5697896741692865 +BRAP_HUMAN 1.562145663762073 +BRPF1_HUMAN 1.5613449534678685 +MORC3_HUMAN 1.5597182751399368 +KLF13_HUMAN 1.5593568988240107 +UBR4_HUMAN 1.5593568988240107 +MOV10_HUMAN 1.5587155374692414 +NUMB_HUMAN 1.5583262707564272 +ALKB5_HUMAN 1.5576469662179655 +HNRL1_HUMAN 1.5576469662179655 +SRGP3_HUMAN 1.55630259723018 +I1E4Y6_HUMAN 1.55630259723018 +ARI3A_HUMAN 1.553229166435797 +ACTB_HUMAN 1.553229166435797 +RCOR1_HUMAN 1.553229166435797 +LRCH3_HUMAN 1.553229166435797 +NUMBL_HUMAN 1.553229166435797 +SCML2_HUMAN 1.553229166435797 +H7C494_HUMAN 1.553229166435797 +J3KPH8_HUMAN 1.553229166435797 +SIX6_HUMAN 1.553229166435797 +E7ERS3_HUMAN 1.551636854535616 +HD_HUMAN 1.551636854535616 +PMYT1_HUMAN 1.551636854535616 +RBM39_HUMAN 1.551511002861387 +SPAST_HUMAN 1.551511002861387 +CUTC_HUMAN 1.549335131113205 +SHAN2_HUMAN 1.5484813148031706 +RUNX1_HUMAN 1.5467490697478377 +CATIN_HUMAN 1.544011596513742 +SMCO4_HUMAN 1.5425987598831323 +KIF14_HUMAN 1.5421741826769957 +HMGA1_HUMAN 1.5414008330832916 +RS3_HUMAN 1.5409742972892138 +SGT1_HUMAN 1.5374294639604158 +EPN1_HUMAN 1.5348290417612744 +H7C2Q8_HUMAN 1.53334867204404 +Z280C_HUMAN 1.5317923423127593 +ATG2B_HUMAN 1.5312360416149495 +TRRAP_HUMAN 1.530978566649734 +RRP15_HUMAN 1.530978566649734 +IBP2_HUMAN 1.530585166912765 +RL35_HUMAN 1.530585166912765 +SP130_HUMAN 1.5299457846891635 +KIF2A_HUMAN 1.529193301956704 +COASY_HUMAN 1.5278819476884955 +GRDN_HUMAN 1.525478926350487 +FUBP3_HUMAN 1.525285823427137 +LIPB1_HUMAN 1.52366361999421 +ATAT_HUMAN 1.5233702471669923 +DOK2_HUMAN 1.5228442562900155 +D3DQV9_HUMAN 1.521921608227538 +CDS2_HUMAN 1.521837471774267 +ZEP1_HUMAN 1.521837471774267 +TGFA1_HUMAN 1.518843374947793 +REEP4_HUMAN 1.5153527618285414 +ARHG1_HUMAN 1.5151231030186672 +A0A0J9YYD9_HUMAN 1.5151231030186672 +SRSF8_HUMAN 1.5126987508397562 +GPTC8_HUMAN 1.5095282736803597 +TPR_HUMAN 1.5067032141687422 +E2F3_HUMAN 1.5067032141687422 +PMS2_HUMAN 1.500450124285322 +KBTB7_HUMAN 1.5001236856081273 +DOCK7_HUMAN 1.4991713079622904 +INF2_HUMAN 1.4991713079622904 +KDM6B_HUMAN 1.4991713079622904 +CISD3_HUMAN 1.4989888127394944 +MS18A_HUMAN 1.4986862331154844 +TREF1_HUMAN 1.4986862331154844 +ADRM1_HUMAN 1.498638296123168 +X6RLX0_HUMAN 1.498638296123168 +H3BQL3_HUMAN 1.498638296123168 +ABCF2_HUMAN 1.4981130172751085 +KIF4A_HUMAN 1.4962166717747136 +PEX3_HUMAN 1.4938112941438502 +HNRPD_HUMAN 1.4937444379141005 +RHG15_HUMAN 1.492781918994018 +ZKSC8_HUMAN 1.4917764239854727 +TBD2B_HUMAN 1.4917764239854727 +KIFC1_HUMAN 1.4917764239854727 +PER1_HUMAN 1.4872646212864058 +TMF1_HUMAN 1.4844341997257475 +A0A0G2JNZ2_HUMAN 1.4831620582394172 +PLIN3_HUMAN 1.481077721531142 +SPTB2_HUMAN 1.4805861772647626 +ITFG2_HUMAN 1.480219922066905 +A0A0U1RRH7_HUMAN 1.478743639043696 +INT3_HUMAN 1.47704849491289 +A0A024R4E5_HUMAN 1.4744322137737111 +E9PJ55_HUMAN 1.4741661518581666 +PAK4_HUMAN 1.473348891568368 +LMBL3_HUMAN 1.4664663535517233 +RRP1B_HUMAN 1.4659087622757931 +IPYR_HUMAN 1.4651206340344114 +PRC2B_HUMAN 1.462102021086222 +ABL1_HUMAN 1.4600214671135892 +ATP9B_HUMAN 1.4595842003311976 +KIF22_HUMAN 1.4594594113221078 +CB068_HUMAN 1.4576375808977051 +SMRC1_HUMAN 1.4576375808977051 +PCX3_HUMAN 1.4576375808977051 +GUAA_HUMAN 1.4574508741014025 +J3KPF0_HUMAN 1.4570838456002488 +ALG3_HUMAN 1.4569641682536676 +CD3Z_HUMAN 1.456273589935328 +MADD_HUMAN 1.455795107080136 +NUP93_HUMAN 1.4506568843932597 +UBN2_HUMAN 1.4452368742932693 +GAB3_HUMAN 1.4424549898390118 +MUS81_HUMAN 1.4371602289363188 +MGMT_HUMAN 1.4364871925598512 +WIPF2_HUMAN 1.4364871925598512 +ASHWN_HUMAN 1.4364871925598512 +I17RA_HUMAN 1.436131077602721 +ZN573_HUMAN 1.4357694665997545 +C9J7T7_HUMAN 1.4332804246591722 +ETS1_HUMAN 1.432391983160914 +PSA5_HUMAN 1.432391983160914 +IFG15_HUMAN 1.4315219662451866 +TACC1_HUMAN 1.4274553490164978 +CD3E_HUMAN 1.4270205175131458 +UBF1_HUMAN 1.4265158906429751 +RFX7_HUMAN 1.4245729184327107 +RBMX2_HUMAN 1.4221072948726277 +ZN330_HUMAN 1.4203653481358378 +NFAC3_HUMAN 1.4200481489287875 +DEN1B_HUMAN 1.4200481489287875 +A0A0C4DFM7_HUMAN 1.4177864760910868 +KDIS_HUMAN 1.4170719101299214 +MTG8R_HUMAN 1.4170719101299214 +KI13B_HUMAN 1.4170719101299214 +SZRD1_HUMAN 1.4167301823964789 +BAZ1B_HUMAN 1.4141155725530086 +PSF2_HUMAN 1.4141155725530086 +A0A0A0MRR7_HUMAN 1.4141148092544975 +CHSP1_HUMAN 1.4140634399725864 +NGAP_HUMAN 1.4140634399725864 +LPIN1_HUMAN 1.4139384363862515 +CD5_HUMAN 1.4134962460604463 +RYBP_HUMAN 1.4130726650170624 +H7BZJ3_HUMAN 1.4079714054211705 +SEPT9_HUMAN 1.4077462420892584 +SND1_HUMAN 1.4077462420892584 +TOP1_HUMAN 1.407165160730767 +UBA1_HUMAN 1.4055026873551124 +ZN106_HUMAN 1.4042785122991548 +UBXN7_HUMAN 1.4027498920199597 +PAPOG_HUMAN 1.4012255401070153 +CHD4_HUMAN 1.398338110192834 +JUNB_HUMAN 1.398338110192834 +PSN1_HUMAN 1.3955225663490065 +M0QXA7_HUMAN 1.3954546462122803 +CHIP_HUMAN 1.3951713002688575 +G5EA09_HUMAN 1.3945555670580556 +ACTY_HUMAN 1.3929551436380998 +SNRK_HUMAN 1.386059858172826 +A0A0A0MTC5_HUMAN 1.3857922789405932 +BAG6_HUMAN 1.381734440271269 +F5H8D7_HUMAN 1.381311096353027 +ZN397_HUMAN 1.3790844369432236 +CCDC9_HUMAN 1.3790844369432236 +PRSR1_HUMAN 1.3790708641788665 +FMNL1_HUMAN 1.378708531371344 +ACAP1_HUMAN 1.378708531371344 +MINT_HUMAN 1.3740579455411437 +MEF2A_HUMAN 1.372105870811973 +PATL1_HUMAN 1.372105870811973 +KDM2A_HUMAN 1.372105870811973 +PKHA1_HUMAN 1.370439810950771 +B4E0Y9_HUMAN 1.3650013905568206 +LDB1_HUMAN 1.3638978446465069 +PPM1G_HUMAN 1.3638978446465069 +B1AM27_HUMAN 1.3638978446465069 +PTTG_HUMAN 1.362621012484477 +RSF1_HUMAN 1.3597869554337356 +MEF2D_HUMAN 1.355687628501374 +E9PNT2_HUMAN 1.3510999693925152 +FAF1_HUMAN 1.3507891200859448 +ZBED4_HUMAN 1.3462298959658738 +RBGP1_HUMAN 1.3459376771082716 +UBAP2_HUMAN 1.3459376771082716 +ABLM1_HUMAN 1.3459376771082716 +E41L2_HUMAN 1.3459376771082716 +EHBP1_HUMAN 1.3445089856069514 +ZCCHV_HUMAN 1.3445089856069514 +BMP2K_HUMAN 1.3421465341377865 +TESK2_HUMAN 1.342136945246755 +E7EPT4_HUMAN 1.3399916693835972 +MFF_HUMAN 1.3393202241362625 +ELP4_HUMAN 1.3390674987148612 +TPC2A_HUMAN 1.336601117149929 +WBP2_HUMAN 1.336601117149929 +A0A0A0MT60_HUMAN 1.3303932882739926 +R3HD1_HUMAN 1.325699598575591 +VRK3_HUMAN 1.325699598575591 +CNOT4_HUMAN 1.3225681523274029 +A0A087WWF6_HUMAN 1.321912323523786 +CO039_HUMAN 1.321912323523786 +FADD_HUMAN 1.3219024088198772 +PSD11_HUMAN 1.3182975778427108 +KKCC2_HUMAN 1.3180526639899417 +SHB_HUMAN 1.3153136536263887 +TIM50_HUMAN 1.3124760170954974 +ZBT40_HUMAN 1.3119173775121502 +HS105_HUMAN 1.311829224711046 +RPA43_HUMAN 1.3114040854518267 +DDX55_HUMAN 1.3099985711203703 +FANCJ_HUMAN 1.3054621506029551 +PRDX6_HUMAN 1.3036944847038232 +C2C2L_HUMAN 1.3025993654945351 +K1C9_HUMAN 1.3012384398573682 +TB10A_HUMAN 1.291913505353536 +TDIF2_HUMAN 1.289184704701846 +SAFB1_HUMAN 1.289184704701846 +OSBL3_HUMAN 1.2849550851075413 +EXOC4_HUMAN 1.2834606945086136 +E7EQS8_HUMAN 1.277233313737906 +CSKI1_HUMAN 1.2766428307525943 +A0A0A0MQU4_HUMAN 1.2747712441742238 +MAST2_HUMAN 1.2747712441742238 +E7EVB6_HUMAN 1.2747712441742238 +MDC1_HUMAN 1.2736999749815556 +DPOA2_HUMAN 1.273410703338121 +RN114_HUMAN 1.2718500041542673 +INT1_HUMAN 1.2692161465227425 +P5CR2_HUMAN 1.2692161465227425 +PRPF3_HUMAN 1.26312637564306 +STML2_HUMAN 1.2606316627801153 +CDK17_HUMAN 1.2606316627801153 +F5H527_HUMAN 1.2600223449685397 +PNKD_HUMAN 1.259550361396689 +M0R226_HUMAN 1.25874242722772 +TBCE_HUMAN 1.25874242722772 +ZCHC8_HUMAN 1.254357705738553 +UCK2_HUMAN 1.254357705738553 +CPZIP_HUMAN 1.254357705738553 +EDF1_HUMAN 1.254357705738553 +BRD1_HUMAN 1.2528130397867507 +SIN3A_HUMAN 1.2522578417768275 +CA174_HUMAN 1.2515272999610367 +SOX4_HUMAN 1.2478890430709089 +RBBP5_HUMAN 1.2475593922253896 +FIZ1_HUMAN 1.2470766183852005 +WAPL_HUMAN 1.2437444782694829 +RBM26_HUMAN 1.2426795081873598 +TM230_HUMAN 1.2418536980236523 +AN32A_HUMAN 1.2396318901092034 +KDM2B_HUMAN 1.2395522882104963 +MTFR1_HUMAN 1.2392179222024022 +SMCA5_HUMAN 1.2390939190066692 +J3KTL2_HUMAN 1.2314350027874297 +AFG1L_HUMAN 1.2214395107571645 +X6RAL5_HUMAN 1.2214395107571645 +STX4_HUMAN 1.21982850700671 +TMCO6_HUMAN 1.2170234258276496 +A0A0A0MT22_HUMAN 1.213667888116882 +TAGAP_HUMAN 1.211178504714197 +ATN1_HUMAN 1.211178504714197 +RBM6_HUMAN 1.210366578067677 +CT2NL_HUMAN 1.210366578067677 +ZAP70_HUMAN 1.2090669777370142 +S4R347_HUMAN 1.2086702565688232 +KCTD9_HUMAN 1.2074600584781503 +CCDC6_HUMAN 1.2008769173364633 +A0A0D9SF60_HUMAN 1.2008769173364633 +TBB2B_HUMAN 1.1988524735897537 +GABPA_HUMAN 1.196508717755136 +RLA2_HUMAN 1.1958261054040045 +PSMD2_HUMAN 1.1954554880085198 +Q9NPA5_HUMAN 1.1935372180611366 +LIMD1_HUMAN 1.190607333317505 +SCPDL_HUMAN 1.188872309904105 +GYS1_HUMAN 1.188872309904105 +RED_HUMAN 1.1878250534090182 +TCAB1_HUMAN 1.1865290485394648 +ACBP_HUMAN 1.1839392587237012 +SPAG7_HUMAN 1.1834390080524702 +MK14_HUMAN 1.1834390080524702 +PCBP2_HUMAN 1.179739158975082 +B0QYS7_HUMAN 1.1790711506753633 +LCK_HUMAN 1.1790711506753633 +H33_HUMAN 1.1783755536979346 +EMC5_HUMAN 1.173901663292787 +RFX5_HUMAN 1.171520785487593 +SMC4_HUMAN 1.171520785487593 +NSUN5_HUMAN 1.170050718503766 +PIAS1_HUMAN 1.1681182680530655 +K1C10_HUMAN 1.1652764267874487 +LAGE3_HUMAN 1.1652764267874487 +DMXL2_HUMAN 1.1647377477877603 +ARBK2_HUMAN 1.1626041254547057 +F8W9L8_HUMAN 1.1626041254547057 +FZR1_HUMAN 1.1603735977113108 +TMX1_HUMAN 1.1593642064456229 +RRAS2_HUMAN 1.156427252329124 +C9JA08_HUMAN 1.156208778971734 +ARM10_HUMAN 1.156208778971734 +PP6R3_HUMAN 1.156208778971734 +NSRP1_HUMAN 1.1534793335105478 +CNBP_HUMAN 1.1525590608925138 +CRIP2_HUMAN 1.152390933348122 +P53_HUMAN 1.151807870311012 +NOC2L_HUMAN 1.1442551046759946 +J3KNR0_HUMAN 1.143363662798499 +RAVR2_HUMAN 1.143048359008893 +ATX10_HUMAN 1.1412670168811665 +DOK1_HUMAN 1.1355799997588671 +A0A0A0MQS2_HUMAN 1.1299340550653791 +COMD6_HUMAN 1.128900486251755 +LMNB2_HUMAN 1.1275374703528738 +EI24_HUMAN 1.1243593918876376 +A0A087WTW0_HUMAN 1.1180470836417982 +PGM2_HUMAN 1.1178546649914076 +Q5HY81_HUMAN 1.1121118109072743 +LAT_HUMAN 1.1115393335893018 +MCM3_HUMAN 1.111027922417744 +PACN3_HUMAN 1.1105882253298058 +D4PHA4_HUMAN 1.1098582831892392 +HAUS8_HUMAN 1.1054250730101307 +GBF1_HUMAN 1.1054250730101307 +AKT1_HUMAN 1.104840709561845 +DDRGK_HUMAN 1.1002324397496726 +SFR19_HUMAN 1.0967187621892156 +C1TM_HUMAN 1.0940639419500142 +SELK_HUMAN 1.0940639419500142 +E9PFI5_HUMAN 1.0926831622151392 +PSMD4_HUMAN 1.0910671549306885 +SEPT6_HUMAN 1.0880741151441735 +NOP56_HUMAN 1.087160586916168 +RBX1_HUMAN 1.086769181236134 +CPPED_HUMAN 1.0860017014311272 +PRP4K_HUMAN 1.0829321344921683 +A0A087WUT6_HUMAN 1.080793816542294 +SYTC_HUMAN 1.0770238031876582 +SCMC1_HUMAN 1.0730463251789988 +ITPI2_HUMAN 1.0719684141051082 +DMAP1_HUMAN 1.071577068546023 +DCA10_HUMAN 1.0694030417898757 +WDR75_HUMAN 1.0677297524298175 +CH60_HUMAN 1.0657634082295693 +EVL_HUMAN 1.0644695104547544 +AJUBA_HUMAN 1.063666825180044 +KATIP_HUMAN 1.0627849111635628 +M3K20_HUMAN 1.0519697889423665 +G1UD79_HUMAN 1.04739233499352 +RAF1_HUMAN 1.045668159710195 +F241B_HUMAN 1.0441422484606755 +VIR_HUMAN 1.042396269280326 +PP16B_HUMAN 1.0390585238828396 +J3QTA6_HUMAN 1.0386996097261536 +UBE2O_HUMAN 1.028488954102181 +MYO5A_HUMAN 1.0254285457955026 +E7EV07_HUMAN 1.022182932984924 +4EBP2_HUMAN 1.0196538521636485 +NCOR1_HUMAN 1.0185667849408584 +DAP1_HUMAN 1.016504798868468 +REPS1_HUMAN 1.0162008775157336 +SOX1_HUMAN 1.0153622127624502 +FYV1_HUMAN 1.0142648815187705 +A0A1B0GTN9_HUMAN 1.0109627568592905 +SRA1_HUMAN 1.0096828639556032 +UIF_HUMAN 1.0096828639556032 +JHD2C_HUMAN 1.0094992600098456 +APTX_HUMAN 1.0084603804047647 +J3KQL8_HUMAN 1.0077614527324577 +AXIN1_HUMAN 1.005808582397118 +RTN4_HUMAN 1.0051920614387837 +J3KR72_HUMAN 1.0037550381491789 +PARP6_HUMAN 1.003196032647505 +T184C_HUMAN 1.0022879202716266 diff --git a/spras/omicsintegrator1.py b/spras/omicsintegrator1.py index 90283475..ad47aeed 100644 --- a/spras/omicsintegrator1.py +++ b/spras/omicsintegrator1.py @@ -49,8 +49,6 @@ def write_conf(filename=Path('config.txt'), w=None, b=None, d=None, mu=None, noi class OmicsIntegrator1(PRM): required_inputs = ['prizes', 'edges', 'dummy_nodes'] - #TODO: TEST !!!!! + test files?? - @staticmethod def generate_inputs(data, filename_map): """ @@ -77,10 +75,10 @@ def generate_inputs(data, filename_map): # Omics Integrator already gives warnings for strange prize values, so we won't here node_df.to_csv(filename_map['prizes'],sep='\t',index=False,columns=['NODEID','prize'],header=['name','prize']) - print("DATA: NODE TABLE") - print(data.node_table.head()) - print("NODE DF") - print(node_df.head()) + # print("DATA: NODE TABLE") + # print(data.node_table[data.node_table['dummy']==True]) + # print("NODE DF") + # print(node_df.head()) # Get network file edges_df = data.get_interactome() @@ -91,10 +89,11 @@ def generate_inputs(data, filename_map): header=['protein1','protein2','weight','directionality']) # creates the dummy_nodes file - if node_df.contains_node_columns('dummy'): - dummy_df = node_df[node_df['dummy'] == True] + if 'dummy' in data.node_table.columns: + dummy_df = data.node_table[data.node_table['dummy'] == True] # save as list of dummy nodes - dummy_df.to_csv(filename_map['dummy_nodes'], sep='\t', index=False, columns=['NODEID', 'dummy'], header=['NODEID', 'dummy']) + # dummy_df.to_csv(filename_map['dummy_nodes'], sep='\t', index=False, columns=['NODEID', 'dummy'], header=['NODEID', 'dummy']) + dummy_df.to_csv(filename_map['dummy_nodes'], index=False, columns=['NODEID'], header=None) else: # create empty dummy file with open(filename_map['dummy_nodes'], mode='w') as file: From 4779e3d1768d7ce577c6e9b8bdb7cfb9de3691e8 Mon Sep 17 00:00:00 2001 From: Sumedha Sanjeev Date: Mon, 23 Sep 2024 16:44:27 -0500 Subject: [PATCH 10/30] adding second dummy file that doesn't work --- input/dummy-1.txt | 55 +++++++++++++++++++ input/dummy.txt | 111 +++++++++++++++++++------------------- spras/omicsintegrator1.py | 9 ++-- 3 files changed, 116 insertions(+), 59 deletions(-) create mode 100644 input/dummy-1.txt diff --git a/input/dummy-1.txt b/input/dummy-1.txt new file mode 100644 index 00000000..535f50a7 --- /dev/null +++ b/input/dummy-1.txt @@ -0,0 +1,55 @@ +UBAC2_HUMAN +H37_HUMAN +PHF3_HUMAN +DDX52_HUMAN +HNRPK_HUMAN +Q5T5H1_HUMAN +ZC11A_HUMAN +TCPG_HUMAN +2A5E_HUMAN +CPNE2_HUMAN +HEYL_HUMAN +CAMP1_HUMAN +SVEP1_HUMAN +SPRL1_HUMAN +C9JFD3_HUMAN +THAP5_HUMAN +NCOR1_HUMAN +SKIL_HUMAN +A8YXX4_HUMAN +CO4A2_HUMAN +ZBTB3_HUMAN +MORC4_HUMAN +HIPK3_HUMAN +ZN200_HUMAN +TGFR1_HUMAN +Q2TU89_HUMAN +SUMO2_HUMAN +UBC9_HUMAN +AXIN1_HUMAN +RS27_HUMAN +UBP25_HUMAN +RN111_HUMAN +CBX4_HUMAN +B4E127_HUMAN +G4XH65_HUMAN +CPNE1_HUMAN +HDAC1_HUMAN +RNF4_HUMAN +SETB1_HUMAN +SMAD2_HUMAN +TRI62_HUMAN +FAF1_HUMAN +EF1G_HUMAN +AHNK_HUMAN +LRP1_HUMAN +UIMC1_HUMAN +B3KWV4_HUMAN +CDC27_HUMAN +RB_HUMAN +ZMYM2_HUMAN +WWP1_HUMAN +RU17_HUMAN +HIPK1_HUMAN +ZZEF1_HUMAN +SMAD4_HUMAN \ No newline at end of file diff --git a/input/dummy.txt b/input/dummy.txt index 535f50a7..91775f6b 100644 --- a/input/dummy.txt +++ b/input/dummy.txt @@ -1,55 +1,56 @@ -UBAC2_HUMAN -H37_HUMAN -PHF3_HUMAN -DDX52_HUMAN -HNRPK_HUMAN -Q5T5H1_HUMAN -ZC11A_HUMAN -TCPG_HUMAN -2A5E_HUMAN -CPNE2_HUMAN -HEYL_HUMAN -CAMP1_HUMAN -SVEP1_HUMAN -SPRL1_HUMAN -C9JFD3_HUMAN -THAP5_HUMAN -NCOR1_HUMAN -SKIL_HUMAN -A8YXX4_HUMAN -CO4A2_HUMAN -ZBTB3_HUMAN -MORC4_HUMAN -HIPK3_HUMAN -ZN200_HUMAN -TGFR1_HUMAN -Q2TU89_HUMAN -SUMO2_HUMAN -UBC9_HUMAN -AXIN1_HUMAN -RS27_HUMAN -UBP25_HUMAN -RN111_HUMAN -CBX4_HUMAN -B4E127_HUMAN -G4XH65_HUMAN -CPNE1_HUMAN -HDAC1_HUMAN -RNF4_HUMAN -SETB1_HUMAN -SMAD2_HUMAN -TRI62_HUMAN -FAF1_HUMAN -EF1G_HUMAN -AHNK_HUMAN -LRP1_HUMAN -UIMC1_HUMAN -B3KWV4_HUMAN -CDC27_HUMAN -RB_HUMAN -ZMYM2_HUMAN -WWP1_HUMAN -RU17_HUMAN -HIPK1_HUMAN -ZZEF1_HUMAN -SMAD4_HUMAN \ No newline at end of file +NODEID dummy +UBAC2_HUMAN True +H37_HUMAN True +PHF3_HUMAN True +DDX52_HUMAN True +HNRPK_HUMAN True +Q5T5H1_HUMAN True +ZC11A_HUMAN True +TCPG_HUMAN True +2A5E_HUMAN True +CPNE2_HUMAN True +HEYL_HUMAN True +CAMP1_HUMAN True +SVEP1_HUMAN True +SPRL1_HUMAN True +C9JFD3_HUMAN True +THAP5_HUMAN True +NCOR1_HUMAN True +SKIL_HUMAN True +A8YXX4_HUMAN True +CO4A2_HUMAN True +ZBTB3_HUMAN True +MORC4_HUMAN True +HIPK3_HUMAN True +ZN200_HUMAN True +TGFR1_HUMAN True +Q2TU89_HUMAN True +SUMO2_HUMAN True +UBC9_HUMAN True +AXIN1_HUMAN True +RS27_HUMAN True +UBP25_HUMAN True +RN111_HUMAN True +CBX4_HUMAN True +B4E127_HUMAN True +G4XH65_HUMAN True +CPNE1_HUMAN True +HDAC1_HUMAN True +RNF4_HUMAN True +SETB1_HUMAN True +SMAD2_HUMAN True +TRI62_HUMAN True +FAF1_HUMAN True +EF1G_HUMAN True +AHNK_HUMAN True +LRP1_HUMAN True +UIMC1_HUMAN True +B3KWV4_HUMAN True +CDC27_HUMAN True +RB_HUMAN True +ZMYM2_HUMAN True +WWP1_HUMAN True +RU17_HUMAN True +HIPK1_HUMAN True +ZZEF1_HUMAN True +SMAD4_HUMAN True \ No newline at end of file diff --git a/spras/omicsintegrator1.py b/spras/omicsintegrator1.py index ad47aeed..ff7f8ee7 100644 --- a/spras/omicsintegrator1.py +++ b/spras/omicsintegrator1.py @@ -75,10 +75,11 @@ def generate_inputs(data, filename_map): # Omics Integrator already gives warnings for strange prize values, so we won't here node_df.to_csv(filename_map['prizes'],sep='\t',index=False,columns=['NODEID','prize'],header=['name','prize']) - # print("DATA: NODE TABLE") - # print(data.node_table[data.node_table['dummy']==True]) - # print("NODE DF") - # print(node_df.head()) + print("DATA: NODE TABLE") + print(data.node_table[data.node_table['dummy']==True]) + print(data.node_table.head()) + print("NODE DF") + print(node_df.head()) # Get network file edges_df = data.get_interactome() From 7acbd9a7d3d60b2c1fd24c37727d53aafc484a9f Mon Sep 17 00:00:00 2001 From: Sumedha Sanjeev Date: Fri, 27 Sep 2024 12:21:36 -0500 Subject: [PATCH 11/30] works for both types of dummy files --- input/dummy.txt | 142 +++++++++++++++++++++++--------------- spras/omicsintegrator1.py | 4 +- 2 files changed, 89 insertions(+), 57 deletions(-) diff --git a/input/dummy.txt b/input/dummy.txt index 91775f6b..92fb21f7 100644 --- a/input/dummy.txt +++ b/input/dummy.txt @@ -1,56 +1,86 @@ -NODEID dummy -UBAC2_HUMAN True -H37_HUMAN True -PHF3_HUMAN True -DDX52_HUMAN True -HNRPK_HUMAN True -Q5T5H1_HUMAN True -ZC11A_HUMAN True -TCPG_HUMAN True -2A5E_HUMAN True -CPNE2_HUMAN True -HEYL_HUMAN True -CAMP1_HUMAN True -SVEP1_HUMAN True -SPRL1_HUMAN True -C9JFD3_HUMAN True -THAP5_HUMAN True -NCOR1_HUMAN True -SKIL_HUMAN True -A8YXX4_HUMAN True -CO4A2_HUMAN True -ZBTB3_HUMAN True -MORC4_HUMAN True -HIPK3_HUMAN True -ZN200_HUMAN True -TGFR1_HUMAN True -Q2TU89_HUMAN True -SUMO2_HUMAN True -UBC9_HUMAN True -AXIN1_HUMAN True -RS27_HUMAN True -UBP25_HUMAN True -RN111_HUMAN True -CBX4_HUMAN True -B4E127_HUMAN True -G4XH65_HUMAN True -CPNE1_HUMAN True -HDAC1_HUMAN True -RNF4_HUMAN True -SETB1_HUMAN True -SMAD2_HUMAN True -TRI62_HUMAN True -FAF1_HUMAN True -EF1G_HUMAN True -AHNK_HUMAN True -LRP1_HUMAN True -UIMC1_HUMAN True -B3KWV4_HUMAN True -CDC27_HUMAN True -RB_HUMAN True -ZMYM2_HUMAN True -WWP1_HUMAN True -RU17_HUMAN True -HIPK1_HUMAN True -ZZEF1_HUMAN True -SMAD4_HUMAN True \ No newline at end of file +NODEID prize sources dummy active +1433Z_HUMAN 1.041379133 True True +41_HUMAN 3.389112802 True True +4ET_HUMAN 2.569973509 True True +A8K1N6_HUMAN 1.948221966 True True +A9CQZ4_HUMAN 0.421460919 True True +AAGAB_HUMAN 0.906857382 True True +ABCF1_HUMAN 1.662535462 True True +ABI1_HUMAN 2.262002188 True True +ABI2_HUMAN 6.039545959 True True +ABLM1_HUMAN 1.851877252 True True +ACACA_HUMAN 1.413801552 True True +ACAP2_HUMAN 2.26361378 True True +ACINU_HUMAN 5.059742801 True True +ACK1_HUMAN 4.634804389 True True +ACLY_HUMAN 0.924296287 True True +ACTB_HUMAN 6.332977709 True True +ADAT1_HUMAN 0.15086641 True True +ADCY6_HUMAN 0.213467876 True True +ADDA_HUMAN 2.023396633 True True +ADNP_HUMAN 1.863304115 True True +AFAD_HUMAN 5.746711895 True True +AFTIN_HUMAN 1.428578311 True True +AHNK_HUMAN 1.03846887 True True +AKA10_HUMAN 1.256166574 True True +AKA11_HUMAN 0.927725859 True True +AKA12_HUMAN 0.839912266 True True +AKAP1_HUMAN 1.744860335 True True +AKAP2_HUMAN 1.596611866 True True +AMOT_HUMAN 1.79256998 True True +ANS1A_HUMAN 2.76115098 True True +ANXA2_HUMAN 1.709856841 True True +AP3D1_HUMAN 4.077699923 True True +APC1_HUMAN 0.888837295 True True +AR6P4_HUMAN 0.701112743 True True +AR6P6_HUMAN 2.695059469 True True +ARHG5_HUMAN 7.044363255 True True +ARHG7_HUMAN 3.809839832 True True +ARHGB_HUMAN 2.260010614 True True +ARIP4_HUMAN 0.270475986 True True +ARMX3_HUMAN 0.11573305 True True +ARP8_HUMAN 1.094787599 True True +ASPM_HUMAN 0.369667496 True True +AT133_HUMAN 1.627668371 True True +AT1A1_HUMAN 2.904315518 True True +AT2B1_HUMAN 2.165602139 True True +ATRX_HUMAN 0.701149125 True True +ATX2L_HUMAN 4.425369048 True True +AZI1_HUMAN 1.861521522 True True +B2L13_HUMAN 1.614443902 True True +B4DGC6_HUMAN 0.752406932 True True +B4DM10_HUMAN 0.474391755 True True +B4DQA8_HUMAN 0.12336285 True True +B4DQQ2_HUMAN 0.509838368 True True +B4DSL6_HUMAN 1.401622791 True True +B4DZC2_HUMAN 0.736249376 True True +BACH_HUMAN 0.409715682 True True +BACH2_HUMAN 0.942291628 True True +BAD_HUMAN 0.390261342 True True +BAG6_HUMAN 0.406028443 True True +BAP18_HUMAN 2.420530962 True True +BARD1_HUMAN 0.113513875 True True +BAZ1B_HUMAN 0.714778368 True True +BAZ2A_HUMAN 1.358383434 True True +BBX_HUMAN 1.196178614 True True +BCAR1_HUMAN 5.368797237 True True +BCLF1_HUMAN 3.268307286 True True +BCS1_HUMAN 1.435079955 True True +BIG3_HUMAN 0.978095454 True True +BMS1_HUMAN 1.398231144 True True +BORG1_HUMAN 0.8309547 True True +BORG4_HUMAN 0.908661259 True True +BRAP_HUMAN 0.507219767 True True +BRD2_HUMAN 1.88956051 True True +BRD3_HUMAN 0.351886484 True True +BUD13_HUMAN 1.407446196 True True +BZW2_HUMAN 0.610443432 True True +C170B_HUMAN 0.887656818 True True +C2CD5_HUMAN 0.319586924 True True +CA052_HUMAN 1.950626165 True True +CA172_HUMAN 0.676879108 True True +CAAP1_HUMAN 0.46595922 True True +CAF1B_HUMAN 0.356408629 True True +CALM_HUMAN 0.977490284 True True +CALX_HUMAN 1.062601393 True True +CAV1_HUMAN 0.258171175 True True \ No newline at end of file diff --git a/spras/omicsintegrator1.py b/spras/omicsintegrator1.py index ff7f8ee7..d9a26b9a 100644 --- a/spras/omicsintegrator1.py +++ b/spras/omicsintegrator1.py @@ -75,9 +75,11 @@ def generate_inputs(data, filename_map): # Omics Integrator already gives warnings for strange prize values, so we won't here node_df.to_csv(filename_map['prizes'],sep='\t',index=False,columns=['NODEID','prize'],header=['name','prize']) - print("DATA: NODE TABLE") + print("DATA: NODE TABLE - true dummy") print(data.node_table[data.node_table['dummy']==True]) + print("DATA: NODE TABLE") print(data.node_table.head()) + print(len(data.node_table)) print("NODE DF") print(node_df.head()) From 0d34b21230ab0023ab12c19da929c647f6361f4b Mon Sep 17 00:00:00 2001 From: Sumedha Sanjeev Date: Fri, 27 Sep 2024 12:32:57 -0500 Subject: [PATCH 12/30] remove debugging statemenets --- config/config.yaml | 4 ++-- spras/omicsintegrator1.py | 8 -------- 2 files changed, 2 insertions(+), 10 deletions(-) diff --git a/config/config.yaml b/config/config.yaml index 6d2b4863..027ff615 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -59,7 +59,7 @@ algorithms: b: [5, 6] w: np.linspace(0,5,2) d: [10] - dummy_mode: ["file"] + dummy_mode: ["terminals"] - name: "omicsintegrator2" params: @@ -105,7 +105,7 @@ datasets: - # Labels can only contain letters, numbers, or underscores label: hivtest2 - node_files: ["modified_prize_05.txt", "dummy.txt"] + node_files: ["modified_prize_05.txt"] # DataLoader.py can currently only load a single edge file, which is the primary network edge_files: ["phosphosite-irefindex13.0-uniprot.txt"] # Placeholder diff --git a/spras/omicsintegrator1.py b/spras/omicsintegrator1.py index d9a26b9a..d50b0a11 100644 --- a/spras/omicsintegrator1.py +++ b/spras/omicsintegrator1.py @@ -75,14 +75,6 @@ def generate_inputs(data, filename_map): # Omics Integrator already gives warnings for strange prize values, so we won't here node_df.to_csv(filename_map['prizes'],sep='\t',index=False,columns=['NODEID','prize'],header=['name','prize']) - print("DATA: NODE TABLE - true dummy") - print(data.node_table[data.node_table['dummy']==True]) - print("DATA: NODE TABLE") - print(data.node_table.head()) - print(len(data.node_table)) - print("NODE DF") - print(node_df.head()) - # Get network file edges_df = data.get_interactome() From 541812b309b81cf93df47a3e274b1f74c0ec1075 Mon Sep 17 00:00:00 2001 From: Sumedha Sanjeev Date: Fri, 18 Oct 2024 18:10:36 -0500 Subject: [PATCH 13/30] pr changes --- config/config.yaml | 45 ++++++++++++-------- input/README.md | 25 +++++++++++ input/dummy-1.txt | 55 ------------------------- input/dummy.txt | 87 +-------------------------------------- input/node-prizes.txt | 2 +- input/tps-egfr-prizes.txt | 2 +- spras/omicsintegrator1.py | 1 - 7 files changed, 56 insertions(+), 161 deletions(-) delete mode 100644 input/dummy-1.txt diff --git a/config/config.yaml b/config/config.yaml index 027ff615..a2428077 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -42,9 +42,6 @@ container_registry: # then myAlg will be run on (a=1,b=0.5),(a=1,b=0.75),(a=2,b=0.5), and (a=2,b=0,75). Pretty neat, but be # careful: too many parameters might make your runs take a long time. -# TODO: where does the dummy node argument go? -# i.e. where do i set dummy_mode = all, etc. - algorithms: - name: "pathlinker" params: @@ -73,7 +70,7 @@ algorithms: - name: "meo" params: - include: false + include: false run1: max_path_length: [3] local_search: ["Yes"] @@ -104,24 +101,38 @@ algorithms: datasets: - # Labels can only contain letters, numbers, or underscores - label: hivtest2 - node_files: ["modified_prize_05.txt"] + label: data0 + # To run OmicsIntegrator1 with dummy nodes, add the dummy.txt file to node_files + node_files: ["node-prizes.txt", "sources.txt", "targets.txt"] # DataLoader.py can currently only load a single edge file, which is the primary network - edge_files: ["phosphosite-irefindex13.0-uniprot.txt"] + edge_files: ["network.txt"] # Placeholder other_files: [] # Relative path from the spras directory data_dir: "input" + - + label: data1 + # Reuse some of the same sources file as 'data0' but different network and targets + node_files: ["node-prizes.txt", "sources.txt", "alternative-targets.txt"] + edge_files: ["alternative-network.txt"] + other_files: [] + # Relative path from the spras directory + data_dir: "input" -# gold_standards: -# - -# # Labels can only contain letters, numbers, or underscores -# label: gs0 -# node_files: ["gs_nodes0.txt"] -# # edge_files: [] TODO: later iteration -# data_dir: "input" -# # List of dataset labels to compare with the specific gold standard dataset -# dataset_labels: ["data0"] +gold_standards: + - + # Labels can only contain letters, numbers, or underscores + label: gs0 + node_files: ["gs_nodes0.txt"] + # edge_files: [] TODO: later iteration + data_dir: "input" + # List of dataset labels to compare with the specific gold standard dataset + dataset_labels: ["data0"] + - + label: gs1 + node_files: ["gs_nodes1.txt"] + data_dir: "input" + dataset_labels: ["data1", "data0"] # If we want to reconstruct then we should set run to true. # TODO: if include is true above but run is false here, algs are not run. @@ -164,4 +175,4 @@ analysis: # 'euclidean', 'manhattan', 'cosine' metric: 'euclidean' evaluation: - include: false + include: true \ No newline at end of file diff --git a/input/README.md b/input/README.md index 5c7a59fc..8ebfede4 100644 --- a/input/README.md +++ b/input/README.md @@ -18,6 +18,31 @@ C 2.5 True True D 1.9 True True True ``` +##### OmicsIntegrator1: Dummy Nodes +There are 4 dummy mode possibilities: + 1. terminals -> connect the dummy node to all nodes that have been assigned prizes + 2. all -> connect the dummy node to all nodes in the interactome i.e. full set of nodes in graph + 3. others -> connect the dummy node to all nodes that are not terminal nodes i.e. nodes w/o prizes + 4. file -> custom nodes - connect the dummy node to a specific list of nodes provided in a file +To support the `file` dummy node logic as part of OmicsIntegrator1, you can either add a seperate `dummy.txt` file (and add this to the `node_files` argument in `config.yaml `) or add a `dummy` column node attribute to a file that contains `NODEID`, `prize`, `source`, etc. + +If adding a seperate `dummy.txt` file: +Make a file with the name `dummy.txt` and list the dummy nodes, each seperated by a new line. Example: +``` +A +B +C +``` + +If adding the `dummy` column node attribute, then add the dummy column and specify boolean values for the `dummy` attribute: +``` +NODEID prize sources targets dummy +A 1.0 True True True +B 3.3 True True +C 2.5 True True +D 1.9 True True True +``` + A secondary format provides only a list of node identifiers and uses the filename as the node attribute, as in the example `sources.txt`. This format may be deprecated. diff --git a/input/dummy-1.txt b/input/dummy-1.txt deleted file mode 100644 index 535f50a7..00000000 --- a/input/dummy-1.txt +++ /dev/null @@ -1,55 +0,0 @@ -UBAC2_HUMAN -H37_HUMAN -PHF3_HUMAN -DDX52_HUMAN -HNRPK_HUMAN -Q5T5H1_HUMAN -ZC11A_HUMAN -TCPG_HUMAN -2A5E_HUMAN -CPNE2_HUMAN -HEYL_HUMAN -CAMP1_HUMAN -SVEP1_HUMAN -SPRL1_HUMAN -C9JFD3_HUMAN -THAP5_HUMAN -NCOR1_HUMAN -SKIL_HUMAN -A8YXX4_HUMAN -CO4A2_HUMAN -ZBTB3_HUMAN -MORC4_HUMAN -HIPK3_HUMAN -ZN200_HUMAN -TGFR1_HUMAN -Q2TU89_HUMAN -SUMO2_HUMAN -UBC9_HUMAN -AXIN1_HUMAN -RS27_HUMAN -UBP25_HUMAN -RN111_HUMAN -CBX4_HUMAN -B4E127_HUMAN -G4XH65_HUMAN -CPNE1_HUMAN -HDAC1_HUMAN -RNF4_HUMAN -SETB1_HUMAN -SMAD2_HUMAN -TRI62_HUMAN -FAF1_HUMAN -EF1G_HUMAN -AHNK_HUMAN -LRP1_HUMAN -UIMC1_HUMAN -B3KWV4_HUMAN -CDC27_HUMAN -RB_HUMAN -ZMYM2_HUMAN -WWP1_HUMAN -RU17_HUMAN -HIPK1_HUMAN -ZZEF1_HUMAN -SMAD4_HUMAN \ No newline at end of file diff --git a/input/dummy.txt b/input/dummy.txt index 92fb21f7..8c7e5a66 100644 --- a/input/dummy.txt +++ b/input/dummy.txt @@ -1,86 +1 @@ -NODEID prize sources dummy active -1433Z_HUMAN 1.041379133 True True -41_HUMAN 3.389112802 True True -4ET_HUMAN 2.569973509 True True -A8K1N6_HUMAN 1.948221966 True True -A9CQZ4_HUMAN 0.421460919 True True -AAGAB_HUMAN 0.906857382 True True -ABCF1_HUMAN 1.662535462 True True -ABI1_HUMAN 2.262002188 True True -ABI2_HUMAN 6.039545959 True True -ABLM1_HUMAN 1.851877252 True True -ACACA_HUMAN 1.413801552 True True -ACAP2_HUMAN 2.26361378 True True -ACINU_HUMAN 5.059742801 True True -ACK1_HUMAN 4.634804389 True True -ACLY_HUMAN 0.924296287 True True -ACTB_HUMAN 6.332977709 True True -ADAT1_HUMAN 0.15086641 True True -ADCY6_HUMAN 0.213467876 True True -ADDA_HUMAN 2.023396633 True True -ADNP_HUMAN 1.863304115 True True -AFAD_HUMAN 5.746711895 True True -AFTIN_HUMAN 1.428578311 True True -AHNK_HUMAN 1.03846887 True True -AKA10_HUMAN 1.256166574 True True -AKA11_HUMAN 0.927725859 True True -AKA12_HUMAN 0.839912266 True True -AKAP1_HUMAN 1.744860335 True True -AKAP2_HUMAN 1.596611866 True True -AMOT_HUMAN 1.79256998 True True -ANS1A_HUMAN 2.76115098 True True -ANXA2_HUMAN 1.709856841 True True -AP3D1_HUMAN 4.077699923 True True -APC1_HUMAN 0.888837295 True True -AR6P4_HUMAN 0.701112743 True True -AR6P6_HUMAN 2.695059469 True True -ARHG5_HUMAN 7.044363255 True True -ARHG7_HUMAN 3.809839832 True True -ARHGB_HUMAN 2.260010614 True True -ARIP4_HUMAN 0.270475986 True True -ARMX3_HUMAN 0.11573305 True True -ARP8_HUMAN 1.094787599 True True -ASPM_HUMAN 0.369667496 True True -AT133_HUMAN 1.627668371 True True -AT1A1_HUMAN 2.904315518 True True -AT2B1_HUMAN 2.165602139 True True -ATRX_HUMAN 0.701149125 True True -ATX2L_HUMAN 4.425369048 True True -AZI1_HUMAN 1.861521522 True True -B2L13_HUMAN 1.614443902 True True -B4DGC6_HUMAN 0.752406932 True True -B4DM10_HUMAN 0.474391755 True True -B4DQA8_HUMAN 0.12336285 True True -B4DQQ2_HUMAN 0.509838368 True True -B4DSL6_HUMAN 1.401622791 True True -B4DZC2_HUMAN 0.736249376 True True -BACH_HUMAN 0.409715682 True True -BACH2_HUMAN 0.942291628 True True -BAD_HUMAN 0.390261342 True True -BAG6_HUMAN 0.406028443 True True -BAP18_HUMAN 2.420530962 True True -BARD1_HUMAN 0.113513875 True True -BAZ1B_HUMAN 0.714778368 True True -BAZ2A_HUMAN 1.358383434 True True -BBX_HUMAN 1.196178614 True True -BCAR1_HUMAN 5.368797237 True True -BCLF1_HUMAN 3.268307286 True True -BCS1_HUMAN 1.435079955 True True -BIG3_HUMAN 0.978095454 True True -BMS1_HUMAN 1.398231144 True True -BORG1_HUMAN 0.8309547 True True -BORG4_HUMAN 0.908661259 True True -BRAP_HUMAN 0.507219767 True True -BRD2_HUMAN 1.88956051 True True -BRD3_HUMAN 0.351886484 True True -BUD13_HUMAN 1.407446196 True True -BZW2_HUMAN 0.610443432 True True -C170B_HUMAN 0.887656818 True True -C2CD5_HUMAN 0.319586924 True True -CA052_HUMAN 1.950626165 True True -CA172_HUMAN 0.676879108 True True -CAAP1_HUMAN 0.46595922 True True -CAF1B_HUMAN 0.356408629 True True -CALM_HUMAN 0.977490284 True True -CALX_HUMAN 1.062601393 True True -CAV1_HUMAN 0.258171175 True True \ No newline at end of file +A \ No newline at end of file diff --git a/input/node-prizes.txt b/input/node-prizes.txt index 0e1f682d..2ce28bb7 100644 --- a/input/node-prizes.txt +++ b/input/node-prizes.txt @@ -1,3 +1,3 @@ -NODEID prize active +NODEID prize active dummy A 2 true C 5.7 true diff --git a/input/tps-egfr-prizes.txt b/input/tps-egfr-prizes.txt index 71afb4b9..9f25672e 100644 --- a/input/tps-egfr-prizes.txt +++ b/input/tps-egfr-prizes.txt @@ -1,4 +1,4 @@ -NODEID prize sources targets active +NODEID prize sources targets active dummy 1433Z_HUMAN 1.041379133 True True 41_HUMAN 3.389112802 True True 4ET_HUMAN 2.569973509 True True diff --git a/spras/omicsintegrator1.py b/spras/omicsintegrator1.py index d50b0a11..035b747c 100644 --- a/spras/omicsintegrator1.py +++ b/spras/omicsintegrator1.py @@ -87,7 +87,6 @@ def generate_inputs(data, filename_map): if 'dummy' in data.node_table.columns: dummy_df = data.node_table[data.node_table['dummy'] == True] # save as list of dummy nodes - # dummy_df.to_csv(filename_map['dummy_nodes'], sep='\t', index=False, columns=['NODEID', 'dummy'], header=['NODEID', 'dummy']) dummy_df.to_csv(filename_map['dummy_nodes'], index=False, columns=['NODEID'], header=None) else: # create empty dummy file From c14e1fc23c08575f5da0228a42753589c0ac9aae Mon Sep 17 00:00:00 2001 From: ntalluri Date: Fri, 25 Oct 2024 12:39:21 -0500 Subject: [PATCH 14/30] update code to pre and post process underscores in node names --- spras/meo.py | 9 ++++++++- test/MEO/input/meo-edges.txt | 6 +++--- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/spras/meo.py b/spras/meo.py index b614d4c4..3382c54b 100644 --- a/spras/meo.py +++ b/spras/meo.py @@ -88,6 +88,8 @@ def generate_inputs(data, filename_map): # TODO test whether this selection is needed, what values could the column contain that we would want to # include or exclude? nodes = nodes.loc[nodes[node_type]] + # replace _'s with ꧁SEP꧂ + nodes['NODEID'] = nodes['NODEID'].str.replace('_', '꧁SEP꧂') nodes.to_csv(filename_map[node_type], index=False, columns=['NODEID'], header=False) # Create network file @@ -95,7 +97,9 @@ def generate_inputs(data, filename_map): # Format network file edges = add_directionality_constant(edges, 'EdgeType', '(pd)', '(pp)') - + # replace _'s with ꧁SEP꧂ + edges['Interactor1'] = edges['Interactor1'].str.replace('_', '꧁SEP꧂') + edges['Interactor2'] = edges['Interactor2'].str.replace('_', '꧁SEP꧂') edges.to_csv(filename_map['edges'], sep='\t', index=False, columns=['Interactor1', 'EdgeType', 'Interactor2', 'Weight'], header=False) @@ -181,6 +185,9 @@ def parse_output(raw_pathway_file, standardized_pathway_file): # Columns Source Type Target Oriented Weight df = raw_pathway_df(raw_pathway_file, sep='\t', header=0) if not df.empty: + # Replace ꧁SEP꧂ with _ + df['Source'] = df['Source'].str.replace('꧁SEP꧂', '_') + df['Target'] = df['Target'].str.replace('꧁SEP꧂', '_') # Keep only edges that were assigned an orientation (direction) df = df.loc[df['Oriented']] # TODO what should be the edge rank? diff --git a/test/MEO/input/meo-edges.txt b/test/MEO/input/meo-edges.txt index 25e05b80..dbad11c3 100644 --- a/test/MEO/input/meo-edges.txt +++ b/test/MEO/input/meo-edges.txt @@ -1,6 +1,6 @@ -GeneA (pp) GeneC 0.5 -GeneB (pp) GeneC 0.5 -GeneC (pp) GeneD 0.5 +Gene_A (pp) Gene_C 0.5 +GeneB (pp) Gene_C 0.5 +Gene_C (pp) GeneD 0.5 GeneD (pp) GeneE 0.5 GeneD (pp) GeneG 0.5 GeneE (pp) GeneF 0.5 From 0230455631235e9419bd7a25f1e0b902af738bca Mon Sep 17 00:00:00 2001 From: ntalluri Date: Fri, 25 Oct 2024 12:40:48 -0500 Subject: [PATCH 15/30] update wrong test --- test/MEO/input/meo-edges.txt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/test/MEO/input/meo-edges.txt b/test/MEO/input/meo-edges.txt index dbad11c3..25e05b80 100644 --- a/test/MEO/input/meo-edges.txt +++ b/test/MEO/input/meo-edges.txt @@ -1,6 +1,6 @@ -Gene_A (pp) Gene_C 0.5 -GeneB (pp) Gene_C 0.5 -Gene_C (pp) GeneD 0.5 +GeneA (pp) GeneC 0.5 +GeneB (pp) GeneC 0.5 +GeneC (pp) GeneD 0.5 GeneD (pp) GeneE 0.5 GeneD (pp) GeneG 0.5 GeneE (pp) GeneF 0.5 From 73cbf13ab2dfeddd5b1e78e6cdc4232aa9c4026b Mon Sep 17 00:00:00 2001 From: ntalluri Date: Fri, 25 Oct 2024 12:59:45 -0500 Subject: [PATCH 16/30] updated parse-outputs test --- test/parse-outputs/expected/meo-pathway-expected.txt | 4 ++-- test/parse-outputs/input/meo-raw-pathway.txt | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/test/parse-outputs/expected/meo-pathway-expected.txt b/test/parse-outputs/expected/meo-pathway-expected.txt index 6515013f..0023a8f7 100644 --- a/test/parse-outputs/expected/meo-pathway-expected.txt +++ b/test/parse-outputs/expected/meo-pathway-expected.txt @@ -1,3 +1,3 @@ Node1 Node2 Rank Direction -GENEA GENEC 1 D -GENEC GENEB 1 D +GENE_A GENE_C 1 D +GENE_C GENEB 1 D diff --git a/test/parse-outputs/input/meo-raw-pathway.txt b/test/parse-outputs/input/meo-raw-pathway.txt index 9f44a8d5..9e1a6b8f 100644 --- a/test/parse-outputs/input/meo-raw-pathway.txt +++ b/test/parse-outputs/input/meo-raw-pathway.txt @@ -1,3 +1,3 @@ Source Type Target Oriented Weight -GENEA pp GENEC true 0.5 -GENEC pd GENEB true 0.5 +GENE꧁SEP꧂A pp GENE꧁SEP꧂C true 0.5 +GENE꧁SEP꧂C pd GENEB true 0.5 From a7ee85bcbb4ca81a501540e69dfb0d7a4d3bfc82 Mon Sep 17 00:00:00 2001 From: Sumedha Sanjeev Date: Sat, 26 Oct 2024 17:38:05 -0500 Subject: [PATCH 17/30] pr changes --- config/config.yaml | 14 +- input/modified_prize_05.txt | 1124 ----------------------------------- spras/omicsintegrator1.py | 12 +- 3 files changed, 13 insertions(+), 1137 deletions(-) delete mode 100644 input/modified_prize_05.txt diff --git a/config/config.yaml b/config/config.yaml index a2428077..6b1949fa 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -45,7 +45,7 @@ container_registry: algorithms: - name: "pathlinker" params: - include: false + include: true run1: k: range(100,201,100) @@ -56,11 +56,11 @@ algorithms: b: [5, 6] w: np.linspace(0,5,2) d: [10] - dummy_mode: ["terminals"] + dummy_mode: ["terminals"] - name: "omicsintegrator2" params: - include: false + include: true run1: b: [4] g: [0] @@ -70,7 +70,7 @@ algorithms: - name: "meo" params: - include: false + include: true run1: max_path_length: [3] local_search: ["Yes"] @@ -78,18 +78,18 @@ algorithms: - name: "mincostflow" params: - include: false + include: true run1: flow: [1] # The flow must be an int capacity: [1] - name: "allpairs" params: - include: false + include: true - name: "domino" params: - include: false + include: true run1: slice_threshold: [0.3] module_threshold: [0.05] diff --git a/input/modified_prize_05.txt b/input/modified_prize_05.txt deleted file mode 100644 index bd3be433..00000000 --- a/input/modified_prize_05.txt +++ /dev/null @@ -1,1124 +0,0 @@ -NODEID prize -B0YIW2_HUMAN 5.029365599650682 -HTF4_HUMAN 4.582688156260696 -FETUA_HUMAN 4.027455886706566 -HBA_HUMAN 3.955817065609741 -KCRM_HUMAN 3.885427876677981 -B7ZKJ8_HUMAN 3.885427876677981 -H4_HUMAN 3.885427876677981 -FBLN1_HUMAN 3.885427876677981 -H3BLZ8_HUMAN 3.737659276683696 -MMTA2_HUMAN 3.645611351503717 -CL16A_HUMAN 3.645611351503717 -ALBU_HUMAN 3.495543593199523 -UBAC2_HUMAN 3.4400540448812222 -H37_HUMAN 3.4400540448812222 -PHF3_HUMAN 3.324208299637505 -DDX52_HUMAN 3.324208299637505 -TBA1B_HUMAN 3.324208299637505 -HNRPK_HUMAN 3.3188421301096285 -Q5T5H1_HUMAN 3.3188421301096285 -ZC11A_HUMAN 3.3188421301096285 -EPB41_HUMAN 3.3010716433184752 -LARP1_HUMAN 3.3010716433184752 -GLYR1_HUMAN 3.291925211826148 -ZC3HD_HUMAN 3.291925211826148 -TRFE_HUMAN 3.2382104940279395 -A0A0A0MTS7_HUMAN 3.238051370574229 -RL34_HUMAN 3.199587163788601 -HOMEZ_HUMAN 3.1604645579223023 -A2MG_HUMAN 3.1604645579223023 -ITIH2_HUMAN 3.144305136412102 -PLMN_HUMAN 3.1395052780156214 -PCLO_HUMAN 3.1395052780156214 -TRFL_HUMAN 3.1395052780156214 -NU153_HUMAN 3.1383736075715567 -HNRH3_HUMAN 3.1358609655646563 -H12_HUMAN 3.096027032739838 -A0A087WVP1_HUMAN 3.0343829212843927 -NDUA5_HUMAN 3.029621522802649 -PZP_HUMAN 3.029621522802649 -TRI32_HUMAN 3.029008185470572 -ITIH1_HUMAN 3.029008185470572 -TETN_HUMAN 3.029008185470572 -POSTN_HUMAN 3.029008185470572 -PTBP1_HUMAN 2.962566624533064 -PEDF_HUMAN 2.962566624533064 -A0A0G2JQJ7_HUMAN 2.962566624533064 -CO7_HUMAN 2.962566624533064 -CO3_HUMAN 2.962566624533064 -A2AP_HUMAN 2.962566624533064 -ANT3_HUMAN 2.9454736787752185 -THBG_HUMAN 2.938925530905134 -SRS10_HUMAN 2.829700827078314 -LCAP_HUMAN 2.829700827078314 -SRSF2_HUMAN 2.829700827078314 -LUZP1_HUMAN 2.829700827078314 -SP16H_HUMAN 2.829700827078314 -AGAP2_HUMAN 2.829700827078314 -A0A087X0X3_HUMAN 2.795249183187452 -C9JV77_HUMAN 2.7916197949376103 -H15_HUMAN 2.747877665335442 -A8MXP9_HUMAN 2.7306756910406835 -WBP11_HUMAN 2.7306756910406835 -RASL3_HUMAN 2.7306756910406835 -E9PCW1_HUMAN 2.7306756910406835 -APOA1_HUMAN 2.720750771925425 -A9Z1X7_HUMAN 2.7206557198521564 -MPZL1_HUMAN 2.7206557198521564 -PTN1_HUMAN 2.7206557198521564 -EIF3A_HUMAN 2.7053973652732437 -CO9_HUMAN 2.642270222720444 -DNLI1_HUMAN 2.62905096626394 -A0A087WX41_HUMAN 2.62527679827281 -RSRC2_HUMAN 2.62527679827281 -MAGD1_HUMAN 2.6037488593668185 -K4DI81_HUMAN 2.58545961733328 -TSP4_HUMAN 2.5781570496516366 -MCTP2_HUMAN 2.5739996934436533 -SRRM2_HUMAN 2.5599794882543963 -PHAX_HUMAN 2.55229335257594 -CCD86_HUMAN 2.5433868130220105 -T2AG_HUMAN 2.5153505347187397 -RBM14_HUMAN 2.51233260431366 -SNIP1_HUMAN 2.51233260431366 -RS10_HUMAN 2.4894305938870938 -PRC2C_HUMAN 2.4894305938870938 -JUPI1_HUMAN 2.48882925856076 -A0A075B738_HUMAN 2.481386971939166 -LYAR_HUMAN 2.481386971939166 -ABI1_HUMAN 2.481386971939166 -KPBB_HUMAN 2.481386971939166 -A0A0G2JPR0_HUMAN 2.460765792624727 -M0QYC1_HUMAN 2.432755782368094 -PHF2_HUMAN 2.415789642322741 -PRC2A_HUMAN 2.4140889675670696 -NEK4_HUMAN 2.4140889675670696 -TF2B_HUMAN 2.4140889675670696 -HJURP_HUMAN 2.4140889675670696 -STMN1_HUMAN 2.4140889675670696 -GELS_HUMAN 2.4104977645875323 -RAI1_HUMAN 2.407172399141249 -TTC4_HUMAN 2.380388595749011 -FA53C_HUMAN 2.349945242744137 -H0Y5F5_HUMAN 2.3235758982106964 -TBB4A_HUMAN 2.323008637528439 -HMHA1_HUMAN 2.320724815309965 -LEUK_HUMAN 2.3002413241447117 -RRP12_HUMAN 2.296341778114889 -VTDB_HUMAN 2.287877464838444 -LMO7_HUMAN 2.283650895240041 -RNF25_HUMAN 2.283650895240041 -C10_HUMAN 2.281967707725145 -SKI2_HUMAN 2.281967707725145 -ATP4A_HUMAN 2.281967707725145 -TCF25_HUMAN 2.281967707725145 -TM160_HUMAN 2.2816943670374368 -ACINU_HUMAN 2.2724349590916813 -C9JYS8_HUMAN 2.2724349590916813 -TSP1_HUMAN 2.265610263847204 -PCM1_HUMAN 2.2486198914855287 -CLAP1_HUMAN 2.24046014360604 -A0A0C4DGB9_HUMAN 2.236380744008414 -TRA2B_HUMAN 2.2320502169087955 -HEBP2_HUMAN 2.2211603377352622 -GLE1_HUMAN 2.2142665101729357 -CUL4A_HUMAN 2.2123687456514425 -RB15B_HUMAN 2.208371655746705 -PHF8_HUMAN 2.20252042150617 -KI67_HUMAN 2.198038970223691 -H0Y449_HUMAN 2.195984606980593 -FEM1A_HUMAN 2.1906023175925395 -MY18A_HUMAN 2.175819836002309 -GBB3_HUMAN 2.175819836002309 -RBP56_HUMAN 2.153112950890257 -TBC13_HUMAN 2.1478379363448883 -SF3B1_HUMAN 2.1439001320846174 -AKT2_HUMAN 2.1439001320846174 -SLTM_HUMAN 2.1439001320846174 -RBM22_HUMAN 2.1439001320846174 -ATF7_HUMAN 2.1439001320846174 -ARC1A_HUMAN 2.1439001320846174 -NDUB8_HUMAN 2.114945948576723 -SENP1_HUMAN 2.114945948576723 -CD2AP_HUMAN 2.112392025090484 -CDK9_HUMAN 2.105059488765234 -S39AA_HUMAN 2.101534906059656 -NFAC1_HUMAN 2.101534906059656 -RB_HUMAN 2.100687896308613 -B7WPE2_HUMAN 2.100687896308613 -LS14A_HUMAN 2.100687896308613 -ATF2_HUMAN 2.100160602610354 -H14_HUMAN 2.096770743840173 -KAPCB_HUMAN 2.093004073260828 -NELFE_HUMAN 2.093004073260828 -NUCL_HUMAN 2.093004073260828 -ARFG2_HUMAN 2.093004073260828 -RL1D1_HUMAN 2.093004073260828 -IF16_HUMAN 2.093004073260828 -ZMYD8_HUMAN 2.093004073260828 -BD1L1_HUMAN 2.093004073260828 -SMG5_HUMAN 2.093004073260828 -GBRG2_HUMAN 2.093004073260828 -UBP1_HUMAN 2.093004073260828 -SPIR1_HUMAN 2.093004073260828 -CRTC1_HUMAN 2.093004073260828 -DBNL_HUMAN 2.093004073260828 -CTRO_HUMAN 2.093004073260828 -DDX5_HUMAN 2.093004073260828 -NCBP1_HUMAN 2.093004073260828 -ELL2_HUMAN 2.093004073260828 -TLE5_HUMAN 2.093004073260828 -ROA2_HUMAN 2.093004073260828 -CAP1_HUMAN 2.093004073260828 -NPM_HUMAN 2.093004073260828 -MCES_HUMAN 2.093004073260828 -E9PGC8_HUMAN 2.093004073260828 -RSRC1_HUMAN 2.093004073260828 -MARE2_HUMAN 2.093004073260828 -H2B1M_HUMAN 2.093004073260828 -TB182_HUMAN 2.093004073260828 -TR150_HUMAN 2.093004073260828 -J3QR29_HUMAN 2.093004073260828 -THOC5_HUMAN 2.093004073260828 -A0A096LP69_HUMAN 2.093004073260828 -NOLC1_HUMAN 2.093004073260828 -CCNT1_HUMAN 2.093004073260828 -A0A087X188_HUMAN 2.093004073260828 -A0A075B6G3_HUMAN 2.093004073260828 -RBMX_HUMAN 2.093004073260828 -IF4B_HUMAN 2.093004073260828 -ROA0_HUMAN 2.093004073260828 -T2FA_HUMAN 2.093004073260828 -WNK1_HUMAN 2.093004073260828 -MTCL2_HUMAN 2.093004073260828 -SRSF4_HUMAN 2.093004073260828 -TRIPC_HUMAN 2.093004073260828 -SNX17_HUMAN 2.093004073260828 -PCF11_HUMAN 2.093004073260828 -DC1L1_HUMAN 2.093004073260828 -VPS72_HUMAN 2.093004073260828 -MKRN2_HUMAN 2.093004073260828 -NKAP1_HUMAN 2.093004073260828 -L2GL1_HUMAN 2.093004073260828 -RS6_HUMAN 2.093004073260828 -SFSWA_HUMAN 2.093004073260828 -ULK1_HUMAN 2.093004073260828 -E9PN89_HUMAN 2.093004073260828 -SYMPK_HUMAN 2.093004073260828 -RS27A_HUMAN 2.093004073260828 -PRCC_HUMAN 2.093004073260828 -EDC3_HUMAN 2.093004073260828 -RRAGC_HUMAN 2.093004073260828 -TCOF_HUMAN 2.093004073260828 -F8W7T1_HUMAN 2.093004073260828 -PPM1H_HUMAN 2.093004073260828 -KI18B_HUMAN 2.093004073260828 -CE350_HUMAN 2.091231409713808 -KNL1_HUMAN 2.091231409713808 -CSKI2_HUMAN 2.091231409713808 -UBP24_HUMAN 2.091231409713808 -SIN3B_HUMAN 2.091231409713808 -AAAT_HUMAN 2.091231409713808 -PB1_HUMAN 2.091231409713808 -ARGL1_HUMAN 2.091231409713808 -CCD92_HUMAN 2.091231409713808 -E7EQT4_HUMAN 2.091231409713808 -BUD13_HUMAN 2.091231409713808 -FNBP4_HUMAN 2.091231409713808 -SUMO2_HUMAN 2.091231409713808 -ROAA_HUMAN 2.091231409713808 -MAST3_HUMAN 2.091231409713808 -UFL1_HUMAN 2.091231409713808 -GNL1_HUMAN 2.0892707200089293 -Q9HBD4_HUMAN 2.0892707200089293 -SF3B5_HUMAN 2.0844344915355792 -SEM4D_HUMAN 2.0844344915355792 -AN32B_HUMAN 2.081399852781724 -SCAF4_HUMAN 2.080073763404992 -SMRC2_HUMAN 2.0770885338720166 -NUMA1_HUMAN 2.0741363450505035 -UBE2T_HUMAN 2.0741363450505035 -E7EVA0_HUMAN 2.0741363450505035 -H9KVB4_HUMAN 2.0741363450505035 -E9PG73_HUMAN 2.0741363450505035 -OBI1_HUMAN 2.0741363450505035 -NCOA5_HUMAN 2.0741363450505035 -CUX1_HUMAN 2.0741363450505035 -MTOR_HUMAN 2.0741363450505035 -TPX2_HUMAN 2.0741363450505035 -ADDB_HUMAN 2.0741363450505035 -YTDC1_HUMAN 2.0741363450505035 -ARP19_HUMAN 2.0741363450505035 -LZTS1_HUMAN 2.0741363450505035 -SMRCD_HUMAN 2.0741363450505035 -SNW1_HUMAN 2.0741363450505035 -S39A7_HUMAN 2.0741363450505035 -PHB2_HUMAN 2.0741363450505035 -WBP4_HUMAN 2.0741363450505035 -SPD2B_HUMAN 2.0741363450505035 -AB1IP_HUMAN 2.0741363450505035 -DNJB2_HUMAN 2.0741363450505035 -TF3C1_HUMAN 2.0741363450505035 -PNM8A_HUMAN 2.0741363450505035 -COF1_HUMAN 2.0741363450505035 -IWS1_HUMAN 2.0741363450505035 -RHG01_HUMAN 2.0741363450505035 -PLEC_HUMAN 2.0741363450505035 -RN168_HUMAN 2.0741363450505035 -DDX21_HUMAN 2.0741363450505035 -NSD2_HUMAN 2.0741363450505035 -F5H7W8_HUMAN 2.0741363450505035 -PHF20_HUMAN 2.0741363450505035 -PR38B_HUMAN 2.0741363450505035 -MNX1_HUMAN 2.0741363450505035 -ELF1_HUMAN 2.0741363450505035 -ZC3C1_HUMAN 2.0741363450505035 -CTCF_HUMAN 2.0741363450505035 -E7ESS2_HUMAN 2.0741363450505035 -EPN4_HUMAN 2.0741363450505035 -RAB1A_HUMAN 2.0741363450505035 -TP53B_HUMAN 2.0741363450505035 -RBP2_HUMAN 2.0713486005782946 -RBM5_HUMAN 2.0713486005782946 -KMT2C_HUMAN 2.0713486005782946 -A0A087WUE4_HUMAN 2.0713486005782946 -T22D4_HUMAN 2.0713486005782946 -C9JCC6_HUMAN 2.070445474815505 -K2C1_HUMAN 2.070445474815505 -GRAP2_HUMAN 2.0694380337606075 -CBX5_HUMAN 2.0694380337606075 -ARI4A_HUMAN 2.0694380337606075 -CIR1_HUMAN 2.066314476087648 -TEX2_HUMAN 2.066247893108421 -TNR8_HUMAN 2.06313711752553 -BC11B_HUMAN 2.063074993592968 -G5E9I4_HUMAN 2.057475184452913 -AMPD2_HUMAN 2.057475184452913 -JIP4_HUMAN 2.057475184452913 -BAG4_HUMAN 2.057475184452913 -NAB1_HUMAN 2.057475184452913 -SCAFB_HUMAN 2.057475184452913 -2A5E_HUMAN 2.053529256826423 -CYTSA_HUMAN 2.053529256826423 -LIMA1_HUMAN 2.053529256826423 -DCP2_HUMAN 2.0479931944263523 -MCM4_HUMAN 2.0479931944263523 -BCLF1_HUMAN 2.047635344122845 -F110C_HUMAN 2.047635344122845 -CCAR2_HUMAN 2.047635344122845 -AAK1_HUMAN 2.047635344122845 -A0A0C4DGT3_HUMAN 2.047635344122845 -ARP10_HUMAN 2.047635344122845 -RHPN2_HUMAN 2.047635344122845 -TPIS_HUMAN 2.0443402002488544 -NU107_HUMAN 2.0437288702099448 -ARHG7_HUMAN 2.036554522091055 -NEK1_HUMAN 2.036554522091055 -SAC2_HUMAN 2.036554522091055 -HECD1_HUMAN 2.036554522091055 -A0A075B7F8_HUMAN 2.0258840676012166 -FKBP4_HUMAN 2.0258840676012166 -NUCKS_HUMAN 2.0238476248551227 -NOPC1_HUMAN 2.023668755442608 -TPD54_HUMAN 2.023668755442608 -LEMD2_HUMAN 2.019570825094521 -NFAC2_HUMAN 2.019474619149151 -ATIF1_HUMAN 2.0162849025813614 -CIAO1_HUMAN 2.0162849025813614 -TBP_HUMAN 2.0162849025813614 -CC020_HUMAN 2.0162849025813614 -LAR1B_HUMAN 2.0162849025813614 -MDN1_HUMAN 2.0162849025813614 -ABL2_HUMAN 2.010141366952319 -BTF3_HUMAN 2.0096256649264213 -J3QS41_HUMAN 2.0060888000963253 -SUGP1_HUMAN 2.00501153904742 -TSH1_HUMAN 2.00501153904742 -H0YLM1_HUMAN 2.004925899348196 -GOLP3_HUMAN 2.004925899348196 -TANC1_HUMAN 2.003893158665265 -DNMT1_HUMAN 2.001547002460393 -S26A2_HUMAN 2.001547002460393 -MSL1_HUMAN 2.001547002460393 -DDX23_HUMAN 2.001547002460393 -KLC4_HUMAN 2.001547002460393 -TOPK_HUMAN 2.001547002460393 -RFIP1_HUMAN 2.001547002460393 -4ET_HUMAN 2.001547002460393 -TAGL2_HUMAN 2.0000647481974987 -CAF1A_HUMAN 2.0000647481974987 -SMBP2_HUMAN 2.0000647481974987 -B7ZL14_HUMAN 1.999364734545024 -GON4L_HUMAN 1.999364734545024 -DDX3X_HUMAN 1.999364734545024 -MYC_HUMAN 1.995364993831002 -RPGF1_HUMAN 1.995364993831002 -CD7_HUMAN 1.9952164715454883 -APOB_HUMAN 1.9952164715454883 -CBPN_HUMAN 1.992890123029605 -GAPD1_HUMAN 1.9917206849966784 -RIF1_HUMAN 1.9917206849966784 -DEFI6_HUMAN 1.9917206849966784 -CHERP_HUMAN 1.9917206849966784 -PARN_HUMAN 1.9917206849966784 -NIPBL_HUMAN 1.9917206849966784 -S25A3_HUMAN 1.991375722886299 -KTNA1_HUMAN 1.991375722886299 -HMGN3_HUMAN 1.991375722886299 -RUFY1_HUMAN 1.9856617408191743 -DUS3_HUMAN 1.978294679290043 -PDS5A_HUMAN 1.9775401751552404 -HXB4_HUMAN 1.9750550166567504 -ICE1_HUMAN 1.9750550166567504 -SC61B_HUMAN 1.969143829670624 -CENPF_HUMAN 1.969143829670624 -H0YL70_HUMAN 1.968302933471068 -SC22B_HUMAN 1.960187609399384 -ZN644_HUMAN 1.9556137936327185 -OCAD2_HUMAN 1.9486769534370176 -NEXN_HUMAN 1.9481548894726344 -CE022_HUMAN 1.9480945422071272 -LASP1_HUMAN 1.9480945422071272 -ZC3H4_HUMAN 1.9470950307992143 -PCBP1_HUMAN 1.944984803261588 -UBP31_HUMAN 1.9445373394280647 -SETD2_HUMAN 1.9434305219033925 -FBX41_HUMAN 1.9434305219033925 -ZRAB2_HUMAN 1.9434305219033925 -CLAP2_HUMAN 1.9434305219033925 -RBCC1_HUMAN 1.9434305219033925 -RNF10_HUMAN 1.9418115434283745 -ATG9A_HUMAN 1.9415669480747133 -HNRL2_HUMAN 1.9415669480747133 -TCPB_HUMAN 1.9368901870733024 -ARHG6_HUMAN 1.9368901870733024 -UBR5_HUMAN 1.9368901870733024 -RFC1_HUMAN 1.9368901870733024 -F5H0R1_HUMAN 1.9368901870733024 -IRX1_HUMAN 1.9368901870733024 -PRP16_HUMAN 1.9368901870733024 -PRKDC_HUMAN 1.9340489974114472 -RHG25_HUMAN 1.9340489974114472 -TICRR_HUMAN 1.9340489974114472 -A0A1B0GV45_HUMAN 1.9340489974114472 -JARD2_HUMAN 1.9340489974114472 -EEPD1_HUMAN 1.9340489974114472 -PININ_HUMAN 1.9340489974114472 -2A5A_HUMAN 1.9323419277671952 -PI4KB_HUMAN 1.9323419277671952 -OSB11_HUMAN 1.9323419277671952 -IMA1_HUMAN 1.9323419277671952 -DOT1L_HUMAN 1.9301631333073044 -V5IRT4_HUMAN 1.928795297583716 -TYB4_HUMAN 1.9283777316613235 -DEN4B_HUMAN 1.9271301716229812 -A0A0U1RRM6_HUMAN 1.9271301716229812 -RRP1_HUMAN 1.9271301716229812 -LSM12_HUMAN 1.9254733389302685 -NEMF_HUMAN 1.9254733389302685 -ATRX_HUMAN 1.9217182069478531 -NCBP3_HUMAN 1.9217182069478531 -J3KMZ8_HUMAN 1.918483687108067 -CCNK_HUMAN 1.9177379301127877 -FYB1_HUMAN 1.9177379301127877 -SENP3_HUMAN 1.9177379301127877 -A0A0C4DFX9_HUMAN 1.9177379301127877 -LAR4B_HUMAN 1.9177379301127877 -ATAD5_HUMAN 1.9177379301127877 -KNOP1_HUMAN 1.9177379301127877 -TF3B_HUMAN 1.9177379301127877 -PYR1_HUMAN 1.9177379301127877 -NU188_HUMAN 1.9177379301127877 -PNISR_HUMAN 1.9134882382668332 -PACS1_HUMAN 1.9134882382668332 -A0A0A0MRV0_HUMAN 1.912601619901632 -ZN318_HUMAN 1.912601619901632 -PHIP_HUMAN 1.912601619901632 -DYR1A_HUMAN 1.9125880555053756 -C9J2V2_HUMAN 1.9125880555053756 -CAF1B_HUMAN 1.9125880555053756 -MTSS2_HUMAN 1.9125880555053756 -G5E9M7_HUMAN 1.9125880555053756 -DCP1B_HUMAN 1.9125880555053756 -DSN1_HUMAN 1.90964677968256 -EF2K_HUMAN 1.90964677968256 -VINEX_HUMAN 1.90964677968256 -SR140_HUMAN 1.9092246320613344 -PEA15_HUMAN 1.906810259700644 -ZC3H1_HUMAN 1.906810259700644 -SKA3_HUMAN 1.906810259700644 -MRP_HUMAN 1.9064228740215896 -KAT6A_HUMAN 1.9056028560293767 -SAMTR_HUMAN 1.8994200131133023 -TF3C2_HUMAN 1.896650097868306 -SNUT1_HUMAN 1.896650097868306 -D6RIF6_HUMAN 1.8928651212222507 -CLK3_HUMAN 1.8925827513787212 -KTNB1_HUMAN 1.8925827513787212 -RPGP2_HUMAN 1.883349235592444 -NU133_HUMAN 1.8818650852676615 -I3L0U5_HUMAN 1.8818650852676615 -A0A140T9T7_HUMAN 1.87554278578986 -MIA2_HUMAN 1.8721924141342208 -BICD1_HUMAN 1.8721924141342208 -G3V4K3_HUMAN 1.872162332032529 -RRAGD_HUMAN 1.872162332032529 -MFR1L_HUMAN 1.871047222852938 -ZC3HE_HUMAN 1.869044120260192 -DCAF1_HUMAN 1.869044120260192 -CNOT3_HUMAN 1.868022236667097 -API5_HUMAN 1.856455021578958 -WIPF1_HUMAN 1.8554918125016648 -GTF2I_HUMAN 1.8554918125016648 -CAMP1_HUMAN 1.8554918125016648 -DTBP1_HUMAN 1.8554918125016648 -SEC62_HUMAN 1.8554918125016648 -CATG_HUMAN 1.8553794198461877 -HNRPF_HUMAN 1.8446537391239848 -AAKB1_HUMAN 1.8446537391239848 -DCAKD_HUMAN 1.8446537391239848 -TREX1_HUMAN 1.8446537391239848 -NASP_HUMAN 1.843796582675232 -IKZF2_HUMAN 1.84325778310388 -NKTR_HUMAN 1.8429899049403595 -H0Y4E8_HUMAN 1.842425461713462 -F8W0Q9_HUMAN 1.842425461713462 -DCP1A_HUMAN 1.840430126933067 -TMM11_HUMAN 1.8399900893860357 -K1C16_HUMAN 1.839943247227828 -A0A087X1R1_HUMAN 1.8380453078961316 -NCOA2_HUMAN 1.8359056314622089 -ZN335_HUMAN 1.8359056314622089 -V9GYM8_HUMAN 1.8359056314622089 -TNIP1_HUMAN 1.8359056314622089 -TOM1_HUMAN 1.8359056314622089 -NUP98_HUMAN 1.8290791644626692 -DGCR8_HUMAN 1.827307091291376 -RNF31_HUMAN 1.825511192580273 -ATX2L_HUMAN 1.8190036768064892 -K7ELC2_HUMAN 1.8159384695411844 -ERIC1_HUMAN 1.8159384695411844 -CDA7L_HUMAN 1.8159384695411844 -HERC1_HUMAN 1.815501713477811 -SPD2A_HUMAN 1.815501713477811 -VP13B_HUMAN 1.815501713477811 -SCD_HUMAN 1.815034017163588 -TB22B_HUMAN 1.813795383823543 -TRA2A_HUMAN 1.8134821764910776 -ICAM2_HUMAN 1.812812980225904 -PCNP_HUMAN 1.812812980225904 -PDLI7_HUMAN 1.812812980225904 -H2AX_HUMAN 1.8124777079272067 -J3KPC5_HUMAN 1.8115344911869389 -XRCC6_HUMAN 1.8115344911869389 -ESYT2_HUMAN 1.8087656672268064 -NCOA3_HUMAN 1.806211545700895 -AKAP1_HUMAN 1.8053604267554 -DLGP4_HUMAN 1.8046647169767465 -MED1_HUMAN 1.8027453719934063 -CCNF_HUMAN 1.8027453719934063 -PRAG1_HUMAN 1.8027453719934063 -T184B_HUMAN 1.8027453719934063 -ANLN_HUMAN 1.8014868709712133 -JKIP1_HUMAN 1.8014868709712133 -B2CL2_HUMAN 1.8007998786172206 -VPP2_HUMAN 1.7994284332160366 -EP400_HUMAN 1.7992020816383725 -MABP1_HUMAN 1.7992020816383725 -DDA1_HUMAN 1.7992020816383725 -YJU2B_HUMAN 1.796675590645714 -LRRC1_HUMAN 1.795911398762831 -MB12A_HUMAN 1.7940052918727143 -NF1_HUMAN 1.7933085596410143 -TFPT_HUMAN 1.7933085596410143 -EF2_HUMAN 1.7933085596410143 -RERE_HUMAN 1.7933085596410143 -PUM1_HUMAN 1.7927955325322298 -SRS11_HUMAN 1.7927955325322298 -TLS1_HUMAN 1.7922326814840743 -RHG35_HUMAN 1.792165796529125 -ERBIN_HUMAN 1.7919187298648105 -UB2J1_HUMAN 1.7907974703379206 -I3L2J0_HUMAN 1.7907974703379206 -RL28_HUMAN 1.7867712786372327 -TIF1B_HUMAN 1.7867712786372327 -PTN18_HUMAN 1.7867712786372327 -C9JQE8_HUMAN 1.785668449430576 -CNOT2_HUMAN 1.784613430637171 -JUPI2_HUMAN 1.7785735346084048 -CND2_HUMAN 1.778246202637384 -ZDHC8_HUMAN 1.778246202637384 -A0A140TA76_HUMAN 1.778246202637384 -PREY_HUMAN 1.7775522661491632 -GGYF1_HUMAN 1.775787714332404 -RIC8A_HUMAN 1.774172424035765 -SASH3_HUMAN 1.773513627853916 -YLPM1_HUMAN 1.7720618765978158 -CBX8_HUMAN 1.7720618765978158 -PLAK2_HUMAN 1.7693290668469035 -CE170_HUMAN 1.7688201117820157 -CLPX_HUMAN 1.768201267123909 -CWC15_HUMAN 1.768201267123909 -AUTS2_HUMAN 1.7668267820920909 -A6NMQ1_HUMAN 1.7668267820920909 -BICRL_HUMAN 1.7668267820920909 -LAP2A_HUMAN 1.7668267820920909 -TBCD4_HUMAN 1.7668267820920909 -VTNC_HUMAN 1.7660954889737666 -TCPZ_HUMAN 1.7639058211203502 -SENP2_HUMAN 1.7619178688595742 -RBM15_HUMAN 1.7619178688595742 -RELL1_HUMAN 1.7604442112214442 -PRPS1_HUMAN 1.7604442112214442 -TASOR_HUMAN 1.7595362564644987 -SFPQ_HUMAN 1.7594791229630506 -ZN320_HUMAN 1.7594791229630506 -ZN592_HUMAN 1.7594791229630506 -EDC4_HUMAN 1.7594791229630506 -NCOA7_HUMAN 1.7594791229630506 -WAC_HUMAN 1.758477834900746 -PLCG1_HUMAN 1.7536469168550288 -ACACA_HUMAN 1.751804598112101 -F5GX28_HUMAN 1.7493077191635205 -SMG1_HUMAN 1.7493077191635205 -RS4X_HUMAN 1.744776394542244 -SHKB1_HUMAN 1.744776394542244 -UBP36_HUMAN 1.744776394542244 -MYPT1_HUMAN 1.743972249080854 -A0A1B0GVL4_HUMAN 1.7421036403940269 -NDE1_HUMAN 1.7347057683454448 -CBX3_HUMAN 1.7319626633555625 -LBR_HUMAN 1.7319626633555625 -PEX19_HUMAN 1.7313850342383876 -ASAP3_HUMAN 1.7299577009918496 -NCK1_HUMAN 1.7299577009918496 -TM209_HUMAN 1.7299577009918496 -BPTF_HUMAN 1.7299577009918496 -A6NIW2_HUMAN 1.7299577009918496 -GIT1_HUMAN 1.7293642143059356 -RENT1_HUMAN 1.7277438934967115 -FGD6_HUMAN 1.7265598328201814 -PALM_HUMAN 1.7258711686866466 -KLDC4_HUMAN 1.720045341334363 -ARFG1_HUMAN 1.720045341334363 -INCE_HUMAN 1.7192877172491672 -A0A0C4DGZ1_HUMAN 1.7192877172491672 -IF4G1_HUMAN 1.7184322502679668 -IF4H_HUMAN 1.717590657754205 -BRCA2_HUMAN 1.7141251254542167 -SH3L3_HUMAN 1.7092399321618308 -G3XAN8_HUMAN 1.7092399321618308 -MA7D1_HUMAN 1.7092399321618308 -TRIR_HUMAN 1.7092399321618308 -IQCB1_HUMAN 1.7092399321618308 -CIA2B_HUMAN 1.7092399321618308 -SRSF9_HUMAN 1.7080785314356497 -RALY_HUMAN 1.7080785314356497 -UCKL1_HUMAN 1.7080785314356497 -R4GMX8_HUMAN 1.7080785314356497 -MGAP_HUMAN 1.7080785314356497 -NSD3_HUMAN 1.7029043597981288 -GEPH_HUMAN 1.7000852357484857 -RPRD2_HUMAN 1.7000852357484857 -TDT_HUMAN 1.6966551417840128 -APC1_HUMAN 1.694898972781371 -DENR_HUMAN 1.694898972781371 -SI1L1_HUMAN 1.6919854649545665 -TCPD_HUMAN 1.690617938729064 -RB12B_HUMAN 1.6901698599848254 -KIF1C_HUMAN 1.6901698599848254 -ZN217_HUMAN 1.688737299297794 -ECT2_HUMAN 1.688737299297794 -PUM2_HUMAN 1.68758461340343 -PAN3_HUMAN 1.6869718435986891 -GLPC_HUMAN 1.6862254152495693 -PLCL2_HUMAN 1.6831225762746234 -CRKL_HUMAN 1.6818237841265384 -CIRBP_HUMAN 1.681141112634762 -WEE1_HUMAN 1.6804466318356368 -PTBP3_HUMAN 1.6800357982877163 -T2EB_HUMAN 1.679223063064028 -PARG_HUMAN 1.679223063064028 -TBC15_HUMAN 1.6772080389536972 -ARMC7_HUMAN 1.6772080389536972 -NFIC_HUMAN 1.6772080389536972 -PAPOA_HUMAN 1.6772080389536972 -AKA10_HUMAN 1.6772080389536972 -VMA21_HUMAN 1.6772080389536972 -A0A087WZV0_HUMAN 1.6771463933324673 -A0A1B0GTW1_HUMAN 1.6771463933324673 -X6R7X0_HUMAN 1.6771463933324673 -UNK_HUMAN 1.6771463933324673 -SENP7_HUMAN 1.6771463933324673 -OXSR1_HUMAN 1.6753615114019746 -PXK_HUMAN 1.6710146392964635 -KHDR1_HUMAN 1.6710146392964635 -RM38_HUMAN 1.6708431432717945 -ATG2A_HUMAN 1.670572014013327 -SF3B2_HUMAN 1.6698092197126786 -RHG04_HUMAN 1.668670898676557 -MBP_HUMAN 1.6643778204226511 -IN80E_HUMAN 1.6643778204226511 -PCY1A_HUMAN 1.6642517673671366 -WDHD1_HUMAN 1.663274744014383 -BPL1_HUMAN 1.663274744014383 -ARI4B_HUMAN 1.663274744014383 -SFR1_HUMAN 1.663274744014383 -TISD_HUMAN 1.663274744014383 -PHF6_HUMAN 1.663274744014383 -RCN3_HUMAN 1.6619734426235824 -LRRF1_HUMAN 1.6599301052774371 -PML_HUMAN 1.6564200532197424 -SRSF6_HUMAN 1.6556264804570962 -PP14B_HUMAN 1.6556264804570962 -PVRIG_HUMAN 1.6556264804570962 -TAF9B_HUMAN 1.6529959642169378 -KDM3B_HUMAN 1.6527500850207928 -ZN609_HUMAN 1.651172937797034 -RECQ4_HUMAN 1.6502214136897413 -PDE4A_HUMAN 1.6502214136897413 -H13_HUMAN 1.6487484134643091 -B4DY08_HUMAN 1.6487484134643091 -J3KNL6_HUMAN 1.6487484134643091 -MPP8_HUMAN 1.644622719177054 -B9EGE7_HUMAN 1.644622719177054 -ESS2_HUMAN 1.644622719177054 -NBEL2_HUMAN 1.64269992345517 -M3K2_HUMAN 1.6367104797579248 -SAFB2_HUMAN 1.6358338110561552 -PTN7_HUMAN 1.6349593665241 -ABR_HUMAN 1.6342311178769535 -A0A0B4J2E5_HUMAN 1.6330199652404895 -P121A_HUMAN 1.6324656025906694 -PHAG1_HUMAN 1.6323040840368914 -UNKL_HUMAN 1.630771279510544 -RBL1_HUMAN 1.630588813414638 -BCKD_HUMAN 1.630588813414638 -J3QQJ0_HUMAN 1.6283890950706992 -PSIP1_HUMAN 1.625271323331981 -PRR12_HUMAN 1.625181279988604 -ZZZ3_HUMAN 1.625181279988604 -RN169_HUMAN 1.625181279988604 -NCK5L_HUMAN 1.625181279988604 -FOXK2_HUMAN 1.625008982169042 -TYB10_HUMAN 1.623366530478342 -NOSIP_HUMAN 1.6231317053084626 -LC7L2_HUMAN 1.6231317053084626 -RLIG1_HUMAN 1.622993700947564 -SPT4H_HUMAN 1.6203457919362023 -NSE2_HUMAN 1.618118054418137 -DHX30_HUMAN 1.6168480219685335 -EGLN1_HUMAN 1.614854310072849 -PTSS1_HUMAN 1.6139697076023756 -CA131_HUMAN 1.6139697076023756 -IKZF1_HUMAN 1.6139697076023756 -FACD2_HUMAN 1.611266629431071 -BT2A1_HUMAN 1.610393863373781 -PDE3B_HUMAN 1.6098048778662402 -4EBP3_HUMAN 1.608898667913959 -ZN598_HUMAN 1.6066377596960149 -VIME_HUMAN 1.6047294192141035 -A0A5E8_HUMAN 1.603907509952331 -NOL8_HUMAN 1.603907509952331 -TEBP_HUMAN 1.603907509952331 -MARCS_HUMAN 1.6016262103462997 -EMSY_HUMAN 1.601107803033725 -TMED2_HUMAN 1.601064624453597 -UBN1_HUMAN 1.601064624453597 -INAR1_HUMAN 1.6004867491643342 -TLK2_HUMAN 1.6004867491643342 -BOREA_HUMAN 1.5987537264652687 -MBLC1_HUMAN 1.596365603301689 -C2CD5_HUMAN 1.594359049740105 -LMBD2_HUMAN 1.593257221651549 -MTMR4_HUMAN 1.5867062539232395 -RFTN1_HUMAN 1.5867062539232395 -A8K727_HUMAN 1.5867062539232395 -CEP95_HUMAN 1.5863495754611554 -B5MCU0_HUMAN 1.5863495754611554 -KIF1B_HUMAN 1.5863495754611554 -RASF5_HUMAN 1.5860233224503275 -AFF4_HUMAN 1.5860233224503275 -THOC2_HUMAN 1.5846150343713394 -TFDP2_HUMAN 1.5846150343713394 -J3KN59_HUMAN 1.5838005455677533 -TIA1_HUMAN 1.5838005455677533 -FBX42_HUMAN 1.5836658366009186 -A0A0J9YWL0_HUMAN 1.5774447536145375 -LEO1_HUMAN 1.576851257996113 -GIPC1_HUMAN 1.5764803833226075 -I2BP2_HUMAN 1.5758455443241708 -RWDD4_HUMAN 1.5752653922867537 -MAST4_HUMAN 1.574150295475778 -MAP1S_HUMAN 1.5697896741692865 -BRAP_HUMAN 1.562145663762073 -BRPF1_HUMAN 1.5613449534678685 -MORC3_HUMAN 1.5597182751399368 -KLF13_HUMAN 1.5593568988240107 -UBR4_HUMAN 1.5593568988240107 -MOV10_HUMAN 1.5587155374692414 -NUMB_HUMAN 1.5583262707564272 -ALKB5_HUMAN 1.5576469662179655 -HNRL1_HUMAN 1.5576469662179655 -SRGP3_HUMAN 1.55630259723018 -I1E4Y6_HUMAN 1.55630259723018 -ARI3A_HUMAN 1.553229166435797 -ACTB_HUMAN 1.553229166435797 -RCOR1_HUMAN 1.553229166435797 -LRCH3_HUMAN 1.553229166435797 -NUMBL_HUMAN 1.553229166435797 -SCML2_HUMAN 1.553229166435797 -H7C494_HUMAN 1.553229166435797 -J3KPH8_HUMAN 1.553229166435797 -SIX6_HUMAN 1.553229166435797 -E7ERS3_HUMAN 1.551636854535616 -HD_HUMAN 1.551636854535616 -PMYT1_HUMAN 1.551636854535616 -RBM39_HUMAN 1.551511002861387 -SPAST_HUMAN 1.551511002861387 -CUTC_HUMAN 1.549335131113205 -SHAN2_HUMAN 1.5484813148031706 -RUNX1_HUMAN 1.5467490697478377 -CATIN_HUMAN 1.544011596513742 -SMCO4_HUMAN 1.5425987598831323 -KIF14_HUMAN 1.5421741826769957 -HMGA1_HUMAN 1.5414008330832916 -RS3_HUMAN 1.5409742972892138 -SGT1_HUMAN 1.5374294639604158 -EPN1_HUMAN 1.5348290417612744 -H7C2Q8_HUMAN 1.53334867204404 -Z280C_HUMAN 1.5317923423127593 -ATG2B_HUMAN 1.5312360416149495 -TRRAP_HUMAN 1.530978566649734 -RRP15_HUMAN 1.530978566649734 -IBP2_HUMAN 1.530585166912765 -RL35_HUMAN 1.530585166912765 -SP130_HUMAN 1.5299457846891635 -KIF2A_HUMAN 1.529193301956704 -COASY_HUMAN 1.5278819476884955 -GRDN_HUMAN 1.525478926350487 -FUBP3_HUMAN 1.525285823427137 -LIPB1_HUMAN 1.52366361999421 -ATAT_HUMAN 1.5233702471669923 -DOK2_HUMAN 1.5228442562900155 -D3DQV9_HUMAN 1.521921608227538 -CDS2_HUMAN 1.521837471774267 -ZEP1_HUMAN 1.521837471774267 -TGFA1_HUMAN 1.518843374947793 -REEP4_HUMAN 1.5153527618285414 -ARHG1_HUMAN 1.5151231030186672 -A0A0J9YYD9_HUMAN 1.5151231030186672 -SRSF8_HUMAN 1.5126987508397562 -GPTC8_HUMAN 1.5095282736803597 -TPR_HUMAN 1.5067032141687422 -E2F3_HUMAN 1.5067032141687422 -PMS2_HUMAN 1.500450124285322 -KBTB7_HUMAN 1.5001236856081273 -DOCK7_HUMAN 1.4991713079622904 -INF2_HUMAN 1.4991713079622904 -KDM6B_HUMAN 1.4991713079622904 -CISD3_HUMAN 1.4989888127394944 -MS18A_HUMAN 1.4986862331154844 -TREF1_HUMAN 1.4986862331154844 -ADRM1_HUMAN 1.498638296123168 -X6RLX0_HUMAN 1.498638296123168 -H3BQL3_HUMAN 1.498638296123168 -ABCF2_HUMAN 1.4981130172751085 -KIF4A_HUMAN 1.4962166717747136 -PEX3_HUMAN 1.4938112941438502 -HNRPD_HUMAN 1.4937444379141005 -RHG15_HUMAN 1.492781918994018 -ZKSC8_HUMAN 1.4917764239854727 -TBD2B_HUMAN 1.4917764239854727 -KIFC1_HUMAN 1.4917764239854727 -PER1_HUMAN 1.4872646212864058 -TMF1_HUMAN 1.4844341997257475 -A0A0G2JNZ2_HUMAN 1.4831620582394172 -PLIN3_HUMAN 1.481077721531142 -SPTB2_HUMAN 1.4805861772647626 -ITFG2_HUMAN 1.480219922066905 -A0A0U1RRH7_HUMAN 1.478743639043696 -INT3_HUMAN 1.47704849491289 -A0A024R4E5_HUMAN 1.4744322137737111 -E9PJ55_HUMAN 1.4741661518581666 -PAK4_HUMAN 1.473348891568368 -LMBL3_HUMAN 1.4664663535517233 -RRP1B_HUMAN 1.4659087622757931 -IPYR_HUMAN 1.4651206340344114 -PRC2B_HUMAN 1.462102021086222 -ABL1_HUMAN 1.4600214671135892 -ATP9B_HUMAN 1.4595842003311976 -KIF22_HUMAN 1.4594594113221078 -CB068_HUMAN 1.4576375808977051 -SMRC1_HUMAN 1.4576375808977051 -PCX3_HUMAN 1.4576375808977051 -GUAA_HUMAN 1.4574508741014025 -J3KPF0_HUMAN 1.4570838456002488 -ALG3_HUMAN 1.4569641682536676 -CD3Z_HUMAN 1.456273589935328 -MADD_HUMAN 1.455795107080136 -NUP93_HUMAN 1.4506568843932597 -UBN2_HUMAN 1.4452368742932693 -GAB3_HUMAN 1.4424549898390118 -MUS81_HUMAN 1.4371602289363188 -MGMT_HUMAN 1.4364871925598512 -WIPF2_HUMAN 1.4364871925598512 -ASHWN_HUMAN 1.4364871925598512 -I17RA_HUMAN 1.436131077602721 -ZN573_HUMAN 1.4357694665997545 -C9J7T7_HUMAN 1.4332804246591722 -ETS1_HUMAN 1.432391983160914 -PSA5_HUMAN 1.432391983160914 -IFG15_HUMAN 1.4315219662451866 -TACC1_HUMAN 1.4274553490164978 -CD3E_HUMAN 1.4270205175131458 -UBF1_HUMAN 1.4265158906429751 -RFX7_HUMAN 1.4245729184327107 -RBMX2_HUMAN 1.4221072948726277 -ZN330_HUMAN 1.4203653481358378 -NFAC3_HUMAN 1.4200481489287875 -DEN1B_HUMAN 1.4200481489287875 -A0A0C4DFM7_HUMAN 1.4177864760910868 -KDIS_HUMAN 1.4170719101299214 -MTG8R_HUMAN 1.4170719101299214 -KI13B_HUMAN 1.4170719101299214 -SZRD1_HUMAN 1.4167301823964789 -BAZ1B_HUMAN 1.4141155725530086 -PSF2_HUMAN 1.4141155725530086 -A0A0A0MRR7_HUMAN 1.4141148092544975 -CHSP1_HUMAN 1.4140634399725864 -NGAP_HUMAN 1.4140634399725864 -LPIN1_HUMAN 1.4139384363862515 -CD5_HUMAN 1.4134962460604463 -RYBP_HUMAN 1.4130726650170624 -H7BZJ3_HUMAN 1.4079714054211705 -SEPT9_HUMAN 1.4077462420892584 -SND1_HUMAN 1.4077462420892584 -TOP1_HUMAN 1.407165160730767 -UBA1_HUMAN 1.4055026873551124 -ZN106_HUMAN 1.4042785122991548 -UBXN7_HUMAN 1.4027498920199597 -PAPOG_HUMAN 1.4012255401070153 -CHD4_HUMAN 1.398338110192834 -JUNB_HUMAN 1.398338110192834 -PSN1_HUMAN 1.3955225663490065 -M0QXA7_HUMAN 1.3954546462122803 -CHIP_HUMAN 1.3951713002688575 -G5EA09_HUMAN 1.3945555670580556 -ACTY_HUMAN 1.3929551436380998 -SNRK_HUMAN 1.386059858172826 -A0A0A0MTC5_HUMAN 1.3857922789405932 -BAG6_HUMAN 1.381734440271269 -F5H8D7_HUMAN 1.381311096353027 -ZN397_HUMAN 1.3790844369432236 -CCDC9_HUMAN 1.3790844369432236 -PRSR1_HUMAN 1.3790708641788665 -FMNL1_HUMAN 1.378708531371344 -ACAP1_HUMAN 1.378708531371344 -MINT_HUMAN 1.3740579455411437 -MEF2A_HUMAN 1.372105870811973 -PATL1_HUMAN 1.372105870811973 -KDM2A_HUMAN 1.372105870811973 -PKHA1_HUMAN 1.370439810950771 -B4E0Y9_HUMAN 1.3650013905568206 -LDB1_HUMAN 1.3638978446465069 -PPM1G_HUMAN 1.3638978446465069 -B1AM27_HUMAN 1.3638978446465069 -PTTG_HUMAN 1.362621012484477 -RSF1_HUMAN 1.3597869554337356 -MEF2D_HUMAN 1.355687628501374 -E9PNT2_HUMAN 1.3510999693925152 -FAF1_HUMAN 1.3507891200859448 -ZBED4_HUMAN 1.3462298959658738 -RBGP1_HUMAN 1.3459376771082716 -UBAP2_HUMAN 1.3459376771082716 -ABLM1_HUMAN 1.3459376771082716 -E41L2_HUMAN 1.3459376771082716 -EHBP1_HUMAN 1.3445089856069514 -ZCCHV_HUMAN 1.3445089856069514 -BMP2K_HUMAN 1.3421465341377865 -TESK2_HUMAN 1.342136945246755 -E7EPT4_HUMAN 1.3399916693835972 -MFF_HUMAN 1.3393202241362625 -ELP4_HUMAN 1.3390674987148612 -TPC2A_HUMAN 1.336601117149929 -WBP2_HUMAN 1.336601117149929 -A0A0A0MT60_HUMAN 1.3303932882739926 -R3HD1_HUMAN 1.325699598575591 -VRK3_HUMAN 1.325699598575591 -CNOT4_HUMAN 1.3225681523274029 -A0A087WWF6_HUMAN 1.321912323523786 -CO039_HUMAN 1.321912323523786 -FADD_HUMAN 1.3219024088198772 -PSD11_HUMAN 1.3182975778427108 -KKCC2_HUMAN 1.3180526639899417 -SHB_HUMAN 1.3153136536263887 -TIM50_HUMAN 1.3124760170954974 -ZBT40_HUMAN 1.3119173775121502 -HS105_HUMAN 1.311829224711046 -RPA43_HUMAN 1.3114040854518267 -DDX55_HUMAN 1.3099985711203703 -FANCJ_HUMAN 1.3054621506029551 -PRDX6_HUMAN 1.3036944847038232 -C2C2L_HUMAN 1.3025993654945351 -K1C9_HUMAN 1.3012384398573682 -TB10A_HUMAN 1.291913505353536 -TDIF2_HUMAN 1.289184704701846 -SAFB1_HUMAN 1.289184704701846 -OSBL3_HUMAN 1.2849550851075413 -EXOC4_HUMAN 1.2834606945086136 -E7EQS8_HUMAN 1.277233313737906 -CSKI1_HUMAN 1.2766428307525943 -A0A0A0MQU4_HUMAN 1.2747712441742238 -MAST2_HUMAN 1.2747712441742238 -E7EVB6_HUMAN 1.2747712441742238 -MDC1_HUMAN 1.2736999749815556 -DPOA2_HUMAN 1.273410703338121 -RN114_HUMAN 1.2718500041542673 -INT1_HUMAN 1.2692161465227425 -P5CR2_HUMAN 1.2692161465227425 -PRPF3_HUMAN 1.26312637564306 -STML2_HUMAN 1.2606316627801153 -CDK17_HUMAN 1.2606316627801153 -F5H527_HUMAN 1.2600223449685397 -PNKD_HUMAN 1.259550361396689 -M0R226_HUMAN 1.25874242722772 -TBCE_HUMAN 1.25874242722772 -ZCHC8_HUMAN 1.254357705738553 -UCK2_HUMAN 1.254357705738553 -CPZIP_HUMAN 1.254357705738553 -EDF1_HUMAN 1.254357705738553 -BRD1_HUMAN 1.2528130397867507 -SIN3A_HUMAN 1.2522578417768275 -CA174_HUMAN 1.2515272999610367 -SOX4_HUMAN 1.2478890430709089 -RBBP5_HUMAN 1.2475593922253896 -FIZ1_HUMAN 1.2470766183852005 -WAPL_HUMAN 1.2437444782694829 -RBM26_HUMAN 1.2426795081873598 -TM230_HUMAN 1.2418536980236523 -AN32A_HUMAN 1.2396318901092034 -KDM2B_HUMAN 1.2395522882104963 -MTFR1_HUMAN 1.2392179222024022 -SMCA5_HUMAN 1.2390939190066692 -J3KTL2_HUMAN 1.2314350027874297 -AFG1L_HUMAN 1.2214395107571645 -X6RAL5_HUMAN 1.2214395107571645 -STX4_HUMAN 1.21982850700671 -TMCO6_HUMAN 1.2170234258276496 -A0A0A0MT22_HUMAN 1.213667888116882 -TAGAP_HUMAN 1.211178504714197 -ATN1_HUMAN 1.211178504714197 -RBM6_HUMAN 1.210366578067677 -CT2NL_HUMAN 1.210366578067677 -ZAP70_HUMAN 1.2090669777370142 -S4R347_HUMAN 1.2086702565688232 -KCTD9_HUMAN 1.2074600584781503 -CCDC6_HUMAN 1.2008769173364633 -A0A0D9SF60_HUMAN 1.2008769173364633 -TBB2B_HUMAN 1.1988524735897537 -GABPA_HUMAN 1.196508717755136 -RLA2_HUMAN 1.1958261054040045 -PSMD2_HUMAN 1.1954554880085198 -Q9NPA5_HUMAN 1.1935372180611366 -LIMD1_HUMAN 1.190607333317505 -SCPDL_HUMAN 1.188872309904105 -GYS1_HUMAN 1.188872309904105 -RED_HUMAN 1.1878250534090182 -TCAB1_HUMAN 1.1865290485394648 -ACBP_HUMAN 1.1839392587237012 -SPAG7_HUMAN 1.1834390080524702 -MK14_HUMAN 1.1834390080524702 -PCBP2_HUMAN 1.179739158975082 -B0QYS7_HUMAN 1.1790711506753633 -LCK_HUMAN 1.1790711506753633 -H33_HUMAN 1.1783755536979346 -EMC5_HUMAN 1.173901663292787 -RFX5_HUMAN 1.171520785487593 -SMC4_HUMAN 1.171520785487593 -NSUN5_HUMAN 1.170050718503766 -PIAS1_HUMAN 1.1681182680530655 -K1C10_HUMAN 1.1652764267874487 -LAGE3_HUMAN 1.1652764267874487 -DMXL2_HUMAN 1.1647377477877603 -ARBK2_HUMAN 1.1626041254547057 -F8W9L8_HUMAN 1.1626041254547057 -FZR1_HUMAN 1.1603735977113108 -TMX1_HUMAN 1.1593642064456229 -RRAS2_HUMAN 1.156427252329124 -C9JA08_HUMAN 1.156208778971734 -ARM10_HUMAN 1.156208778971734 -PP6R3_HUMAN 1.156208778971734 -NSRP1_HUMAN 1.1534793335105478 -CNBP_HUMAN 1.1525590608925138 -CRIP2_HUMAN 1.152390933348122 -P53_HUMAN 1.151807870311012 -NOC2L_HUMAN 1.1442551046759946 -J3KNR0_HUMAN 1.143363662798499 -RAVR2_HUMAN 1.143048359008893 -ATX10_HUMAN 1.1412670168811665 -DOK1_HUMAN 1.1355799997588671 -A0A0A0MQS2_HUMAN 1.1299340550653791 -COMD6_HUMAN 1.128900486251755 -LMNB2_HUMAN 1.1275374703528738 -EI24_HUMAN 1.1243593918876376 -A0A087WTW0_HUMAN 1.1180470836417982 -PGM2_HUMAN 1.1178546649914076 -Q5HY81_HUMAN 1.1121118109072743 -LAT_HUMAN 1.1115393335893018 -MCM3_HUMAN 1.111027922417744 -PACN3_HUMAN 1.1105882253298058 -D4PHA4_HUMAN 1.1098582831892392 -HAUS8_HUMAN 1.1054250730101307 -GBF1_HUMAN 1.1054250730101307 -AKT1_HUMAN 1.104840709561845 -DDRGK_HUMAN 1.1002324397496726 -SFR19_HUMAN 1.0967187621892156 -C1TM_HUMAN 1.0940639419500142 -SELK_HUMAN 1.0940639419500142 -E9PFI5_HUMAN 1.0926831622151392 -PSMD4_HUMAN 1.0910671549306885 -SEPT6_HUMAN 1.0880741151441735 -NOP56_HUMAN 1.087160586916168 -RBX1_HUMAN 1.086769181236134 -CPPED_HUMAN 1.0860017014311272 -PRP4K_HUMAN 1.0829321344921683 -A0A087WUT6_HUMAN 1.080793816542294 -SYTC_HUMAN 1.0770238031876582 -SCMC1_HUMAN 1.0730463251789988 -ITPI2_HUMAN 1.0719684141051082 -DMAP1_HUMAN 1.071577068546023 -DCA10_HUMAN 1.0694030417898757 -WDR75_HUMAN 1.0677297524298175 -CH60_HUMAN 1.0657634082295693 -EVL_HUMAN 1.0644695104547544 -AJUBA_HUMAN 1.063666825180044 -KATIP_HUMAN 1.0627849111635628 -M3K20_HUMAN 1.0519697889423665 -G1UD79_HUMAN 1.04739233499352 -RAF1_HUMAN 1.045668159710195 -F241B_HUMAN 1.0441422484606755 -VIR_HUMAN 1.042396269280326 -PP16B_HUMAN 1.0390585238828396 -J3QTA6_HUMAN 1.0386996097261536 -UBE2O_HUMAN 1.028488954102181 -MYO5A_HUMAN 1.0254285457955026 -E7EV07_HUMAN 1.022182932984924 -4EBP2_HUMAN 1.0196538521636485 -NCOR1_HUMAN 1.0185667849408584 -DAP1_HUMAN 1.016504798868468 -REPS1_HUMAN 1.0162008775157336 -SOX1_HUMAN 1.0153622127624502 -FYV1_HUMAN 1.0142648815187705 -A0A1B0GTN9_HUMAN 1.0109627568592905 -SRA1_HUMAN 1.0096828639556032 -UIF_HUMAN 1.0096828639556032 -JHD2C_HUMAN 1.0094992600098456 -APTX_HUMAN 1.0084603804047647 -J3KQL8_HUMAN 1.0077614527324577 -AXIN1_HUMAN 1.005808582397118 -RTN4_HUMAN 1.0051920614387837 -J3KR72_HUMAN 1.0037550381491789 -PARP6_HUMAN 1.003196032647505 -T184C_HUMAN 1.0022879202716266 diff --git a/spras/omicsintegrator1.py b/spras/omicsintegrator1.py index 035b747c..df82f3d7 100644 --- a/spras/omicsintegrator1.py +++ b/spras/omicsintegrator1.py @@ -82,15 +82,15 @@ def generate_inputs(data, filename_map): edges_df.to_csv(filename_map['edges'],sep='\t',index=False, columns=['Interactor1','Interactor2','Weight','Direction'], header=['protein1','protein2','weight','directionality']) - + # creates the dummy_nodes file if 'dummy' in data.node_table.columns: - dummy_df = data.node_table[data.node_table['dummy'] == True] + dummy_df = data.node_table[data.node_table['dummy'] == True] # save as list of dummy nodes dummy_df.to_csv(filename_map['dummy_nodes'], index=False, columns=['NODEID'], header=None) else: - # create empty dummy file - with open(filename_map['dummy_nodes'], mode='w') as file: + # create empty dummy file + with open(filename_map['dummy_nodes'], mode='w'): pass @@ -129,7 +129,7 @@ def run(edges=None, prizes=None, dummy_nodes=None, dummy_mode=None, mu_squared=N volumes.append(bind_path) # 4 dummy mode possibilities: - # 1. terminals -> connect the dummy node to all nodes that have been assigned prizes + # 1. terminals -> connect the dummy node to all nodes that have been assigned prizes # 2. all -> connect the dummy node to all nodes in the interactome i.e. full set of nodes in graph # 3. others -> connect the dummy node to all nodes that are not terminal nodes i.e. nodes w/o prizes # 4. file -> custom nodes - connect the dummy node to a specific list of nodes provided in a file @@ -160,7 +160,7 @@ def run(edges=None, prizes=None, dummy_nodes=None, dummy_mode=None, mu_squared=N '--msgpath', '/OmicsIntegrator/msgsteiner-1.3/msgsteiner', '--outpath', mapped_out_dir, '--outlabel', 'oi1'] - + # add the dummy mode argument if dummy_mode is not None and dummy_mode: # for custom dummy modes, add the file From a09226ebe127516b61f8a9567ebcc1b10d2d1e59 Mon Sep 17 00:00:00 2001 From: Sumedha Sanjeev Date: Mon, 28 Oct 2024 16:54:45 -0500 Subject: [PATCH 18/30] added true to egf_human dummy column --- input/tps-egfr-prizes.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/input/tps-egfr-prizes.txt b/input/tps-egfr-prizes.txt index 9f25672e..bb7a6aae 100644 --- a/input/tps-egfr-prizes.txt +++ b/input/tps-egfr-prizes.txt @@ -181,7 +181,7 @@ EF1A1_HUMAN 3.774750081 True True EF1B_HUMAN 0.768939794 True True EF1D_HUMAN 1.240472409 True True EFNB2_HUMAN 2.222686177 True True -EGF_HUMAN 10 True True +EGF_HUMAN 10 True True True EGFR_HUMAN 6.787874699 True True EGLN1_HUMAN 1.876580206 True True EIF3B_HUMAN 2.048949271 True True From ebd7dee5d6dbba06e5b2f662f4eff65930208932 Mon Sep 17 00:00:00 2001 From: ntalluri Date: Tue, 29 Oct 2024 11:15:20 -0500 Subject: [PATCH 19/30] updated to use a variable to store the new seperator --- spras/meo.py | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/spras/meo.py b/spras/meo.py index 3382c54b..56895e90 100644 --- a/spras/meo.py +++ b/spras/meo.py @@ -10,6 +10,8 @@ __all__ = ['MEO', 'write_properties'] +# replaces all underscores in the node names with unicode seperator +underscore_replacement = '꧁SEP꧂' # Only supports the Random orientation algorithm # Does not support MINSAT or MAXCSP @@ -88,8 +90,8 @@ def generate_inputs(data, filename_map): # TODO test whether this selection is needed, what values could the column contain that we would want to # include or exclude? nodes = nodes.loc[nodes[node_type]] - # replace _'s with ꧁SEP꧂ - nodes['NODEID'] = nodes['NODEID'].str.replace('_', '꧁SEP꧂') + # replace _'s with underscore_replacement + nodes['NODEID'] = nodes['NODEID'].str.replace('_', underscore_replacement) nodes.to_csv(filename_map[node_type], index=False, columns=['NODEID'], header=False) # Create network file @@ -98,8 +100,8 @@ def generate_inputs(data, filename_map): # Format network file edges = add_directionality_constant(edges, 'EdgeType', '(pd)', '(pp)') # replace _'s with ꧁SEP꧂ - edges['Interactor1'] = edges['Interactor1'].str.replace('_', '꧁SEP꧂') - edges['Interactor2'] = edges['Interactor2'].str.replace('_', '꧁SEP꧂') + edges['Interactor1'] = edges['Interactor1'].str.replace('_', underscore_replacement) + edges['Interactor2'] = edges['Interactor2'].str.replace('_', underscore_replacement) edges.to_csv(filename_map['edges'], sep='\t', index=False, columns=['Interactor1', 'EdgeType', 'Interactor2', 'Weight'], header=False) @@ -185,9 +187,9 @@ def parse_output(raw_pathway_file, standardized_pathway_file): # Columns Source Type Target Oriented Weight df = raw_pathway_df(raw_pathway_file, sep='\t', header=0) if not df.empty: - # Replace ꧁SEP꧂ with _ - df['Source'] = df['Source'].str.replace('꧁SEP꧂', '_') - df['Target'] = df['Target'].str.replace('꧁SEP꧂', '_') + # Replace underscore_replacement with _ + df['Source'] = df['Source'].str.replace(underscore_replacement, '_') + df['Target'] = df['Target'].str.replace(underscore_replacement, '_') # Keep only edges that were assigned an orientation (direction) df = df.loc[df['Oriented']] # TODO what should be the edge rank? From d8b8bcf576e045df9f8f7b7d8d5e396972201687 Mon Sep 17 00:00:00 2001 From: Sumedha Sanjeev Date: Thu, 31 Oct 2024 10:36:01 -0500 Subject: [PATCH 20/30] changes from pr review --- config/egfr.yaml | 1 + input/README.md | 23 +++-------------------- spras/omicsintegrator1.py | 9 +++++---- 3 files changed, 9 insertions(+), 24 deletions(-) diff --git a/config/egfr.yaml b/config/egfr.yaml index 0b41f0a5..bede941e 100644 --- a/config/egfr.yaml +++ b/config/egfr.yaml @@ -33,6 +33,7 @@ algorithms: - 0.1 mu: - 0.008 + dummy_mode: ["file"] - name: omicsintegrator2 params: diff --git a/input/README.md b/input/README.md index 8ebfede4..1e2f7af1 100644 --- a/input/README.md +++ b/input/README.md @@ -11,9 +11,9 @@ All other columns specify additional node attributes such as prizes. Any nodes that are listed in a node file but are not present in one or more edges in the edge file will be removed. For example: ``` -NODEID prize sources targets active -A 1.0 True True -B 3.3 True True +NODEID prize sources targets dummy +A 1.0 True True True +B 3.3 True True C 2.5 True True D 1.9 True True True ``` @@ -26,23 +26,6 @@ There are 4 dummy mode possibilities: 4. file -> custom nodes - connect the dummy node to a specific list of nodes provided in a file To support the `file` dummy node logic as part of OmicsIntegrator1, you can either add a seperate `dummy.txt` file (and add this to the `node_files` argument in `config.yaml `) or add a `dummy` column node attribute to a file that contains `NODEID`, `prize`, `source`, etc. -If adding a seperate `dummy.txt` file: -Make a file with the name `dummy.txt` and list the dummy nodes, each seperated by a new line. Example: -``` -A -B -C -``` - -If adding the `dummy` column node attribute, then add the dummy column and specify boolean values for the `dummy` attribute: -``` -NODEID prize sources targets dummy -A 1.0 True True True -B 3.3 True True -C 2.5 True True -D 1.9 True True True -``` - A secondary format provides only a list of node identifiers and uses the filename as the node attribute, as in the example `sources.txt`. This format may be deprecated. diff --git a/spras/omicsintegrator1.py b/spras/omicsintegrator1.py index df82f3d7..f0507f03 100644 --- a/spras/omicsintegrator1.py +++ b/spras/omicsintegrator1.py @@ -135,10 +135,11 @@ def run(edges=None, prizes=None, dummy_nodes=None, dummy_mode=None, mu_squared=N # 4. file -> custom nodes - connect the dummy node to a specific list of nodes provided in a file # add dummy node file to the volume if dummy_mode is not None and it is 'file' - if dummy_mode is not None and dummy_mode == 'file': - # needs to use dummy node file that was put in the dataset - bind_path, dummy_file = prepare_volume(dummy_nodes, work_dir) - volumes.append(bind_path) + if dummy_mode == 'file': + if dummy_nodes is None: + raise ValueError("dummy_nodes file is required when dummy_mode is set to 'file'") + bind_path, dummy_file = prepare_volume(dummy_nodes, work_dir) + volumes.append(bind_path) out_dir = Path(output_file).parent # Omics Integrator 1 requires that the output directory exist From 28321e0aca8e4310b1f88e7dd12938f1d7f263d3 Mon Sep 17 00:00:00 2001 From: Neha Talluri <78840540+ntalluri@users.noreply.github.com> Date: Mon, 4 Nov 2024 12:12:14 -0600 Subject: [PATCH 21/30] Update spras/meo.py on why we need this change Co-authored-by: Anthony Gitter --- spras/meo.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/spras/meo.py b/spras/meo.py index 56895e90..80e920db 100644 --- a/spras/meo.py +++ b/spras/meo.py @@ -11,6 +11,8 @@ __all__ = ['MEO', 'write_properties'] # replaces all underscores in the node names with unicode seperator +# MEO keeps only the substring up to the first underscore when parsing node names +# https://github.com/agitter/meo/blob/1fe57e8ff3952c494e2b14dfdc563a84596e2fcd/src/alg/Vertex.java#L56-L71 underscore_replacement = '꧁SEP꧂' # Only supports the Random orientation algorithm From 2a1aeabac1a6b9850f3e526eb6c618d62d3d26fd Mon Sep 17 00:00:00 2001 From: ntalluri Date: Thu, 7 Nov 2024 12:01:40 -0600 Subject: [PATCH 22/30] updated genereate inputs test case --- .../expected/allpairs-network-expected.txt | 2 +- .../expected/domino-network-expected.txt | 2 +- .../expected/meo-edges-expected.txt | 2 +- .../expected/mincostflow-edges-expected.txt | 4 +- .../omicsintegrator1-edges-expected.txt | 2 +- .../omicsintegrator2-edges-expected.txt | 2 +- .../expected/pathlinker-network-expected.txt | 4 +- test/generate-inputs/inputs/network.txt | 2 + test/generate-inputs/inputs/node-prizes.txt | 3 + test/generate-inputs/inputs/sources.txt | 1 + test/generate-inputs/inputs/targets.txt | 1 + test/generate-inputs/inputs/test_config.yaml | 69 +++++++++++++++++++ test/generate-inputs/test_generate_inputs.py | 6 +- 13 files changed, 88 insertions(+), 12 deletions(-) create mode 100644 test/generate-inputs/inputs/network.txt create mode 100644 test/generate-inputs/inputs/node-prizes.txt create mode 100644 test/generate-inputs/inputs/sources.txt create mode 100644 test/generate-inputs/inputs/targets.txt create mode 100644 test/generate-inputs/inputs/test_config.yaml diff --git a/test/generate-inputs/expected/allpairs-network-expected.txt b/test/generate-inputs/expected/allpairs-network-expected.txt index 3cbac89c..011a4c71 100644 --- a/test/generate-inputs/expected/allpairs-network-expected.txt +++ b/test/generate-inputs/expected/allpairs-network-expected.txt @@ -1,3 +1,3 @@ #Interactor1 Interactor2 Weight -A B 0.98 +test_A B 0.98 B C 0.77 diff --git a/test/generate-inputs/expected/domino-network-expected.txt b/test/generate-inputs/expected/domino-network-expected.txt index 27683d36..dba06b4d 100644 --- a/test/generate-inputs/expected/domino-network-expected.txt +++ b/test/generate-inputs/expected/domino-network-expected.txt @@ -1,3 +1,3 @@ ID_interactor_A ppi ID_interactor_B -ENSG0A ppi ENSG0B +ENSG0test_A ppi ENSG0B ENSG0B ppi ENSG0C diff --git a/test/generate-inputs/expected/meo-edges-expected.txt b/test/generate-inputs/expected/meo-edges-expected.txt index 5916b3d7..d2afa5ae 100644 --- a/test/generate-inputs/expected/meo-edges-expected.txt +++ b/test/generate-inputs/expected/meo-edges-expected.txt @@ -1,2 +1,2 @@ -A (pp) B 0.98 +test꧁SEP꧂A (pp) B 0.98 B (pp) C 0.77 diff --git a/test/generate-inputs/expected/mincostflow-edges-expected.txt b/test/generate-inputs/expected/mincostflow-edges-expected.txt index f0889bf4..a52b1593 100644 --- a/test/generate-inputs/expected/mincostflow-edges-expected.txt +++ b/test/generate-inputs/expected/mincostflow-edges-expected.txt @@ -1,4 +1,4 @@ -A B 0.98 +test_A B 0.98 B C 0.77 -B A 0.98 +B test_A 0.98 C B 0.77 diff --git a/test/generate-inputs/expected/omicsintegrator1-edges-expected.txt b/test/generate-inputs/expected/omicsintegrator1-edges-expected.txt index 6342d481..dd21d5aa 100644 --- a/test/generate-inputs/expected/omicsintegrator1-edges-expected.txt +++ b/test/generate-inputs/expected/omicsintegrator1-edges-expected.txt @@ -1,3 +1,3 @@ protein1 protein2 weight directionality -A B 0.98 U +test_A B 0.98 U B C 0.77 U diff --git a/test/generate-inputs/expected/omicsintegrator2-edges-expected.txt b/test/generate-inputs/expected/omicsintegrator2-edges-expected.txt index 997eb62e..51ccfd0f 100644 --- a/test/generate-inputs/expected/omicsintegrator2-edges-expected.txt +++ b/test/generate-inputs/expected/omicsintegrator2-edges-expected.txt @@ -1,3 +1,3 @@ protein1 protein2 cost -A B 0.52 +test_A B 0.52 B C 0.73 diff --git a/test/generate-inputs/expected/pathlinker-network-expected.txt b/test/generate-inputs/expected/pathlinker-network-expected.txt index d1f92741..d90b3f05 100644 --- a/test/generate-inputs/expected/pathlinker-network-expected.txt +++ b/test/generate-inputs/expected/pathlinker-network-expected.txt @@ -1,5 +1,5 @@ #Interactor1 Interactor2 Weight -A B 0.98 +test_A B 0.98 B C 0.77 -B A 0.98 +B test_A 0.98 C B 0.77 diff --git a/test/generate-inputs/inputs/network.txt b/test/generate-inputs/inputs/network.txt new file mode 100644 index 00000000..fa374457 --- /dev/null +++ b/test/generate-inputs/inputs/network.txt @@ -0,0 +1,2 @@ +test_A B 0.98 U +B C 0.77 U diff --git a/test/generate-inputs/inputs/node-prizes.txt b/test/generate-inputs/inputs/node-prizes.txt new file mode 100644 index 00000000..f0d540ad --- /dev/null +++ b/test/generate-inputs/inputs/node-prizes.txt @@ -0,0 +1,3 @@ +NODEID prize active +test_A 2 true +C 5.7 true diff --git a/test/generate-inputs/inputs/sources.txt b/test/generate-inputs/inputs/sources.txt new file mode 100644 index 00000000..050111ac --- /dev/null +++ b/test/generate-inputs/inputs/sources.txt @@ -0,0 +1 @@ +test_A diff --git a/test/generate-inputs/inputs/targets.txt b/test/generate-inputs/inputs/targets.txt new file mode 100644 index 00000000..3cc58df8 --- /dev/null +++ b/test/generate-inputs/inputs/targets.txt @@ -0,0 +1 @@ +C diff --git a/test/generate-inputs/inputs/test_config.yaml b/test/generate-inputs/inputs/test_config.yaml new file mode 100644 index 00000000..42210c8f --- /dev/null +++ b/test/generate-inputs/inputs/test_config.yaml @@ -0,0 +1,69 @@ +hash_length: 7 +container_framework: docker +unpack_singularity: false +container_registry: + base_url: docker.io + owner: reedcompbio + +algorithms: + - name: "pathlinker" + params: + include: true + run1: + k: range(100,201,100) + + - name: "omicsintegrator1" + params: + include: true + run1: + b: [5, 6] + w: np.linspace(0,5,2) + d: [10] + + - name: "omicsintegrator2" + params: + include: true + run1: + b: [4] + g: [0] + run2: + b: [2] + g: [3] + + - name: "meo" + params: + include: true + run1: + max_path_length: [3] + local_search: ["Yes"] + rand_restarts: [10] + + - name: "mincostflow" + params: + include: true + run1: + flow: [1] # The flow must be an int + capacity: [1] + + - name: "allpairs" + params: + include: true + + - name: "domino" + params: + include: true + run1: + slice_threshold: [0.3] + module_threshold: [0.05] + +datasets: + - + # Labels can only contain letters, numbers, or underscores + label: test_data + node_files: ["node-prizes.txt", "sources.txt", "targets.txt"] + # DataLoader.py can currently only load a single edge file, which is the primary network + edge_files: ["network.txt"] + # Placeholder + other_files: [] + # Relative path from the spras directory + data_dir: "test/generate-inputs/inputs" \ No newline at end of file diff --git a/test/generate-inputs/test_generate_inputs.py b/test/generate-inputs/test_generate_inputs.py index 86319e2c..4ad74d0b 100644 --- a/test/generate-inputs/test_generate_inputs.py +++ b/test/generate-inputs/test_generate_inputs.py @@ -29,14 +29,14 @@ def setup_class(cls): Path(OUTDIR).mkdir(parents=True, exist_ok=True) def test_prepare_inputs_networks(self): - config_loc = os.path.join("config", "config.yaml") + config_loc = os.path.join("test","generate-inputs", "inputs", "test_config.yaml") with open(config_loc) as config_file: config = yaml.load(config_file, Loader=yaml.FullLoader) test_file = "test/generate-inputs/output/test_pickled_dataset.pkl" - data0_dataset = next((ds for ds in config["datasets"] if ds["label"] == "data0"), None) - runner.merge_input(data0_dataset, test_file) + test_dataset = next((ds for ds in config["datasets"] if ds["label"] == "test_data"), None) + runner.merge_input(test_dataset, test_file) for algo in algo_exp_file.keys(): inputs = runner.get_required_inputs(algo) From de539524fbbdda22045b75b23669f4bc262e90d8 Mon Sep 17 00:00:00 2001 From: Anthony Gitter Date: Fri, 8 Nov 2024 16:31:10 -0600 Subject: [PATCH 23/30] Run code linter --- spras/meo.py | 4 +++- test/generate-inputs/inputs/test_config.yaml | 2 +- test/generate-inputs/test_generate_inputs.py | 4 ++-- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/spras/meo.py b/spras/meo.py index 80e920db..1f2cbc23 100644 --- a/spras/meo.py +++ b/spras/meo.py @@ -15,6 +15,7 @@ # https://github.com/agitter/meo/blob/1fe57e8ff3952c494e2b14dfdc563a84596e2fcd/src/alg/Vertex.java#L56-L71 underscore_replacement = '꧁SEP꧂' + # Only supports the Random orientation algorithm # Does not support MINSAT or MAXCSP # TODO add parameter validation @@ -67,6 +68,8 @@ def write_properties(filename=Path('properties.txt'), edges=None, sources=None, - MEO tracks the directionality of the original edges, but all of its output edges are directed. - To remain accurate to MEO's design we will also treat the output graph's as directed """ + + class MEO(PRM): required_inputs = ['sources', 'targets', 'edges'] @@ -107,7 +110,6 @@ def generate_inputs(data, filename_map): edges.to_csv(filename_map['edges'], sep='\t', index=False, columns=['Interactor1', 'EdgeType', 'Interactor2', 'Weight'], header=False) - # TODO add parameter validation # TODO document required arguments @staticmethod diff --git a/test/generate-inputs/inputs/test_config.yaml b/test/generate-inputs/inputs/test_config.yaml index 42210c8f..8cef4722 100644 --- a/test/generate-inputs/inputs/test_config.yaml +++ b/test/generate-inputs/inputs/test_config.yaml @@ -66,4 +66,4 @@ datasets: # Placeholder other_files: [] # Relative path from the spras directory - data_dir: "test/generate-inputs/inputs" \ No newline at end of file + data_dir: "test/generate-inputs/inputs" diff --git a/test/generate-inputs/test_generate_inputs.py b/test/generate-inputs/test_generate_inputs.py index 4ad74d0b..6d732d31 100644 --- a/test/generate-inputs/test_generate_inputs.py +++ b/test/generate-inputs/test_generate_inputs.py @@ -17,7 +17,7 @@ 'domino': 'network', 'pathlinker': 'network', 'allpairs': 'network' - } +} class TestGenerateInputs: @@ -29,7 +29,7 @@ def setup_class(cls): Path(OUTDIR).mkdir(parents=True, exist_ok=True) def test_prepare_inputs_networks(self): - config_loc = os.path.join("test","generate-inputs", "inputs", "test_config.yaml") + config_loc = os.path.join("test", "generate-inputs", "inputs", "test_config.yaml") with open(config_loc) as config_file: config = yaml.load(config_file, Loader=yaml.FullLoader) From 8a2ff8fa001f355ab5583492d38adb98d1b4f526 Mon Sep 17 00:00:00 2001 From: Sumedha Sanjeev Date: Wed, 13 Nov 2024 12:14:54 -0600 Subject: [PATCH 24/30] pr changes --- doc/README.md | 11 +++++++++++ input/README.md | 8 -------- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/doc/README.md b/doc/README.md index 1e217c4e..7e1526c8 100644 --- a/doc/README.md +++ b/doc/README.md @@ -39,6 +39,17 @@ PathLinker takes as input (1) a weighted, directed PPI network, (2) two sets of - Ritz et al. Pathways on demand: automated reconstruction of human signaling networks. _NPJ Systems Biology and Applications._ 2016. [doi:10.1038/npjsba.2016.2](https://doi.org/10.1038/npjsba.2016.2) - Youssef, Law, and Ritz. Integrating protein localization with automated signaling pathway reconstruction. _BMC Bioinformatics._ 2019. [doi:10.1186/s12859-019-3077-x](https://doi.org/10.1186/s12859-019-3077-x) +## OmicsIntegrator1 + +One of the parameter options for OmicsIntegraor1 is `dummy-mode`. +There are 4 dummy mode possibilities: + 1. terminals -> connect the dummy node to all nodes that have been assigned prizes + 2. all -> connect the dummy node to all nodes in the interactome i.e. full set of nodes in graph + 3. others -> connect the dummy node to all nodes that are not terminal nodes i.e. nodes w/o prizes + 4. file -> custom nodes - connect the dummy node to a specific list of nodes provided in a file +To support the `file` dummy node logic as part of OmicsIntegrator1, you can either add a seperate `dummy.txt` file (and add this to the `node_files` argument in `config.yaml `) or add a `dummy` column node attribute to a file that contains `NODEID`, `prize`, `source`, etc. + + ## Pathway Reconstruction Augmenter (PRAUG) **References:** diff --git a/input/README.md b/input/README.md index 1e2f7af1..ab9765f4 100644 --- a/input/README.md +++ b/input/README.md @@ -18,14 +18,6 @@ C 2.5 True True D 1.9 True True True ``` -##### OmicsIntegrator1: Dummy Nodes -There are 4 dummy mode possibilities: - 1. terminals -> connect the dummy node to all nodes that have been assigned prizes - 2. all -> connect the dummy node to all nodes in the interactome i.e. full set of nodes in graph - 3. others -> connect the dummy node to all nodes that are not terminal nodes i.e. nodes w/o prizes - 4. file -> custom nodes - connect the dummy node to a specific list of nodes provided in a file -To support the `file` dummy node logic as part of OmicsIntegrator1, you can either add a seperate `dummy.txt` file (and add this to the `node_files` argument in `config.yaml `) or add a `dummy` column node attribute to a file that contains `NODEID`, `prize`, `source`, etc. - A secondary format provides only a list of node identifiers and uses the filename as the node attribute, as in the example `sources.txt`. This format may be deprecated. From 63979557695a3f8ec5af549ae9209d0820591762 Mon Sep 17 00:00:00 2001 From: Sumedha Sanjeev Date: Mon, 18 Nov 2024 10:31:36 -0600 Subject: [PATCH 25/30] changes to input readme --- input/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/input/README.md b/input/README.md index ab9765f4..5888427c 100644 --- a/input/README.md +++ b/input/README.md @@ -11,8 +11,8 @@ All other columns specify additional node attributes such as prizes. Any nodes that are listed in a node file but are not present in one or more edges in the edge file will be removed. For example: ``` -NODEID prize sources targets dummy -A 1.0 True True True +NODEID prize sources targets active dummy +A 1.0 True True True True B 3.3 True True C 2.5 True True D 1.9 True True True From 41aeb36a8348c2eee4d143493e7a68d962e8f8e3 Mon Sep 17 00:00:00 2001 From: Sumedha Sanjeev Date: Mon, 18 Nov 2024 16:13:43 -0600 Subject: [PATCH 26/30] update node prizes file --- input/node-prizes.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/input/node-prizes.txt b/input/node-prizes.txt index 2ce28bb7..d03c3049 100644 --- a/input/node-prizes.txt +++ b/input/node-prizes.txt @@ -1,3 +1,3 @@ NODEID prize active dummy -A 2 true +A 2 true true C 5.7 true From 81eddf3ac6384772541e931b7a1d8bca1de2367b Mon Sep 17 00:00:00 2001 From: Anthony Gitter Date: Fri, 22 Nov 2024 21:27:06 -0600 Subject: [PATCH 27/30] Add dummy mode test cases --- test/OmicsIntegrator1/input/oi1-dummy.txt | 1 + test/OmicsIntegrator1/test_oi1.py | 30 +++++++++++++++++++++++ 2 files changed, 31 insertions(+) create mode 100644 test/OmicsIntegrator1/input/oi1-dummy.txt diff --git a/test/OmicsIntegrator1/input/oi1-dummy.txt b/test/OmicsIntegrator1/input/oi1-dummy.txt new file mode 100644 index 00000000..223b7836 --- /dev/null +++ b/test/OmicsIntegrator1/input/oi1-dummy.txt @@ -0,0 +1 @@ +B diff --git a/test/OmicsIntegrator1/test_oi1.py b/test/OmicsIntegrator1/test_oi1.py index 6664f744..35b41d42 100644 --- a/test/OmicsIntegrator1/test_oi1.py +++ b/test/OmicsIntegrator1/test_oi1.py @@ -49,6 +49,7 @@ def test_oi1_all_optional(self): # Include all optional arguments OmicsIntegrator1.run(edges=TEST_DIR+'input/oi1-edges.txt', prizes=TEST_DIR+'input/oi1-prizes.txt', + dummy_nodes=None, dummy_mode='terminals', mu_squared=True, exclude_terms=True, @@ -66,6 +67,23 @@ def test_oi1_all_optional(self): r=0) assert out_path.exists() + def test_oi1_dummy_file(self): + out_path = Path(OUT_FILE) + out_path.unlink(missing_ok=True) + # Include optional argument + OmicsIntegrator1.run(edges=TEST_DIR+'input/oi1-edges.txt', + prizes=TEST_DIR+'input/oi1-prizes.txt', + dummy_nodes=TEST_DIR + 'input/oi1-dummy.txt', + dummy_mode='file', + output_file=OUT_FILE, + w=5, + b=1, + d=10, + noise=0.333, + g=0.001, + r=0) + assert out_path.exists() + def test_oi1_missing(self): # Test the expected error is raised when required arguments are missing with pytest.raises(ValueError): @@ -81,6 +99,18 @@ def test_oi1_missing(self): b=1, d=10) + def test_oi1_missing_dummy(self): + # Test the expected error is raised when the dummy_nodes file is missing and the dummy_mode is 'file' + with pytest.raises(ValueError): + # No edges + OmicsIntegrator1.run(edges=TEST_DIR+'input/oi1-edges.txt', + prizes=TEST_DIR + 'input/oi1-prizes.txt', + output_file=TEST_DIR+'output/test_optimalForest.sif', + w=5, + b=1, + d=10, + dummy_mode='file') + # Only run Singularity test if the binary is available on the system # spython is only available on Unix, but do not explicitly skip non-Unix platforms @pytest.mark.skipif(not shutil.which('singularity'), reason='Singularity not found on system') From eca481f6f10bfb2bc2a8f3d54bb8f0f427cbb321 Mon Sep 17 00:00:00 2001 From: Anthony Gitter Date: Fri, 22 Nov 2024 21:40:05 -0600 Subject: [PATCH 28/30] Final formatting updates --- config/config.yaml | 9 +++++---- doc/README.md | 21 +++++++++------------ input/README.md | 4 ++-- input/dummy.txt | 1 - spras/omicsintegrator1.py | 25 +++++++++++++------------ 5 files changed, 29 insertions(+), 31 deletions(-) delete mode 100644 input/dummy.txt diff --git a/config/config.yaml b/config/config.yaml index 6b1949fa..3889cc84 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -56,7 +56,7 @@ algorithms: b: [5, 6] w: np.linspace(0,5,2) d: [10] - dummy_mode: ["terminals"] + dummy_mode: ["file"] # Or "terminals", "all", "others" - name: "omicsintegrator2" params: @@ -70,7 +70,7 @@ algorithms: - name: "meo" params: - include: true + include: true run1: max_path_length: [3] local_search: ["Yes"] @@ -102,7 +102,8 @@ datasets: - # Labels can only contain letters, numbers, or underscores label: data0 - # To run OmicsIntegrator1 with dummy nodes, add the dummy.txt file to node_files + # To run OmicsIntegrator1 with dummy nodes, add dummy.txt file to node_files + # or a dummy column to the node table node_files: ["node-prizes.txt", "sources.txt", "targets.txt"] # DataLoader.py can currently only load a single edge file, which is the primary network edge_files: ["network.txt"] @@ -175,4 +176,4 @@ analysis: # 'euclidean', 'manhattan', 'cosine' metric: 'euclidean' evaluation: - include: true \ No newline at end of file + include: true diff --git a/doc/README.md b/doc/README.md index 7e1526c8..bfebcfa4 100644 --- a/doc/README.md +++ b/doc/README.md @@ -23,7 +23,7 @@ The graph algorithms below have been used (or have the potential to be used) for - Basha et al., ResponseNet2.0: revealing signaling and regulatory pathways connecting your proteins and genes–now with human data. _Nucleic Acids Research._ 2013. [doi:10.1093/nar/gkt532](https://dx.doi.org/10.1093%2Fnar%2Fgkt532) - Basha et al. ResponseNet v.3: revealing signaling and regulatory pathways connecting your proteins and genes across human tissues. _Nucleic Acids Research._ 2019. [doi:10.1093/nar/gkz421](https://dx.doi.org/10.1093%2Fnar%2Fgkz421) -## Prize Collecting Steiner Forest (PCSF) +## Prize Collecting Steiner Forest (PCSF): OmicsIntegrator1 and OmicsIntegrator2 **References:** - Huang and Fraenkel. Integrating proteomic, transcriptional, and interactome data reveals hidden components of signaling and regulatory networks. _Science Signaling._ 2009. [doi:10.1126/scisignal.2000350](https://doi.org/10.1126/scisignal.2000350) @@ -31,6 +31,14 @@ The graph algorithms below have been used (or have the potential to be used) for - Gitter et al. Sharing information to reconstruct patient-specific pathways in heterogeneous diseases. _Pacific Symposium on Biocomputing._ 2014. [doi:10.1142/9789814583220_0005](https://doi.org/10.1142/9789814583220_0005) - Tuncbag et al., Network-Based Interpretation of Diverse High-Throughput Datasets through the Omics Integrator Software Package. _PLoS Computational Biology._ 2016. [doi:10.1371/journal.pcbi.1004879](https://doi.org/10.1371/journal.pcbi.1004879) +One of the parameter options for OmicsIntegraor1 is `dummy_mode`. +There are 4 dummy mode possibilities: + 1. `terminals`: connect the dummy node to all nodes that have been assigned prizes + 2. `all`: connect the dummy node to all nodes in the interactome i.e. full set of nodes in graph + 3. `others`: connect the dummy node to all nodes that are not terminal nodes i.e. nodes w/o prizes + 4. `file`: connect the dummy node to a specific list of nodes provided in a file +To support the `file` dummy node logic as part of OmicsIntegrator1, you can either add a separate `dummy.txt` file (and add this to the `node_files` argument in `config.yaml `) or add a `dummy` column node attribute to a file that contains `NODEID`, `prize`, `source`, etc. + ## PathLinker PathLinker takes as input (1) a weighted, directed PPI network, (2) two sets of nodes: a source set (representing receptors of a pathway of interest) and a target set (representing transcriptional regulators of a pathway of interest), and (3) an integer _k_. PathLinker efficiently computes the _k_-shortest paths from any source to any target and returns the subnetwork of the top _k_ paths as the pathway reconstruction. Later work expanded PathLinker by incorporating protein localization information to re-score tied paths, dubbed Localized PathLinker (LocPL). @@ -39,17 +47,6 @@ PathLinker takes as input (1) a weighted, directed PPI network, (2) two sets of - Ritz et al. Pathways on demand: automated reconstruction of human signaling networks. _NPJ Systems Biology and Applications._ 2016. [doi:10.1038/npjsba.2016.2](https://doi.org/10.1038/npjsba.2016.2) - Youssef, Law, and Ritz. Integrating protein localization with automated signaling pathway reconstruction. _BMC Bioinformatics._ 2019. [doi:10.1186/s12859-019-3077-x](https://doi.org/10.1186/s12859-019-3077-x) -## OmicsIntegrator1 - -One of the parameter options for OmicsIntegraor1 is `dummy-mode`. -There are 4 dummy mode possibilities: - 1. terminals -> connect the dummy node to all nodes that have been assigned prizes - 2. all -> connect the dummy node to all nodes in the interactome i.e. full set of nodes in graph - 3. others -> connect the dummy node to all nodes that are not terminal nodes i.e. nodes w/o prizes - 4. file -> custom nodes - connect the dummy node to a specific list of nodes provided in a file -To support the `file` dummy node logic as part of OmicsIntegrator1, you can either add a seperate `dummy.txt` file (and add this to the `node_files` argument in `config.yaml `) or add a `dummy` column node attribute to a file that contains `NODEID`, `prize`, `source`, etc. - - ## Pathway Reconstruction Augmenter (PRAUG) **References:** diff --git a/input/README.md b/input/README.md index 5888427c..1c004f3b 100644 --- a/input/README.md +++ b/input/README.md @@ -12,8 +12,8 @@ Any nodes that are listed in a node file but are not present in one or more edge For example: ``` NODEID prize sources targets active dummy -A 1.0 True True True True -B 3.3 True True +A 1.0 True True True +B 3.3 True True C 2.5 True True D 1.9 True True True ``` diff --git a/input/dummy.txt b/input/dummy.txt deleted file mode 100644 index 8c7e5a66..00000000 --- a/input/dummy.txt +++ /dev/null @@ -1 +0,0 @@ -A \ No newline at end of file diff --git a/spras/omicsintegrator1.py b/spras/omicsintegrator1.py index f0507f03..5438751b 100644 --- a/spras/omicsintegrator1.py +++ b/spras/omicsintegrator1.py @@ -35,18 +35,20 @@ def write_conf(filename=Path('config.txt'), w=None, b=None, d=None, mu=None, noi f.write('processes = 1\n') f.write('threads = 1\n') -""" -Omics Integrator 1 works with partially directed graphs -- it takes in the universal input directly -Expected raw input format: -Interactor1 Interactor2 Weight Direction -- the expected raw input file should have node pairs in the 1st and 2nd columns, with a weight in the 3rd column and directionality in the 4th column -- it can include repeated and bidirectional edges -- it uses 'U' for undirected edges and 'D' for directed edges - -""" class OmicsIntegrator1(PRM): + """ + Omics Integrator 1 works with partially directed graphs + - it takes in the universal input directly + + Expected raw input format: + Interactor1 Interactor2 Weight Direction + - the expected raw input file should have node pairs in the 1st and 2nd columns, with a weight in the 3rd column and + directionality in the 4th column + - it can include repeated and bidirectional edges + - it uses 'U' for undirected edges and 'D' for directed edges + + """ required_inputs = ['prizes', 'edges', 'dummy_nodes'] @staticmethod @@ -93,7 +95,6 @@ def generate_inputs(data, filename_map): with open(filename_map['dummy_nodes'], mode='w'): pass - # TODO add parameter validation # TODO add support for knockout argument # TODO add reasonable default values @@ -132,7 +133,7 @@ def run(edges=None, prizes=None, dummy_nodes=None, dummy_mode=None, mu_squared=N # 1. terminals -> connect the dummy node to all nodes that have been assigned prizes # 2. all -> connect the dummy node to all nodes in the interactome i.e. full set of nodes in graph # 3. others -> connect the dummy node to all nodes that are not terminal nodes i.e. nodes w/o prizes - # 4. file -> custom nodes - connect the dummy node to a specific list of nodes provided in a file + # 4. file -> connect the dummy node to a specific list of nodes provided in a file # add dummy node file to the volume if dummy_mode is not None and it is 'file' if dummy_mode == 'file': From cdfdedf8cb0042965efc0ce0f28f45fc769a0381 Mon Sep 17 00:00:00 2001 From: Anthony Gitter Date: Fri, 22 Nov 2024 21:45:59 -0600 Subject: [PATCH 29/30] Fix whitespace --- input/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/input/README.md b/input/README.md index 1c004f3b..50be2a7e 100644 --- a/input/README.md +++ b/input/README.md @@ -13,7 +13,7 @@ For example: ``` NODEID prize sources targets active dummy A 1.0 True True True -B 3.3 True True +B 3.3 True True C 2.5 True True D 1.9 True True True ``` From 4ac2c6c7cabc3b0e5ae87fec424cd208c66339ae Mon Sep 17 00:00:00 2001 From: Anthony Gitter Date: Wed, 22 Jan 2025 21:21:40 -0600 Subject: [PATCH 30/30] Switch to latest Singularity --- .github/workflows/test-spras.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test-spras.yml b/.github/workflows/test-spras.yml index d3d70ebd..a8965f79 100644 --- a/.github/workflows/test-spras.yml +++ b/.github/workflows/test-spras.yml @@ -52,7 +52,7 @@ jobs: uses: eWaterCycle/setup-apptainer@v2 with: # Choose version from https://github.com/apptainer/apptainer/releases - apptainer-version: 1.2.2 + apptainer-version: 1.3.6 - name: Run tests shell: bash --login {0} # Verbose output and disable stdout and stderr capturing