diff --git a/workflow/main.nf b/workflow/main.nf index 25d89a051b306f6f65d9c81ea82ec815d988a49b..6dfe31af33183ffcf17a43e875c3e883bd237629 100644 --- a/workflow/main.nf +++ b/workflow/main.nf @@ -403,21 +403,26 @@ xcorDesign = xcorReads // Make Experiment design files to be read in for downstream analysis process defineExpDesignFiles { - publishDir "$baseDir/output/design", mode: 'copy' + publishDir "${outDir}/design", mode: 'copy' input: - - file xcorDesign + file xcorDesign output: - - file '*.tsv' into experimentObjs mode flatten + file '*.tsv' into experimentObjs mode flatten script: - - """ - python3 $baseDir/scripts/experiment_design.py -d $xcorDesign -a - """ + if (params.astrocyte == true) { + """ + module load python/3.6.1-2-anaconda + python3 ${baseDir}/scripts/experiment_design.py -d ${xcorDesign} + """ + } + else { + """ + python3 ${baseDir}/scripts/experiment_design.py -d ${xcorDesign} + """ + } } @@ -427,28 +432,41 @@ process poolAndPsuedoReads { tag "${experimentObjs.baseName}" - publishDir "$baseDir/output/design", mode: 'copy' + publishDir "${outDir}/design", mode: 'copy' input: - - file experimentObjs + file experimentObjs output: - - file '*.tsv' into experimentPoolObjs + file '*.tsv' into experimentPoolObjs script: - - if (pairedEnd) { - """ - python3 $baseDir/scripts/pool_and_psuedoreplicate.py -d $experimentObjs -p -a - """ - } - else { - """ - python3 $baseDir/scripts/pool_and_psuedoreplicate.py -d $experimentObjs -a - """ - } + if (params.astrocyte == true) { + if (pairedEnd) { + """ + module load python/3.6.1-2-anaconda + python3 ${baseDir}/scripts/pool_and_psuedoreplicate.py -d ${experimentObjs} -p + """ + } + else { + """ + module load python/3.6.1-2-anaconda + python3 ${baseDir}/scripts/pool_and_psuedoreplicate.py -d ${experimentObjs} + """ + } + } + else { + if (pairedEnd) { + """ + python3 ${baseDir}/scripts/pool_and_psuedoreplicate.py -d ${experimentObjs} -p + """ + } + else { + """ + python3 ${baseDir}/scripts/pool_and_psuedoreplicate.py -d ${experimentObjs} + """ + } + } } diff --git a/workflow/scripts/experiment_design.py b/workflow/scripts/experiment_design.py index 137528fc7a57dfa8d80da0d8c2fb43f93d773a2c..582920bab74d9170a913eaad5be6c3ca63b24489 100644 --- a/workflow/scripts/experiment_design.py +++ b/workflow/scripts/experiment_design.py @@ -30,33 +30,10 @@ def get_args(): help="The design file to make experiemnts (tsv format).", required=True) - parser.add_argument('-a', '--atac', - help="True/False if ATAC-seq or ChIP-seq.", - default=False, - action='store_true') - args = parser.parse_args() return args -def update_controls(design): - '''Update design file to append controls list.''' - - logger.info("Running control file update.") - - file_dict = design[['sample_id', 'tag_align']] \ - .set_index('sample_id').T.to_dict() - - design['control_tag_align'] = design['control_id'] \ - .apply(lambda x: file_dict[x]['tag_align']) - - logger.info("Removing rows that are there own control.") - - design = design[design['control_id'] != design['sample_id']] - - return design - - def make_experiment_design(design): '''Make design file by grouping for each experiment''' @@ -70,7 +47,6 @@ def make_experiment_design(design): def main(): args = get_args() design = args.design - atac = args.atac # Create a file handler handler = logging.FileHandler('experiment_generation.log') @@ -79,14 +55,8 @@ def main(): # Read files as dataframes design_df = pd.read_csv(design, sep='\t') - # Update design file for check_controls - if not atac: - new_design_df = update_controls(design_df) - else: - new_design_df = design_df - # write out experiment design files - make_experiment_design(new_design_df) + make_experiment_design(design_df) if __name__ == '__main__': diff --git a/workflow/scripts/pool_and_psuedoreplicate.py b/workflow/scripts/pool_and_psuedoreplicate.py index b5e52fed828fcb23eb7c1673bfc87d2402bbdf2c..eadb41d55768f5d01e5b63a06a9dc665170c6573 100644 --- a/workflow/scripts/pool_and_psuedoreplicate.py +++ b/workflow/scripts/pool_and_psuedoreplicate.py @@ -43,11 +43,6 @@ def get_args(): help="Cutoff ratio used for choosing controls.", default=1.2) - parser.add_argument('-a', '--atac', - help="True/False if ATAC-seq or ChIP-seq.", - default=False, - action='store_true') - args = parser.parse_args() return args @@ -146,7 +141,6 @@ def main(): paired = args.paired design = args.design cutoff_ratio = args.cutoff - atac = args.atac # Create a file handler handler = logging.FileHandler('experiment_generation.log')