def main(argv): #Create variables expression_data = None motif = None ppi = None output_file = "output_panda.txt" rm_missing = False lioness_file = False # Get input options try: opts, args = getopt.getopt(argv, 'he:m:p:o:rq:', ['help', 'expression=', 'motif=', 'ppi=', 'out=', 'rm_missing', 'lioness']) except getopt.GetoptError: print(__doc__) sys.exit() for opt, arg in opts: if opt in ('-h', '--help'): print(__doc__) sys.exit() elif opt in ('-e', '--expression'): expression_data = arg elif opt in ('-m', '--motif'): motif = arg elif opt in ('-p', '--ppi'): ppi = arg elif opt in ('-o', '--out'): output_file = arg elif opt in ('-r', '--rm_missing'): rm_missing = arg elif opt in ('-q', '--lioness'): lioness_file = arg #Check if required options are given print('Input data:') print('Expression:', expression_data) print('Motif data:', motif) print('PPI data:', ppi) if expression_data is None and motif is None: print('Missing inputs!') print(__doc__) sys.exit() # Run PANDA print('Start Panda run ...') panda_obj = Panda(expression_data, motif, ppi, save_tmp=True, remove_missing=rm_missing, keep_expression_matrix=bool(lioness_file)) #panda_obj = pypanda.Panda(expression_data, motif, None, save_tmp=True, remove_missing=rm_missing) #panda_obj = pypanda.Panda(None, motif, ppi, save_tmp=True, remove_missing=rm_missing) #panda_obj = pypanda.Panda(None, motif, None, save_tmp=True, remove_missing=rm_missing) #panda_obj = pypanda.Panda(expression_data, None, ppi, save_tmp=True, remove_missing=rm_missing) panda_obj.save_panda_results(output_file) #panda_obj.top_network_plot(top=70, file='panda_topgenes.png') #indegree = panda_obj.return_panda_indegree() #outdegree = panda_obj.return_panda_outdegree() if lioness_file: from netZooPy.lioness.lioness import Lioness lioness_obj = Lioness(panda_obj) lioness_obj.save_lioness_results(lioness_file) print('All done!')
def test_lioness(): print('Start lioness test!') #1. First generate temporary PANDA files as inputs for Lioness ppi = 'tests/puma/ToyData/ToyPPIData.txt' motif = 'tests/puma/ToyData/ToyMotifData.txt' expression_data = 'tests/puma/ToyData/ToyExpressionData.txt' lioness_file = 'Travis' rm_missing = False output_file = 'panda.npy' gt_file = 'tests/panda/test_panda.txt' panda_obj = Panda(expression_data, motif, ppi, save_tmp=True, remove_missing=rm_missing, keep_expression_matrix=bool(lioness_file), modeProcess='legacy', save_memory=False) # Set parameters lioness_obj = Lioness(panda_obj, start=1, end=1) # lioness_obj.save_lioness_results(lioness_file) # Read first lioness network res = np.load('lioness_output/lioness.1.npy') gt = np.load('tests/lioness/lioness.1.npy') # Compare to ground truth assert (np.allclose(gt, res)) #2. Testing Lioness with motif set to None to compute Lioness on coexpression networks motif = None # Make sure to keep epxression matrix for next step panda_obj_2 = Panda(expression_data, motif, ppi, save_tmp=True, remove_missing=rm_missing, keep_expression_matrix=True, modeProcess='legacy') lioness_obj_2 = Lioness(panda_obj_2, start=1, end=1) # lioness_obj.save_lioness_results(lioness_file) # Read first lioness network res = np.load('lioness_output/lioness.1.npy') gt = np.load('tests/lioness/lionessCoexpression.1.npy') # Compare to ground truth assert (np.allclose(gt, res)) #3. Testing Lioness in parallel # Set parameters os.remove('lioness_output/lioness.1.npy') lioness_obj = Lioness(panda_obj, ncores=2, start=1, end=2) # lioness_obj.save_lioness_results(lioness_file) # Read first lioness network res = np.load('lioness_output/lioness.1.npy') gt = np.load('tests/lioness/lioness.1.npy') # Compare to ground truth assert (np.allclose(gt, res))
def main(argv): """ Description: Run LIONESS algorithm from the command line. Usage: -h, --help: help -e, --expression: expression matrix (.npy) -m, --motif: motif matrix, normalized (.npy) -p, --ppi: ppi matrix, normalized (.npy) -g, --comp: use cpu (default) or gpu -r, --pre: number of digits to calcluate -c, --ncores: number cores -n, --npy: PANDA network (.npy) -o, --out: output folder -f, --format: output format (txt, npy, or mat) start: to start from nth sample (optional) end: to end at nth sample (optional, must with start) Example: python3 run_lioness.py -e ../../tests/ToyData/ToyExpressionData.txt -m ../../tests/ToyData/ToyMotifData.txt -p ../../tests/ToyData/ToyPPIData.txt -g cpu -r single -c 2 -o /tmp -f npy 1 2 Reference: Kuijjer, Marieke Lydia, et al. "Estimating sample-specific regulatory networks." Iscience 14 (2019): 226-240. """ #Create variables expression_data = None motif = None ppi = None comp = None pre = None ncores = None save_dir = None save_fmt = None try: opts, args = getopt.getopt(argv, 'he:m:p:g:r:c:n:o:f:', ['help', 'expression=', 'motif=','ppi=','comp=','pre=','ncores=', 'out=', 'format=']) except getopt.GetoptError as err: print(str(err)) # will print something like "option -a not recognized" print(__doc__) return 2 for opt, arg in opts: if opt in ('-h', '--help'): print(__doc__) return 0 elif opt in ('-e', '--expression'): expression_data = arg elif opt in ('-m', '--motif'): motif = arg elif opt in ('-p', '--ppi'): ppi = arg elif opt in ('-g', '--comp'): comp = arg elif opt in ('-r', '--pre'): pre = arg elif opt in ('-c', '--ncores'): ncores = arg elif opt in ('-n'): panda_net = arg elif opt in ('-o', '--out'): save_dir = arg elif opt in ('-f', '--format'): save_fmt = arg else: print('Unknown option', opt) return 1 start, end = 1, None if len(args) == 2: start, end = map(int, args) #Check if required options are given if expression_data is None or motif is None or ppi is None \ or save_dir is None or save_fmt is None: print('Missing argument!') print(__doc__) return 1 else: print('Input data:') print('Expression: ', expression_data) print('Motif matrix: ', motif) print('PPI matrix: ', ppi) print('compute core: ', comp) print('precision: ', pre) print('n cores: ', ncores) print('Output folder:', save_dir) print('Output format:', save_fmt) print('Sample range: ', start, '-', end) # Run panda print('Start LIONESS run ...') obj = Panda(expression_data, motif, ppi, keep_expression_matrix=True,save_memory=False) L = Lioness(obj, computing=comp, precision=pre,ncores=ncores,start=start, end=end, save_dir=save_dir, save_fmt=save_fmt) print('All done!')
def main(argv): #Create variables expression_data = None motif = None ppi = None save_dir = None save_fmt = None try: opts, args = getopt.getopt( argv, 'he:m:p:n:o:f:', ['help', 'expression=', 'motif=', 'ppi=', 'out=', 'format=']) except getopt.GetoptError as err: print(str(err)) # will print something like "option -a not recognized" print(__doc__) return 2 for opt, arg in opts: if opt in ('-h', '--help'): print(__doc__) return 0 elif opt in ('-e', '--expression'): expression_data = arg elif opt in ('-m', '--motif'): motif = arg elif opt in ('-p', '--ppi'): ppi = arg elif opt in ('-n'): panda_net = arg elif opt in ('-o', '--out'): save_dir = arg elif opt in ('-f', '--format'): save_fmt = arg else: print('Unknown option', opt) return 1 start, end = 1, None if len(args) == 2: start, end = map(int, args) #Check if required options are given if expression_data is None or motif is None or ppi is None \ or save_dir is None or save_fmt is None: print('Missing argument!') print(__doc__) return 1 else: print('Input data:') print('Expression: ', expression_data) print('Motif matrix: ', motif) print('PPI matrix: ', ppi) print('Output folder:', save_dir) print('Output format:', save_fmt) print('Sample range: ', start, '-', end) # Run panda print('Start LIONESS run ...') obj = Panda(expression_data, motif, ppi, keep_expression_matrix=True) L = Lioness(obj, start=start, end=end, save_dir=save_dir, save_fmt=save_fmt) print('All done!')
def main(argv): """ Description: Run PANDA algorithm from the command line. Inputs: -h, --help: help -e, --expression: expression values -m, --motif: pair file of motif edges, or Pearson correlation matrix when not provided -p, --ppi: pair file of PPI edges -o, --out: output file -r, --rm_missing -q, --lioness: output for Lioness single sample networks Example: python run_panda.py -e ../../tests/ToyData/ToyExpressionData.txt -m ../../tests/ToyData/ToyMotifData.txt -p ../../tests/ToyData/ToyPPIData.txt -o test_panda.txt -q output_panda.txt Reference: Glass, Kimberly, et al. "Passing messages between biological networks to refine predicted interactions." PloS one 8.5 (2013): e64832. """ #Create variables expression_data = None motif = None ppi = None output_file = "output_panda.txt" rm_missing = False lioness_file = False # Get input options try: opts, args = getopt.getopt(argv, 'he:m:p:o:rq:', [ 'help', 'expression=', 'motif=', 'ppi=', 'out=', 'rm_missing', 'lioness' ]) except getopt.GetoptError: print(__doc__) sys.exit() for opt, arg in opts: if opt in ('-h', '--help'): print(__doc__) sys.exit() elif opt in ('-e', '--expression'): expression_data = arg elif opt in ('-m', '--motif'): motif = arg elif opt in ('-p', '--ppi'): ppi = arg elif opt in ('-o', '--out'): output_file = arg elif opt in ('-r', '--rm_missing'): rm_missing = arg elif opt in ('-q', '--lioness'): lioness_file = arg #Check if required options are given print('Input data:') print('Expression:', expression_data) print('Motif data:', motif) print('PPI data:', ppi) if expression_data is None and motif is None: print('Missing inputs!') print(__doc__) sys.exit() # Run PANDA print('Start Panda run ...') panda_obj = Panda(expression_data, motif, ppi, save_tmp=True, remove_missing=rm_missing, keep_expression_matrix=bool(lioness_file)) #panda_obj = pypanda.Panda(expression_data, motif, None, save_tmp=True, remove_missing=rm_missing) #panda_obj = pypanda.Panda(None, motif, ppi, save_tmp=True, remove_missing=rm_missing) #panda_obj = pypanda.Panda(None, motif, None, save_tmp=True, remove_missing=rm_missing) #panda_obj = pypanda.Panda(expression_data, None, ppi, save_tmp=True, remove_missing=rm_missing) panda_obj.save_panda_results(output_file) #panda_obj.top_network_plot(top=70, file='panda_topgenes.png') #indegree = panda_obj.return_panda_indegree() #outdegree = panda_obj.return_panda_outdegree() if lioness_file: from netZooPy.lioness.lioness import Lioness lioness_obj = Lioness(panda_obj) lioness_obj.save_lioness_results(lioness_file) print('All done!')