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
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')
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"