def main():
    if len(sys.argv) < 2:
        print('Pickle file from t_test_miso_output.py and output '\
              '.txt filename must be specified in command line.')
        sys.exit()
    pickle_path = sys.argv[1]
    writefile_path = sys.argv[2]
    
    chr_list = create_chromo_list()
    
    # Read pickle file to get fnames_dic
    # This only contains filenames, no data. 
    fnames_dic = read_pickle(pickle_path)
    
    # Read and write to file. 
    read_pickle_write_to_file(writefile_path, chr_list, fnames_dic, 
                              filter_events=False)
    print('Summary file saved in: %s' %writefile_path)
示例#2
0
def main():
    if len(sys.argv) < 2:
        print('Pickle file from t_test_miso_output.py and output '\
              '.txt filename must be specified in command line.')
        sys.exit()
    pickle_path = sys.argv[1]
    writefile_path = sys.argv[2]

    chr_list = create_chromo_list()

    # Read pickle file to get fnames_dic
    # This only contains filenames, no data.
    fnames_dic = read_pickle(pickle_path)

    # Read and write to file.
    read_pickle_write_to_file(writefile_path,
                              chr_list,
                              fnames_dic,
                              filter_events=False)
    print('Summary file saved in: %s' % writefile_path)
def main():
    parser = OptionParser()
    parser.add_option('-1', '--group1_file', dest='group_1_samplenames_file',
                      help='Filename containing group 1 sample names (PCa)')
    parser.add_option('-2', '--group2_file', dest='group_2_samplenames_file',
                      help='Filename containing group 2 sample names (NEPC)')
    parser.add_option('-d', '--main_directory', dest='main_dir',
                      help='Main directory containing miso output results.')
    parser.add_option('-o', '--output_directory', dest='output_dir',
                      help='Output directory of t-test results.')
    parser.add_option('-O', '--output_filename', dest='output_fname',
                      help='Output filename of the t-test results.')
    parser.add_option('-m', '--min_counts', type='int', dest='min_counts',
                      help='Minimum junction read counts to be considered '\
                      'into the t-test. Best practices says 10.')
    # Parse options
    (options, _) = parser.parse_args()
    # Define constants from options
    group_1_samplenames_file = options.group_1_samplenames_file
    group_2_samplenames_file = options.group_2_samplenames_file
    main_dir = options.main_dir
    output_dir = options.output_dir
    output_fname = options.output_fname
    min_counts = options.min_counts
    
    # Define constants
    summary_fullpath = os.path.join(output_dir, output_fname)
    
    # Get sample names from textfile.
    group_1_samples = get_sample_names_from_file(group_1_samplenames_file)
    group_2_samples = get_sample_names_from_file(group_2_samplenames_file)
    
    # Create list of chromosomes.
    chr_list = create_chromo_list(prefix='chr')
    # chr_list = ['chr11']
    
    # Subset list for only those that contain miso outputs.
    group_1_samples = check_if_empty_dir(main_dir, group_1_samples, chr_list)
    group_2_samples = check_if_empty_dir(main_dir, group_2_samples, chr_list)
    
    # Init fnames dic
    fnames_dic = {}
    
    # Run on multiple threads.
    q = Queue()
    process_list = []
    for chromo in chr_list:
        print('Sending %s job to core...' %chromo)
        p = Process(target=t_test_and_pickle,
                    args=(fnames_dic, chromo, output_dir, 
                          group_1_samples, group_2_samples, 
                          main_dir, q, min_counts))
        process_list.append(p)
        p.start()
    for chromo in chr_list:
        fnames_dic.update(q.get())
    
    # Wait for all threads to be done before continuing.
    for p in process_list:
        p.join()
        
    print('Completed %s jobs.' %len(chr_list))
    
    # Write fnames_dic as pickle file.
    pickle_filename = ''.join([output_fname, '_filenames_dic.pickle'])
    fnames_savepath = os.path.join(output_dir, pickle_filename)
    print('Saving filenames_dic.pickle to %s' %fnames_savepath)
    pickle_path = save_dic_as_pickle(fnames_dic, fnames_savepath)
    
    # Write information from pickle to textfile. 
    print('Writing information from pickle to textfile.')
    # Read pickle file to get fnames_dic
    fnames_dic = read_pickle(pickle_path)
    # Read and write to file. 
    read_pickle_write_to_file(summary_fullpath, chr_list, fnames_dic, 
                              filter_events=True)
    
    print('Summary file saved in: %s' %summary_fullpath)
def main():
    parser = OptionParser()
    parser.add_option('-1',
                      '--group1_file',
                      dest='group_1_samplenames_file',
                      help='Filename containing group 1 sample names (PCa)')
    parser.add_option('-2',
                      '--group2_file',
                      dest='group_2_samplenames_file',
                      help='Filename containing group 2 sample names (NEPC)')
    parser.add_option('-d',
                      '--main_directory',
                      dest='main_dir',
                      help='Main directory containing miso output results.')
    parser.add_option('-o',
                      '--output_directory',
                      dest='output_dir',
                      help='Output directory of t-test results.')
    parser.add_option('-O',
                      '--output_filename',
                      dest='output_fname',
                      help='Output filename of the t-test results.')
    parser.add_option('-m', '--min_counts', type='int', dest='min_counts',
                      help='Minimum junction read counts to be considered '\
                      'into the t-test. Best practices says 10.')
    # Parse options
    (options, _) = parser.parse_args()
    # Define constants from options
    group_1_samplenames_file = options.group_1_samplenames_file
    group_2_samplenames_file = options.group_2_samplenames_file
    main_dir = options.main_dir
    output_dir = options.output_dir
    output_fname = options.output_fname
    min_counts = options.min_counts

    # Define constants
    summary_fullpath = os.path.join(output_dir, output_fname)

    # Get sample names from textfile.
    group_1_samples = get_sample_names_from_file(group_1_samplenames_file)
    group_2_samples = get_sample_names_from_file(group_2_samplenames_file)

    # Create list of chromosomes.
    chr_list = create_chromo_list(prefix='chr')
    # chr_list = ['chr11']

    # Subset list for only those that contain miso outputs.
    group_1_samples = check_if_empty_dir(main_dir, group_1_samples, chr_list)
    group_2_samples = check_if_empty_dir(main_dir, group_2_samples, chr_list)

    # Init fnames dic
    fnames_dic = {}

    # Run on multiple threads.
    q = Queue()
    process_list = []
    for chromo in chr_list:
        print('Sending %s job to core...' % chromo)
        p = Process(target=t_test_and_pickle,
                    args=(fnames_dic, chromo, output_dir, group_1_samples,
                          group_2_samples, main_dir, q, min_counts))
        process_list.append(p)
        p.start()
    for chromo in chr_list:
        fnames_dic.update(q.get())

    # Wait for all threads to be done before continuing.
    for p in process_list:
        p.join()

    print('Completed %s jobs.' % len(chr_list))

    # Write fnames_dic as pickle file.
    pickle_filename = ''.join([output_fname, '_filenames_dic.pickle'])
    fnames_savepath = os.path.join(output_dir, pickle_filename)
    print('Saving filenames_dic.pickle to %s' % fnames_savepath)
    pickle_path = save_dic_as_pickle(fnames_dic, fnames_savepath)

    # Write information from pickle to textfile.
    print('Writing information from pickle to textfile.')
    # Read pickle file to get fnames_dic
    fnames_dic = read_pickle(pickle_path)
    # Read and write to file.
    read_pickle_write_to_file(summary_fullpath,
                              chr_list,
                              fnames_dic,
                              filter_events=True)

    print('Summary file saved in: %s' % summary_fullpath)