diff --git a/Ref_Panel/1000G_AMR_0_01.csv b/Ref_Panel/1000G_AMR_0_01.csv index 73ba86a44757d3639b6fa506698ab60ce6adb4f8..8517b1b84654f4b2357560d32ca1e78526789b6f 100755 Binary files a/Ref_Panel/1000G_AMR_0_01.csv and b/Ref_Panel/1000G_AMR_0_01.csv differ diff --git a/Ref_Panel/1000G_EAS_0_01.csv b/Ref_Panel/1000G_EAS_0_01.csv old mode 100755 new mode 100644 index 83ab685c2be8a4bd213ad117ab991b01600d6f0a..fb62efacb3efe39254248a5285f9a696aeb40a4e Binary files a/Ref_Panel/1000G_EAS_0_01.csv and b/Ref_Panel/1000G_EAS_0_01.csv differ diff --git a/Ref_Panel/1000G_EUR_0_01.csv b/Ref_Panel/1000G_EUR_0_01.csv index fbe934a21450750c9ff6e2d5ae4f42208f1d02a2..44d786177f9c6b6ca56f0f79753640021af39bd1 100755 Binary files a/Ref_Panel/1000G_EUR_0_01.csv and b/Ref_Panel/1000G_EUR_0_01.csv differ diff --git a/Ref_Panel/1000G_SAS_0_01.csv b/Ref_Panel/1000G_SAS_0_01.csv index 9a1a90f163af7513e5b9295eec3754d263f750a5..52db85218eeb10bd8be57ca2584ff77a3af68527 100755 Binary files a/Ref_Panel/1000G_SAS_0_01.csv and b/Ref_Panel/1000G_SAS_0_01.csv differ diff --git a/jass_pipeline_v2.nf b/jass_pipeline_v2.nf index 4f59204f4498a3040343239dea5a0d809e044fdb..3001e340a18907d4075f888ffa9af637590af53d 100644 --- a/jass_pipeline_v2.nf +++ b/jass_pipeline_v2.nf @@ -9,16 +9,17 @@ nextflow.enable.dsl=2 /* Parameter to set if optional pipeline steps are performed */ params.compute_project=true // Compute JASS runs params.compute_LDSC_matrix=false // Infer the genetic covariance and residual covariance using the LDscore regression (Bulik-Sullivan, et al, 2015). The residual covariance is necessary to perform multi-trait GWAS (see julienne, et al 2021) If set to false, the residual covariance will be infered from Zscores -params.compute_imputation=true +params.compute_imputation=false /* Path of input data */ -params.meta_data = "${projectDir}"+"/input_files/Data_test_EAS_1_sumstat.csv" // file describing gwas summary statistic format +params.meta_data = "${projectDir}"+"/input_files/Data_test_EAS.csv" // file describing gwas summary statistic format params.gwas_folder = "${projectDir}" + "/test_data/hg38_EAS/" // //"/pasteur/zeus/projets/p02/GGS_JASS/1._DATA/Summary_stat_hg38/EAS/" params.region = Channel.fromPath("${projectDir}"+"/input_files/All_Regions_ALL_ensemble_1000G_hg38_EAS.bed") -params.ref_panel_WG = "${projectDir}"+"/Ref_Panel/1000G_EAS_0_01_chr22_21.csv"//"${projectDir}/Ref_Panel/1000G_SAS_0_01_chr22.csv" +params.ref_panel_WG = "${projectDir}"+"/Ref_Panel/1000G_EAS_0_01_chr22_21.csv" +//"${projectDir}/Ref_Panel/1000G_SAS_0_01_chr22.csv" params.ancestry="EAS" params.prefix="ALL_ensemble_1000G_hg38_EAS_chr" @@ -41,84 +42,111 @@ params.diagnostic_folder= "/pasteur/zeus/projets/p02/GGS_JASS/jass_pipeline_dev_ params.r2threshold = 0.6 params.eigenthreshold = 0.05 params.minimumld = 5 +params.ld_type = "plink" params.ld_folder = Channel.fromPath("/pasteur/zeus/projets/p02/GGS_WKD/DATA_1000G/Panels/Matrix_LD_RAISS/EAS/*.ld").collect() params.ref_panel = '/pasteur/zeus/projets/p02/GGS_WKD/DATA_1000G/Panels/EAS/' chr_channel = Channel.from(21..22) params.ref_chr_path= Channel.fromPath(params.ref_panel+"/ALL_ensemble_1000G_hg38_EAS_chr*.bim").collect() +params.perform_sanity_checks=true +params.perform_accuracy_checks=true -// /* Project group */ -// params.group = "${projectDir}/input_files/group.txt" -// group = file(params.group) - -// /* Generate channel from path */ -// Region_channel = Channel.fromPath(params.region) - -// extract_sample_size_script_channel = Channel.fromPath("${projectDir}/bin/extract_sample_size.py") -// generate_trait_pairs_channel = Channel.fromPath("${projectDir}/bin/generate_trait_pairs.py") -// parse_correlation_channel = Channel.fromPath("${projectDir}/bin/parse_correlation_results.py") +/* Project group */ +params.group = "${projectDir}/input_files/group.txt" +group = file(params.group) +extract_sample_size_script_channel = "${projectDir}/bin/extract_sample_size.py" +generate_trait_pairs_channel = "${projectDir}/bin/generate_trait_pairs.py" +parse_correlation_channel = "${projectDir}/bin/parse_correlation_results.py" /*****************************/ /* process inclusion */ /*****************************/ - include {Meta_data_GWAS; Clean_GWAS} from "./modules/Clean_GWAS" include {Impute_GWAS} from "./modules/RAISS_imputation" include {Perf_RAISS; Sanity_Checks_RAISS; Put_in_harmonized_folder; Put_in_imputed_folder} from "./modules/RAISS_sanity_checks" -// include {Munge_LDSC_data; Heritability_LDSC_data; Correlation_LDSC_data; Generate_trait_pair;Parsing_correlation_matrices} from "./modules/LDSC" -// include {Create_inittable_LDSC} from "./modules/JASS" +include {Munge_LDSC_data; Heritability_LDSC_data;Generate_trait_pair; Correlation_LDSC_data;Parsing_correlation_matrices} from "./modules/LDSC" //; Generate_trait_pair; +include {Create_inittable_LDSC; Create_inittable; Get_pheno_group; Create_project_data} from "./modules/JASS" /*******************************/ workflow{ /****** PREPROCESSING ******/ - Meta_data_GWAS() + Meta_data_GWAS(params.meta_data) Clean_GWAS(params.ref_panel_WG, Meta_data_GWAS.out.flatten()) - // /****** IMPUTATION ******/ - Impute_GWAS(Clean_GWAS.out.cleaned_gwas_chr_channel.flatten(), params.ref_chr_path.collect(), params.ld_folder.collect()) - - sanity_cleaned_in_folder = Put_in_harmonized_folder(Clean_GWAS.out.cleaned_gwas_chr_channel.collect()) - sanity_imputed_in_folder = Put_in_imputed_folder(Impute_GWAS.out.imputed_gwas_channel.collect()) - - Clean_GWAS.out.cleaned_gwas_chr_channel - .map {it.name.toString().split('_chr')[0]} - .unique() - .view() - - chr_channel - .max() - .map{it + 1} - .set {chr_max} - - chr_channel - .min() - .set {chr_min} - - Clean_GWAS.out.cleaned_gwas_chr_channel.flatten() - .map {(it.name.toString() =~ /(z_[0-9A-Za-z-]+_[0-9A-Za-z-]+)/ )[0][1]} - .view() - - Clean_GWAS.out.cleaned_gwas_chr_channel - .map {(it.name.toString() =~ /(z_[0-9A-Za-z-]+_[0-9A-Za-z-]+)/ )[0][1]} - .unique() - .set {trait_channel} - - - Sanity_Checks_RAISS(sanity_cleaned_in_folder.collect(), sanity_imputed_in_folder.collect(), trait_channel, chr_min, chr_max) - - //, chr_channel.min(), chr_channel.max()+1) - //Perf_RAISS(Clean_GWAS.out.cleaned_gwas_chr_channel.filter("*_chr22.txt").flatten(), params.ref_chr_path.collect(), params.ld_folder.collect()) - - // /****** Genetic variance ******/ - // Munge_LDSC_data(Clean_GWAS.out.cleaned_gwas_channel.flatten()) - // Heritability_LDSC_data(Munge_LDSC_data.out.ldsc_data_channel) - // Generate_trait_pair(generate_trait_pairs_channel, Munge_LDSC_data.out.ldsc_data_channel.collect()) - // Correlation_LDSC_data(Generate_trait_pair.out.flatten(), Munge_LDSC_data.out.ldsc_data_channel.collect()) - // Parsing_correlation_matrices(parse_correlation_channel, Correlation_LDSC_data.out.cor_log_channel, Heritability_LDSC_data.out.h2_log_channel) - - // /****** JASS Inittable *****/ - - // Create_inittable_LDSC(Impute_GWAS.out.imputed_gwas_channel, Clean_GWAS.out.cleaned_gwas_channel, Parsing_correlation_matrices.out.cov_H0_matrice_channel, Parsing_correlation_matrices.out.cov_gen_matrice_channel, params.region) - + /******** IMPUTATION *******/ + if(params.compute_imputation){ + + Impute_GWAS(Clean_GWAS.out.cleaned_gwas_chr_channel.flatten(), params.ref_chr_path.collect(), params.ld_folder.collect()) + + sanity_cleaned_in_folder = Put_in_harmonized_folder(Clean_GWAS.out.cleaned_gwas_chr_channel.collect()) + sanity_imputed_in_folder = Put_in_imputed_folder(Impute_GWAS.out.imputed_gwas_channel.collect()) + + chr_channel + .max() + .map{it + 1} + .set {chr_max} + + chr_channel + .min() + .set {chr_min} + + Clean_GWAS.out.cleaned_gwas_chr_channel + .map {(it.name.toString() =~ /(z_[0-9A-Za-z-]+_[0-9A-Za-z-]+)/ )[0][1]} + .unique() + .set {trait_channel} + + Clean_GWAS.out.cleaned_gwas_chr_channel.flatten().filter( ~/.*z.*chr22\.txt/ ).view() + if(params.perform_accuracy_checks){ + Perf_RAISS(Clean_GWAS.out.cleaned_gwas_chr_channel.flatten().filter( ~/.*z.*_chr22\.txt/ ), params.ref_chr_path.collect(), params.ld_folder.collect()) + //Perf_RAISS(Clean_GWAS.out.cleaned_gwas_chr_channel.collect(), params.ref_chr_path.collect(), params.ld_folder.collect()) + } + + if(params.perform_sanity_checks){ + Sanity_Checks_RAISS(sanity_cleaned_in_folder.collect(), sanity_imputed_in_folder.collect(), trait_channel, chr_min, chr_max) + } + } + + // /****** Genetic variance and corresponding inittable ******/ + + if(params.compute_LDSC_matrix){ + Munge_LDSC_data(Clean_GWAS.out.cleaned_gwas_channel.flatten()) + Heritability_LDSC_data(Munge_LDSC_data.out.ldsc_data_channel) + Generate_trait_pair(generate_trait_pairs_channel, Munge_LDSC_data.out.ldsc_data_channel.collect()) + Correlation_LDSC_data(Generate_trait_pair.out.flatten(), Munge_LDSC_data.out.ldsc_data_channel.collect()) + Parsing_correlation_matrices(parse_correlation_channel, Correlation_LDSC_data.out.cor_log_channel, Heritability_LDSC_data.out.h2_log_channel) + + // /****** JASS Inittable with LDSC covariance matrix (preferred method)*****/ + if(params.compute_imputation){ + Create_inittable_LDSC(Impute_GWAS.out.imputed_gwas_channel.collect(), Clean_GWAS.out.cleaned_gwas_channel.collect(), Parsing_correlation_matrices.out.cov_H0_matrice_channel, Parsing_correlation_matrices.out.cov_gen_matrice_channel, params.region) + } + else{ + Create_inittable_LDSC(Clean_GWAS.out.cleaned_gwas_chr_channel.collect(), Clean_GWAS.out.cleaned_gwas_channel.collect(), Parsing_correlation_matrices.out.cov_H0_matrice_channel, Parsing_correlation_matrices.out.cov_gen_matrice_channel, params.region) + } + + /*Compute multi-trait GWAS*/ + if(params.compute_project){ + Get_pheno_group(params.group) + Create_project_data(Get_pheno_group.out.pheno_group, Create_inittable_LDSC.out.init_table) + //Create_project_data.out.result.view() + } + } + else { + if(params.compute_imputation){ + Create_inittable(Impute_GWAS.out.imputed_gwas_channel.collect(), Clean_GWAS.out.cleaned_gwas_channel.collect(), params.region) + } + else{ + Create_inittable(Clean_GWAS.out.cleaned_gwas_chr_channel.collect(), Clean_GWAS.out.cleaned_gwas_channel.collect(), params.region) + } + + + + /*Compute multi-trait GWAS*/ + if(params.compute_project){ + Get_pheno_group(params.group) + Get_pheno_group.out.pheno_group.flatten().view() + Create_project_data(Get_pheno_group.out.pheno_group.collect(), Create_inittable.out.init_table_channel_no_ldsc) + //Create_project_data.out.result.view() + } + } } \ No newline at end of file diff --git a/modules/Clean_GWAS.nf b/modules/Clean_GWAS.nf index ceee03e6de474351cb28dbfce75edc4855587145..962ef2c3fb149b4fa2ee334ad387e1c7c03b1de7 100644 --- a/modules/Clean_GWAS.nf +++ b/modules/Clean_GWAS.nf @@ -1,15 +1,17 @@ process Meta_data_GWAS{ + input: + path pheno_list output: path "meta_data_chk*.csv" """ - d=`wc -l ${params.meta_data}` + d=`wc -l ${pheno_list}` e=`echo \$d | cut -d ' ' -f 1` for ((i = 2; i <= \$e; i++)); do - head -n1 ${params.meta_data} > "meta_data_chk\$i.csv" - head -n \$i ${params.meta_data} | tail -n 1 >> "meta_data_chk\$i.csv" + head -n1 ${pheno_list} > "meta_data_chk\$i.csv" + head -n \$i ${pheno_list} | tail -n 1 >> "meta_data_chk\$i.csv" done """ } diff --git a/modules/JASS.nf b/modules/JASS.nf index 5aa566685f49eedfb2d773d3f0b1bd09aa7d5ca7..1ac35dedc9fe60d0602a64a3c89d11164a3d47b6 100644 --- a/modules/JASS.nf +++ b/modules/JASS.nf @@ -1,19 +1,14 @@ process Create_inittable_LDSC { publishDir "${params.output_folder}/init_table/", pattern: "*.hdf5", mode: 'copy' - memory {16.GB * task.attempt} - time {24.h * task.attempt} - queue 'dedicated,common,ggs' input: - path cleaned_gwas_chr //from imputed_gwas_channel.mix(not_imputed_gwas_channel).unique().collect() - path cleaned_gwas //from cleaned_gwas_channel2.collect() - path Covariance_H0 //from cov_H0_matrice_channel - path Covariance_gen //from cov_gen_matrice_channel - path Regions //from Region_channel + path cleaned_gwas_chr + path cleaned_gwas + path Covariance_H0 + path Covariance_gen + path Regions output: - path "*.hdf5", emit: init_table_channel - when: - params.compute_LDSC_matrix + path "*.hdf5", emit: init_table """ gwas_list_str=`echo ${cleaned_gwas} | sed s'/.txt//'g` @@ -26,76 +21,60 @@ process Create_inittable_LDSC { """ } +process Create_inittable { + publishDir "${params.output_folder}/init_table/", pattern: "*.hdf5", mode: 'copy' + input: + path cleaned_gwas_chr + path cleaned_gwas + path Regions + output: + path "*.hdf5", emit: init_table_channel_no_ldsc + """ + gwas_list_str=`echo ${cleaned_gwas} | sed s'/.txt//'g` + echo \$gwas_list_str + date_init=\$(date +"%m_%d_%Y-%H:%M") -// process Create_inittable { - -// publishDir "${params.output_folder}/init_table/", pattern: "*.hdf5", mode: 'copy' -// memory {16.GB * task.attempt} -// time {24.h * task.attempt} - -// input: -// path cleaned_gwas_chr from imputed_gwas_channel2.mix(not_imputed_gwas_channel2).unique().collect() -// path cleaned_gwas from cleaned_gwas_channel3.collect() -// path Regions from Region_channel2 -// output: -// path "*.hdf5", emit: init_table_channel_no_ldsc -// when: -// !params.compute_LDSC_matrix -// """ - -// gwas_list_str=`echo ${cleaned_gwas} | sed s'/.txt//'g` -// echo \$gwas_list_str -// date_init=\$(date +"%m_%d_%Y-%H:%M") - -// init_name="inittable_NO_LDSC_\$date_init.hdf5" -// jass create-inittable --input-data-path "./*.txt" --regions-map-path ${Regions} --description-file-path ${params.meta_data} --init-table-path \$init_name - -// """ -// } - - -// // -// // Generate one list of phenotype -// // -// process get_pheno_group { -// input: -// path 'group.txt' from group -// output: -// path "pheno_group_*" into pheno_group_channel -// when: -// params.compute_project -// """ -// split -l 1 group.txt pheno_group_ -// """ -// } - -// process Create_project_data { -// publishDir "${projectDir}/worktable/", pattern:"worktable_*.hdf5", mode: 'move' -// publishDir "${projectDir}/quadrant/", pattern:"quadrant_*.png", mode: 'move' -// publishDir "${projectDir}/manhattan/", pattern:"manhattan_*.png", mode: 'move' + init_name="inittable_NO_LDSC_\$date_init.hdf5" + jass create-inittable --input-data-path "./*.txt" --regions-map-path ${Regions} --description-file-path ${params.meta_data} --init-table-path \$init_name -// input: -// path pheno_group from pheno_group_channel.collect() -// path init_table from init_table_channel.mix(init_table_channel_no_ldsc) + """ +} -// output: -// path "worktable*.hdf5", emit: worktable_channel -// path "*.png", emit: plot_channel -// stdout result +// +// Generate one list of phenotype +// +process Get_pheno_group { + input: + path group + output: + path "pheno_group_*", emit: pheno_group + """ + split -l 1 ${group} pheno_group_ + """ +} -// when: -// params.compute_project -// """ -// for pheno_line in ${pheno_group} -// do -// echo \$pheno_line -// group_tag="\$(cat \$pheno_line | cut -d';' -f1)" -// pheno_list="\$(cat \$pheno_line | cut -d';' -f2)" +process Create_project_data { + publishDir "${params.output_folder}/worktable/", pattern:"worktable_*.hdf5", mode: 'copy' + publishDir "${params.output_folder}/quadrant/", pattern:"quadrant_*.png", mode: 'copy' + publishDir "${params.output_folder}/manhattan/", pattern:"manhattan_*.png", mode: 'copy' + input: + path pheno_group + path init_table + output: + path "worktable_*.hdf5", emit: worktables + path "quadrant_*.png", emit: quadrant + path "manhattan_*.png", emit: manhattan + """ + for pheno_line in ${pheno_group} + do + echo \$pheno_line + group_tag="\$(cat \$pheno_line | cut -d';' -f1)" + pheno_list="\$(cat \$pheno_line | cut -d';' -f2)" -// echo \$group_tag -// echo \$pheno_list + echo \$group_tag + echo \$pheno_list -// jass create-project-data --phenotypes \$pheno_list --init-table-path ./${init_table} --worktable-path ./worktable_bis_\$group_tag.hdf5 --manhattan-plot-path ./manhattan_\$group_tag.png --quadrant-plot-path ./quadrant_\$group_tag.png -// done -// """ -// } \ No newline at end of file + jass create-project-data --phenotypes \$pheno_list --init-table-path ./${init_table} --worktable-path ./worktable_bis_\$group_tag.hdf5 --manhattan-plot-path ./manhattan_\$group_tag.png --quadrant-plot-path ./quadrant_\$group_tag.png + done + """ +} \ No newline at end of file diff --git a/modules/LDSC.nf b/modules/LDSC.nf index 3db538f89df3696fccc876bd4620bb0fc1c42b25..d690536bdd0a8a6eb5109ba28ec69ddd681042b9 100644 --- a/modules/LDSC.nf +++ b/modules/LDSC.nf @@ -2,9 +2,7 @@ process Munge_LDSC_data { publishDir "${params.output_folder}", pattern: "ldsc_data/data_*.sumstats.gz", mode: 'copy' publishDir "${params.output_folder}", pattern: "ldsc_data/*.log", mode: 'copy' - time = {1.h * task.attempt} - maxRetries = 4 - queue 'dedicated,common,ggs' + input: path clean_gwas output: @@ -27,31 +25,30 @@ process Munge_LDSC_data { """ } -process Generate_trait_pair { - time '1h' - queue 'dedicated,common,ggs' +process Heritability_LDSC_data { + + publishDir "${params.output_folder}/h2_data/", pattern: "*.log", mode: 'copy' input: - path generate_trait_pairs_script path ldsc_data output: - path "pairs_chunk_*.txt",emit: combi_channel + path "*.log", emit: h2_log_channel """ - python3 ${generate_trait_pairs_script} + my_trait=\$(ls ${ldsc_data} | cut -d "_" -f2,3 | cut -d '.' -f1) + ldsc.py --h2 ${ldsc_data} --ref-ld-chr ${params.LD_SCORE_folder}${params.prefix}@ --w-ld-chr ${params.LD_SCORE_folder}${params.prefix}@ --out \${my_trait} """ } -process Heritability_LDSC_data { - memory {8.GB * task.attempt} - time {24.h * task.attempt} + +process Generate_trait_pair { + time '1h' queue 'dedicated,common,ggs' - publishDir "${params.output_folder}/h2_data/", pattern: "*.log", mode: 'copy' input: + path generate_trait_pairs_script path ldsc_data output: - path "*.log", emit: h2_log_channel + path "pairs_chunk_*.txt",emit: combi_channel """ - my_trait=\$(ls ${ldsc_data} | cut -d "_" -f2,3 | cut -d '.' -f1) - ldsc.py --h2 ${ldsc_data} --ref-ld-chr ${params.LD_SCORE_folder}${params.prefix}@ --w-ld-chr ${params.LD_SCORE_folder}${params.prefix}@ --out \${my_trait} + python3 ${generate_trait_pairs_script} """ } @@ -59,7 +56,7 @@ process Heritability_LDSC_data { process Correlation_LDSC_data { memory {8.GB * task.attempt} time {24.h * task.attempt} - queue 'dedicated,common,ggs' + publishDir "${params.output_folder}/cor_data/", pattern: "*.log", mode: 'copy' input: path trait_pair diff --git a/modules/RAISS_sanity_checks.nf b/modules/RAISS_sanity_checks.nf index 20319e6de8a1d6bc8d35cf84c071e601b409555a..e08dc1016044909168dded160e5be72acfe095b5 100755 --- a/modules/RAISS_sanity_checks.nf +++ b/modules/RAISS_sanity_checks.nf @@ -1,14 +1,14 @@ process Perf_RAISS { publishDir "${params.output_folder}", pattern: "imputed_GWAS/*.txt", mode: 'copy' - publishDir "${params.output_folder}/RAISS_Performance_reports/", pattern: "Perf_*", mode: 'copy' + publishDir "${params.output_folder}", pattern: "raiss_report/perf_report_*", mode: 'copy' input: - file gwas_files - file ref_file - file ld_file + path gwas_files + path ref_file + path ld_file script: """ - mkdir -p imputed_gnomad + mkdir -p imputed_GWAS mkdir -p masked_zscore mkdir -p raiss_report chrom=\$(echo ${gwas_files} | cut -d '_' -f4 | cut -d "." -f1) @@ -17,7 +17,7 @@ process Perf_RAISS { echo \$chrom echo \$study - raiss --ld-folder ./ --ref-folder ./ --gwas \$study --chrom chr22 --ld-type scipy performance-grid-search --harmonized-folder ./ --masked-folder ./masked_zscore/ --imputed-folder ./imputed_gnomad/ --output-path ./raiss_report --eigen-ratio-grid '[${params.eigenthreshold}]' --ld-threshold-grid '[${params.r2threshold}]' --n-cpu 8 + raiss --ld-folder ./ --ref-folder ./ --gwas \$study --chrom chr22 --ld-type ${params.ld_type} --ref-panel-prefix ${params.prefix_Impute_GWAS} --ref-panel-suffix ${params.suffix}.bim performance-grid-search --harmonized-folder ./ --masked-folder ./masked_zscore/ --imputed-folder ./imputed_GWAS/ --output-path ./raiss_report --eigen-ratio-grid '[${params.eigenthreshold}]' --ld-threshold-grid '[${params.r2threshold}]' --n-cpu 1 """ } diff --git a/nextflow_slurm.config b/nextflow_slurm.config index eefb5b0f12c3e44b454a1548c3e7a69c9892efd2..47c22e0f789493666e792675c4896ca12e384dcc 100644 --- a/nextflow_slurm.config +++ b/nextflow_slurm.config @@ -67,24 +67,38 @@ process{ cpus=1 } + withName: 'Perf_RAISS' { + memory={8.GB * task.attempt} + time={72.h * task.attempt} + maxRetries=4 + queue='dedicated,ggs,common' + cpus=1 + } + withName: 'Munge_LDSC_data' { container='ldsc_1.0.1--py_0.sif' cpus=1 + time={1.h * task.attempt} + maxRetries=4 + queue='dedicated,common,ggs' } withName: 'Generate_trait_pair' { - container='jass_preprocessing_2.2--pyhdfd78af_0.sif' - cpus=1 + container='jass_preprocessing_2.2--pyhdfd78af_0.sif' + cpus=1 } withName: 'Heritability_LDSC_data' { - container="ldsc_1.0.1--py_0.sif" - cpus=1 + memory={8.GB * task.attempt} + time={24.h * task.attempt} + queue='dedicated,common,ggs' + container="ldsc_1.0.1--py_0.sif" + cpus=1 } withName: 'Correlation_LDSC_data' { container="ldsc_1.0.1--py_0.sif" - cpus=1 + cpus=1 } withName: 'Parsing_correlation_matrices' { @@ -93,11 +107,15 @@ process{ } withName: 'Create_inittable_LDSC' { - cpus=1 + memory={16.GB * task.attempt} + time={24.h * task.attempt} + cpus=1 } withName: 'Create_inittable' { - cpus=1 + memory={16.GB * task.attempt} + time={24.h * task.attempt} + cpus=1 } withName: 'get_pheno_group' {