if __name__ == '__main__':

    """ This script creates a file which needs to be filled with information required for a methylSeq project.
    - It takes one argument, the 'outfile', which is the name of the output file. The default is 'analysis_info.txt'""" 

    parser=argparse.ArgumentParser(prog='create_sampleNames.py', description='Creates sample_names.txt with sample names')
    parser.add_argument('-v','--version',action='version',version='%(prog)s-'+__version__)
    parser.add_argument('--analysis_info_file', help='Text file with details of the analysis. Default=analysis_info.txt', default='analysis_info.txt')
    parser.add_argument('--in_dir', help='Directory saving the fastq files', default='bcl2fastq_output')
    parser.add_argument('--out_file', help='Output dir to save sample_names.txt', default='./sample_names.txt')
    args=parser.parse_args()

    # Collect info from analysis_info_file
    if args.in_dir == 'bcl2fastq_output': 
        ai=functions.read_analysis_info_file(args.analysis_info_file)
        allFiles=functions.get_filepaths(ai[args.in_dir])
        fastq=[allFiles[y] for y, x in enumerate(allFiles) if re.findall("fastq.gz", x)]
        fastq=[fastq[y] for y,x in enumerate(fastq) if not re.findall('Undetermined', x)]
    elif args.in_dir != 'bcl2fastq_output':
        allFiles=os.listdir(args.in_dir)
        fastq=[allFiles[y] for y, x in enumerate(allFiles) if re.findall("fastq.gz", x)]
    
    fastq=[re.sub('.*/','', f) for f in fastq]
    fastq=[re.sub('_R[0-9_].*','',f) for f in fastq]
    fastq=list(set(fastq))
    #fastq=[f.replace('.fastq.gz', '') for f in fastq]
    #print fastq
    #fastq=[f.replace('.','') for f in fastq]
    #print fastq 
    
Example #2
0
    params_file = args.analysis_info_file
    path = functions.read_parameters_file(params_file)['Working directory']
    os.chdir(path)

    # Read sample names text file
    sampleNames = functions.read_sample_names()

    # Set input and output directories if not 'rawReads/'
    in_dir = args.in_dir
    out_dir = args.out_dir
    out_dir_plots = args.out_dir_plots
    readType = args.readType
    suffix_name = args.suffix_name

    files = functions.get_filepaths(in_dir)
    files = [
        files[y] for y, x in enumerate(files)
        if re.findall("fastqc_data.txt", x)
    ]
    Parallel(n_jobs=8)(delayed(tables)(i) for i in files)

    functions.make_sure_path_exists(out_dir_plots)
    Parallel(n_jobs=8)(delayed(plots)(i) for i in sampleNames)

    os.system('Rscript /usr/local/bin/fastqc_plots_all_part2.R ' + in_dir +
              ' ' + 'sample_names.txt' + ' ' + readType + ' ' + out_dir_plots +
              ' ' + suffix_name)

#os.system('ls rawReads/*/*fastqc  |  grep -v trimmed  | grep ":"  | sed \'s/://g\' > sample_names2.txt')
#os.system('fastqc_summary.py ./sample_names2.txt ./summary_fastqc.txt')
Example #3
0
    os.chdir(ai['project_location'])

    # Read sample names
    sample_names_file = args.sample_names_file
    sampleNames = functions.read_sample_names(sample_names_file)
        
    # Create rawReads folder
    # Check if rawReads exists
    project_location=ai['project_location']
    folders = os.listdir(project_location)
    readsFiles = [folders[i] for i, x in enumerate(folders) if re.findall('rawReads',x)]
    # print readsFiles    

    # Collect fastq files analysis_info_file
    if args.in_dir == 'bcl2fastq_output':
        allFiles=functions.get_filepaths(ai['project_location'] + '/' + ai[args.in_dir])
        fastq=[allFiles[y] for y, x in enumerate(allFiles) if re.findall("fastq.gz", x)]
        fastq=[fastq[y] for y,x in enumerate(fastq) if not re.findall('Undetermined', x)]
    elif args.in_dir != 'bcl2fastq_output':
        allFiles=os.listdir(args.in_dir)
        fastq=[allFiles[y] for y, x in enumerate(allFiles) if re.findall("fastq.gz", x)]
        fastq=[args.in_dir + x for x in fastq]
    # print fastq
    
    # Move reads
    if not readsFiles:
        functions.make_sure_path_exists('rawReads')
        sampleDir = []
        for sample in sampleNames:
            reads = [fastq[i] for i,x in enumerate(fastq) if re.findall(sample,x)]
            if sample not in sampleDir:
    
    # Get wd
    path=os.getcwd()

    #Ncores
    ncores=int(args.ncores)

    # Read sample names text file
    ai=functions.read_analysis_info_file(args.analysis_info_file)
    sample_names_file=args.sample_names_file
    sampleNames = functions.read_sample_names(sample_names_file)

    # Set input and output directories if not 'rawReads/'
    in_dir=path + '/' + args.in_dir
    out_dir_report=path + '/' + args.out_dir_report
    readType=ai['readType']
    suffix_name=args.suffix_name
    
    # Create tables
    files=functions.get_filepaths(in_dir)
    files = [files[y] for y, x in enumerate(files) if re.findall("fastqc_data.txt", x)] 
    Parallel(n_jobs=8)(delayed(tables)(i) for i in files)
    print "Got data from fastqc output... \n"    

    # Create plots
    functions.make_sure_path_exists(out_dir_report)
    Parallel(n_jobs=8)(delayed(plots)(i) for i in sampleNames)
    print "Made plots per sample... \n"
    os.system('Rscript bin/create_fastqcPlots_allSamples.R ' + in_dir + ' ' + sample_names_file + ' ' + readType + ' ' + out_dir_report + ' ' + suffix_name + ' ' + args.plot_device)
    print "Made plots all samples... \n"