diff --git a/tests/main.nf.test b/tests/main.nf.test index e4a932d..1007c3b 100644 --- a/tests/main.nf.test +++ b/tests/main.nf.test @@ -29,11 +29,49 @@ nextflow_pipeline { regenie_gene_vc_mac_thr = 10 regenie_gene_build_mask = 'sum' rsids_filename = "$projectDir/tests/input/pipeline/rsids.tsv.gz" - } + outdir = "$outputDir" + } } then { assert workflow.success + assert snapshot(new File("$outputDir/results/Y1.regenie.gz"), new File("$outputDir/results/Y2.regenie.gz") , workflow.trace).match() + } + +} + + test("Should fail since no phenotype is specified") { + + when { + + params { + project = 'test-gene-based-test' + genotypes_build = 'hg19' + genotypes_prediction = "$projectDir/tests/input/pipeline/example.{bim,bed,fam}" + genotypes_association = "$projectDir/tests/input/pipeline/example.{bim,bed,fam}" + genotypes_association_format = 'bed' + phenotypes_filename = "$projectDir/tests/input/pipeline/phenotype_bin.txt" + phenotypes_binary_trait = true + phenotypes_columns = '' + covariates_filename = "$projectDir/tests/input/pipeline/covariates.txt" + covariates_columns = 'V1,V2,V3' + regenie_run_gene_based_tests = true + regenie_gene_anno = "$projectDir/tests/input/gene_based_tests/example.annotation" + regenie_gene_setlist = "$projectDir/tests/input/gene_based_tests/example.setlist" + regenie_gene_masks = "$projectDir/tests/input/gene_based_tests/example.masks" + regenie_gene_test = 'skat' + regenie_gene_aaf = 0.01 + regenie_gene_vc_max_aaf = 100 + regenie_gene_vc_mac_thr = 10 + regenie_gene_build_mask = 'sum' + rsids_filename = "$projectDir/tests/input/pipeline/rsids.tsv.gz" + outdir = "$outputDir" + } + } + + then { + assert workflow.fail + assert workflow.out.my_channel.size() == 0 } } @@ -64,11 +102,13 @@ test("Should execute gene-based test pipeline") { regenie_gene_build_mask = 'max' regenie_write_bed_masks = true rsids_filename = "$projectDir/tests/input/pipeline/rsids.tsv.gz" + outdir = "$outputDir" } } then { assert workflow.success + assert snapshot(new File("$outputDir/results/Y1.regenie.gz"), new File("$outputDir/results/Y2.regenie.gz") , workflow.trace).match() } } @@ -89,11 +129,13 @@ test("Should execute GWAS with pruning pipeline") { regenie_test = 'additive' prune_enabled = true rsids_filename = "$projectDir/tests/input/pipeline/rsids.tsv.gz" + outdir = "$outputDir" } } then { assert workflow.success + assert snapshot(new File("$outputDir/results/Y1.regenie.gz"), new File("$outputDir/results/Y2.regenie.gz") , workflow.trace).match() } } @@ -114,11 +156,13 @@ test("Should execute GWAS with additive test and multiple chromosomes") { regenie_test = 'additive' rsids_filename = "$projectDir/tests/input/pipeline/rsids.tsv.gz" annotation_min_log10p = 2 + outdir = "$outputDir" } } then { assert workflow.success + assert snapshot(new File("$outputDir/results/Y1.regenie.gz"), new File("$outputDir/results/Y2.regenie.gz") , workflow.trace).match() } } @@ -140,11 +184,13 @@ test("Should execute liftover and GWAS pipeline with array results") { regenie_test = 'additive' rsids_filename = "$projectDir/tests/input/pipeline/rsids.tsv.gz" annotation_min_log10p = 1 + outdir = "$outputDir" } } then { assert workflow.success + assert snapshot(new File("$outputDir/results/Y1.regenie.gz"), new File("$outputDir/results/Y2.regenie.gz") , workflow.trace).match() } } @@ -166,11 +212,13 @@ test("Should execute liftover and GWAS pipeline") { regenie_test = 'additive' rsids_filename = "$projectDir/tests/input/pipeline/rsids.tsv.gz" annotation_min_log10p = 1 + outdir = "$outputDir" } } then { assert workflow.success + assert snapshot(new File("$outputDir/results/Y1.regenie.gz"), new File("$outputDir/results/Y2.regenie.gz") , workflow.trace).match() } } @@ -191,11 +239,13 @@ test("Should execute GWAS with additive test and RSIDs") { regenie_test = 'additive' rsids_filename = "$projectDir/tests/input/pipeline/rsids.tsv.gz" annotation_min_log10p = 2 + outdir = "$outputDir" } } then { assert workflow.success + assert snapshot(new File("$outputDir/results/Y1.regenie.gz"), new File("$outputDir/results/Y2.regenie.gz") , workflow.trace).match() } } @@ -217,14 +267,13 @@ test("Should execute GWAS with additive test and RSIDs") { outdir = "$outputDir" rsids_filename = "/$projectDir/tests/input/pipeline/rsids.tsv.gz" annotation_min_log10p = 2 + outdir = "$outputDir" } } then { assert snapshot(new File("$outputDir/results/Y1.regenie.gz"), workflow.trace).match() assert workflow.success - assert workflow.trace.tasks().size() == 15 - assert new File("$outputDir/results/Y1.regenie.gz").exists() } } @@ -246,11 +295,13 @@ test("Should execute GWAS with additive test and RSIDs") { outdir = "$outputDir" rsids_filename = "$projectDir/tests/input/pipeline/rsids.tsv.gz" annotation_min_log10p = 2 + outdir = "$outputDir" } } then { assert workflow.success + assert snapshot(new File("$outputDir/results/Y1.regenie.gz"), new File("$outputDir/results/Y2.regenie.gz") , workflow.trace).match() } } @@ -269,10 +320,12 @@ test("Should execute GWAS with binary trait (no Firth approximation)") { regenie_test = 'additive' regenie_firth_approx = false rsids_filename = "$projectDir/tests/input/pipeline/rsids.tsv.gz" + outdir = "$outputDir" } } then { assert workflow.success + assert snapshot(new File("$outputDir/results/Y1.regenie.gz"), new File("$outputDir/results/Y2.regenie.gz") , workflow.trace).match() } } @@ -290,10 +343,12 @@ test("Should execute GWAS with binary trait (no Firth)") { regenie_test = 'additive' regenie_firth = false rsids_filename = "$projectDir/tests/input/pipeline/rsids.tsv.gz" + outdir = "$outputDir" } } then { assert workflow.success + assert snapshot(new File("$outputDir/results/Y1.regenie.gz"), new File("$outputDir/results/Y2.regenie.gz") , workflow.trace).match() } } @@ -310,10 +365,12 @@ test("Should execute GWAS with binary trait (with missing data)") { phenotypes_binary_trait = true regenie_test = 'additive' rsids_filename = "$projectDir/tests/input/pipeline/rsids.tsv.gz" + outdir = "$outputDir" } } then { assert workflow.success + assert snapshot(new File("$outputDir/results/Y1.regenie.gz"), new File("$outputDir/results/Y2.regenie.gz") , workflow.trace).match() } } @@ -332,10 +389,12 @@ test("Should execute GWAS with additive test on 2 chromosomes") { regenie_test = 'additive' rsids_filename = "$projectDir/tests/input/pipeline/rsids.tsv.gz" annotation_min_log10p = 2 + outdir = "$outputDir" } } then { assert workflow.success + assert snapshot(new File("$outputDir/results/Y1.regenie.gz"), new File("$outputDir/results/Y2.regenie.gz") , workflow.trace).match() } } @@ -357,10 +416,12 @@ test("Should execute GWAS with header in phenotype file with chunking") { phenotypes_binary_trait = false regenie_test = 'additive' rsids_filename = "$projectDir/tests/input/pipeline/rsids.tsv.gz" + outdir = "$outputDir" } } then { assert workflow.success + assert snapshot(new File("$outputDir/results/PHENO1.regenie.gz"), new File("$outputDir/results/PHENO2.regenie.gz") , workflow.trace).match() } } @@ -380,10 +441,12 @@ test("Should execute GWAS with header in phenotype file (custom batch size)") { phenotypes_binary_trait = false regenie_test = 'additive' rsids_filename = "$projectDir/tests/input/pipeline/rsids.tsv.gz" + outdir = "$outputDir" } } then { assert workflow.success + assert snapshot(new File("$outputDir/results/Y1.regenie.gz"), new File("$outputDir/results/Y2.regenie.gz") , workflow.trace).match() } } @@ -401,10 +464,12 @@ test("Should execute GWAS with header in phenotype file (default batch size)") { phenotypes_binary_trait = false regenie_test = 'additive' rsids_filename = "$projectDir/tests/input/pipeline/rsids.tsv.gz" + outdir = "$outputDir" } } then { assert workflow.success + assert snapshot(new File("$outputDir/results/PHENO1.regenie.gz"), new File("$outputDir/results/PHENO2.regenie.gz") , workflow.trace).match() } } @@ -424,10 +489,12 @@ test("Should execute GWAS with condition file") { regenie_test = 'additive' regenie_condition_list = "$projectDir/tests/input/pipeline/condition_snps.txt" rsids_filename = "$projectDir/tests/input/pipeline/rsids.tsv.gz" + outdir = "$outputDir" } } then { assert workflow.success + assert snapshot(new File("$outputDir/results/Y1.regenie.gz"), new File("$outputDir/results/Y2.regenie.gz") , workflow.trace).match() } } @@ -446,10 +513,12 @@ test("Should execute GWAS with covariates file") { covariates_columns = 'V1,V2' regenie_test = 'additive' rsids_filename = "$projectDir/tests/input/pipeline/rsids.tsv.gz" + outdir = "$outputDir" } } then { assert workflow.success + assert snapshot(new File("$outputDir/results/Y1.regenie.gz"), new File("$outputDir/results/Y2.regenie.gz") , workflow.trace).match() } } @@ -467,10 +536,12 @@ test("Should execute GWAS with deletion of missing phenotype data") { phenotypes_delete_missings = true regenie_test = 'additive' rsids_filename = "$projectDir/tests/input/pipeline/rsids.tsv.gz" + outdir = "$outputDir" } } then { assert workflow.success + assert snapshot(new File("$outputDir/results/Y1.regenie.gz"), new File("$outputDir/results/Y2.regenie.gz") , workflow.trace).match() } } @@ -487,10 +558,12 @@ test("Should execute GWAS with dominant test") { phenotypes_columns = 'Y1,Y2' regenie_test = 'dominant' rsids_filename = "$projectDir/tests/input/pipeline/rsids.tsv.gz" + outdir = "$outputDir" } } then { assert workflow.success + assert snapshot(new File("$outputDir/results/Y1.regenie.gz"), new File("$outputDir/results/Y2.regenie.gz") , workflow.trace).match() } } @@ -508,10 +581,12 @@ test("Should execute GWAS with force step 1") { regenie_test = 'additive' regenie_force_step1 = true rsids_filename = "$projectDir/tests/input/pipeline/rsids.tsv.gz" + outdir = "$outputDir" } } then { assert workflow.success + assert snapshot(new File("$outputDir/results/Y1.regenie.gz"), new File("$outputDir/results/Y2.regenie.gz") , workflow.trace).match() } } @@ -528,10 +603,12 @@ test("Should execute GWAS with header in phenotype file") { phenotypes_binary_trait = false regenie_test = 'additive' rsids_filename = "$projectDir/tests/input/pipeline/rsids.tsv.gz" + outdir = "$outputDir" } } then { assert workflow.success + assert snapshot(new File("$outputDir/results/PHENO1.regenie.gz"), new File("$outputDir/results/PHENO2.regenie.gz") , workflow.trace).match() } } @@ -548,10 +625,12 @@ test("Should execute GWAS with liftover to hg38 and annotation") { phenotypes_columns = 'Y1,Y2' regenie_test = 'additive' rsids_filename = "$projectDir/tests/input/pipeline/rsids.tsv.gz" + outdir = "$outputDir" } } then { assert workflow.success + assert snapshot(new File("$outputDir/results/Y1.regenie.gz"), new File("$outputDir/results/Y2.regenie.gz") , workflow.trace).match() } } @@ -572,10 +651,12 @@ test("Should execute GWAS with interaction tests") { regenie_test = 'additive' regenie_interaction_snp = '100' rsids_filename = "$projectDir/tests/input/pipeline/rsids.tsv.gz" + outdir = "$outputDir" } } then { assert workflow.success + assert snapshot(new File("$outputDir/results/Y1.regenie.gz"), new File("$outputDir/results/Y2.regenie.gz") , workflow.trace).match() } } @@ -596,10 +677,12 @@ test("Should execute GWAS with interaction tests (interaction term)") { regenie_test = 'additive' regenie_interaction = 'V3' rsids_filename = "$projectDir/tests/input/pipeline/rsids.tsv.gz" + outdir = "$outputDir" } } then { assert workflow.success + assert snapshot(new File("$outputDir/results/Y1.regenie.gz"), new File("$outputDir/results/Y2.regenie.gz") , workflow.trace).match() } } @@ -617,10 +700,12 @@ test("Should execute GWAS with custom Manhattan plot y-limit") { regenie_test = 'additive' plot_ylimit = 2 rsids_filename = "$projectDir/tests/input/pipeline/rsids.tsv.gz" + outdir = "$outputDir" } } then { assert workflow.success + assert snapshot(new File("$outputDir/results/Y1.regenie.gz"), new File("$outputDir/results/Y2.regenie.gz") , workflow.trace).match() } } @@ -637,10 +722,12 @@ test("Should execute GWAS with phenotype file in tabs format") { phenotypes_columns = 'Y1,Y2' regenie_test = 'additive' rsids_filename = "$projectDir/tests/input/pipeline/rsids.tsv.gz" + outdir = "$outputDir" } } then { assert workflow.success + assert snapshot(new File("$outputDir/results/Y1.regenie.gz"), new File("$outputDir/results/Y2.regenie.gz") , workflow.trace).match() } } @@ -657,10 +744,12 @@ test("Should execute GWAS with phenotype file containing three empty values") { phenotypes_columns = 'Y1,Y2' regenie_test = 'additive' rsids_filename = "$projectDir/tests/input/pipeline/rsids.tsv.gz" + outdir = "$outputDir" } } then { assert workflow.success + assert snapshot(new File("$outputDir/results/Y1.regenie.gz"), new File("$outputDir/results/Y2.regenie.gz") , workflow.trace).match() } } @@ -678,10 +767,12 @@ test("Should execute GWAS with range filter") { regenie_range = '1:100-200' regenie_test = 'additive' rsids_filename = "$projectDir/tests/input/pipeline/rsids.tsv.gz" + outdir = "$outputDir" } } then { assert workflow.success + assert snapshot(new File("$outputDir/results/Y1.regenie.gz"), new File("$outputDir/results/Y2.regenie.gz") , workflow.trace).match() } } @@ -699,10 +790,12 @@ test("Should execute GWAS with recessive test") { regenie_test = 'recessive' regenie_ref_first = true rsids_filename = "$projectDir/tests/input/pipeline/rsids.tsv.gz" + outdir = "$outputDir" } } then { assert workflow.success + assert snapshot(new File("$outputDir/results/Y1.regenie.gz"), new File("$outputDir/results/Y2.regenie.gz") , workflow.trace).match() } } @@ -719,10 +812,12 @@ test("Should execute GWAS with skipped predictions") { regenie_skip_predictions = true regenie_test = 'additive' rsids_filename = "$projectDir/tests/input/pipeline/rsids.tsv.gz" + outdir = "$outputDir" } } then { assert workflow.success + assert snapshot(new File("$outputDir/results/Y1.regenie.gz"), new File("$outputDir/results/Y2.regenie.gz") , workflow.trace).match() } } @@ -744,13 +839,13 @@ test("Should execute pipeline for binary trait with optional regenie params") { rsids_filename = "$projectDir/tests/input/pipeline/rsids.tsv.gz" annotation_min_log10p = 2 regenie_step2_optional = "--maxCatLevels 3" - } + outdir = "$outputDir" } - - then { - assert workflow.success - } - + } + then { + assert workflow.success + assert snapshot(new File("$outputDir/results/Y1.regenie.gz"), new File("$outputDir/results/Y2.regenie.gz") , workflow.trace).match() + } } test("Should execute pipeline for binary trait with optional regenie step1 param") { @@ -771,12 +866,13 @@ test("Should execute pipeline for binary trait with optional regenie step1 param rsids_filename = "$projectDir/tests/input/pipeline/rsids.tsv.gz" annotation_min_log10p = 2 regenie_step1_optional = "--pThresh 0.01" - } - } - - then { - assert workflow.success + outdir = "$outputDir" } + } + then { + assert workflow.success + assert snapshot(new File("$outputDir/results/Y1.regenie.gz"), new File("$outputDir/results/Y2.regenie.gz") , workflow.trace).match() + } } test("Should GWAS with chunking and optional step 1 param") { @@ -800,6 +896,7 @@ test("Should GWAS with chunking and optional step 1 param") { } then { assert workflow.success + assert snapshot(new File("$outputDir/results/PHENO1.regenie.gz"), new File("$outputDir/results/PHENO2.regenie.gz") , workflow.trace).match() } } diff --git a/tests/main.nf.test.snap b/tests/main.nf.test.snap index 38153ea..c40ce73 100644 --- a/tests/main.nf.test.snap +++ b/tests/main.nf.test.snap @@ -1,4 +1,304 @@ { + "Should execute GWAS with binary trait (with missing data)": { + "content": [ + "Y1.regenie.gz:md5,a02e75e69b48c80606de1eb5af1e6fc4", + "Y2.regenie.gz:md5,a575744e2c16402456bef561ddc9de03", + { + "tasksFailed": 0, + "tasksCount": 14, + "tasksSucceeded": 14 + } + ], + "timestamp": "2023-12-14T16:42:46.245326" + }, + "Should execute GWAS with liftover to hg38 and annotation": { + "content": [ + "Y1.regenie.gz:md5,4f021e277479433fa1226c616fcb092d", + "Y2.regenie.gz:md5,931914d45092d1fc613971626478991a", + { + "tasksFailed": 0, + "tasksCount": 15, + "tasksSucceeded": 15 + } + ], + "timestamp": "2023-12-14T16:48:11.2585" + }, + "Should execute gene-based test pipeline with specified parameters with sum": { + "content": [ + "Y1.regenie.gz:md5,61a5f115619d3ee3c14a34a63e1fe73b", + "Y2.regenie.gz:md5,2147a19cedaf7f52f48bd198a30fb8f6", + { + "tasksFailed": 0, + "tasksCount": 11, + "tasksSucceeded": 11 + } + ], + "timestamp": "2023-12-14T16:19:45.878446" + }, + "Should execute liftover and GWAS pipeline": { + "content": [ + "Y1.regenie.gz:md5,2819b6b773587f7f88028281a29bd1a4", + "Y2.regenie.gz:md5,21064b3673e4ceb90aa777f2f487652a", + { + "tasksFailed": 0, + "tasksCount": 15, + "tasksSucceeded": 15 + } + ], + "timestamp": "2023-12-14T16:40:00.93939" + }, + "Should execute GWAS with header in phenotype file with chunking": { + "content": [ + "PHENO1.regenie.gz:md5,c03c47e1d4300277f2a445afc14c6d1e", + "PHENO2.regenie.gz:md5,3b600580a44b792462720d7e7c734ccc", + { + "tasksFailed": 0, + "tasksCount": 34, + "tasksSucceeded": 34 + } + ], + "timestamp": "2023-12-14T16:56:14.80547" + }, + "Should execute GWAS with force step 1": { + "content": [ + "Y1.regenie.gz:md5,3b46e913e302d59a27c87f989384a689", + "Y2.regenie.gz:md5,ec530d48c4c76056d06e5735bca4e5cd", + { + "tasksFailed": 0, + "tasksCount": 15, + "tasksSucceeded": 15 + } + ], + "timestamp": "2023-12-14T16:47:14.573846" + }, + "Should execute GWAS with additive test and multiple chromosomes": { + "content": [ + "Y1.regenie.gz:md5,b7f4ae50c67e04dfac7ee2e2f986c7a6", + "Y2.regenie.gz:md5,4051511e1e7d94656b979ad4cb2ca878", + { + "tasksFailed": 0, + "tasksCount": 18, + "tasksSucceeded": 18 + } + ], + "timestamp": "2023-12-14T16:39:07.072853" + }, + "Should execute GWAS with pruning pipeline": { + "content": [ + "Y1.regenie.gz:md5,3b46e913e302d59a27c87f989384a689", + "Y2.regenie.gz:md5,ec530d48c4c76056d06e5735bca4e5cd", + { + "tasksFailed": 0, + "tasksCount": 16, + "tasksSucceeded": 16 + } + ], + "timestamp": "2023-12-14T16:31:33.574586" + }, + "Should execute GWAS with binary trait (no Firth approximation)": { + "content": [ + "Y1.regenie.gz:md5,4304808157588788584a9aec460d10e8", + "Y2.regenie.gz:md5,a11b71f4b1650d7f202156ff09460751", + { + "tasksFailed": 0, + "tasksCount": 14, + "tasksSucceeded": 14 + } + ], + "timestamp": "2023-12-14T16:41:52.068742" + }, + "Should execute GWAS with header in phenotype file (custom batch size)": { + "content": [ + { + "directory": false, + "file": false, + "freeSpace": 0, + "canonicalPath": "/home/nanopore/genepi_hackathon/nf-test/nf-gwas-1/.nf-test/tests/60a3cad7bcdf791d727b26515b05aeb1/output/results/Y1.regenie.gz", + "usableSpace": 0, + "hidden": false, + "totalSpace": 0, + "path": "/home/nanopore/genepi_hackathon/nf-test/nf-gwas-1/.nf-test/tests/60a3cad7bcdf791d727b26515b05aeb1/output/results/Y1.regenie.gz", + "name": "Y1.regenie.gz", + "absolute": true, + "absolutePath": "/home/nanopore/genepi_hackathon/nf-test/nf-gwas-1/.nf-test/tests/60a3cad7bcdf791d727b26515b05aeb1/output/results/Y1.regenie.gz", + "parent": [ + "PHENO1.regenie.gz:md5,c03c47e1d4300277f2a445afc14c6d1e", + "PHENO1.regenie.gz.tbi:md5,52c43bd02a8ceff6c362d0b56ff5fbfe", + "PHENO2.regenie.gz:md5,3b600580a44b792462720d7e7c734ccc", + "PHENO2.regenie.gz.tbi:md5,72f72954151e910c9ed849b95ac9b402", + [ + "PHENO1.regenie.filtered.gz:md5,1da6cac933d2aa0b38613b96e9a5c517", + "PHENO2.regenie.filtered.gz:md5,8dba8315f5bd13f8ae62c9ba1a7dfce6" + ] + ] + }, + { + "directory": false, + "file": false, + "freeSpace": 0, + "canonicalPath": "/home/nanopore/genepi_hackathon/nf-test/nf-gwas-1/.nf-test/tests/60a3cad7bcdf791d727b26515b05aeb1/output/results/Y2.regenie.gz", + "usableSpace": 0, + "hidden": false, + "totalSpace": 0, + "path": "/home/nanopore/genepi_hackathon/nf-test/nf-gwas-1/.nf-test/tests/60a3cad7bcdf791d727b26515b05aeb1/output/results/Y2.regenie.gz", + "name": "Y2.regenie.gz", + "absolute": true, + "absolutePath": "/home/nanopore/genepi_hackathon/nf-test/nf-gwas-1/.nf-test/tests/60a3cad7bcdf791d727b26515b05aeb1/output/results/Y2.regenie.gz", + "parent": [ + "PHENO1.regenie.gz:md5,c03c47e1d4300277f2a445afc14c6d1e", + "PHENO1.regenie.gz.tbi:md5,52c43bd02a8ceff6c362d0b56ff5fbfe", + "PHENO2.regenie.gz:md5,3b600580a44b792462720d7e7c734ccc", + "PHENO2.regenie.gz.tbi:md5,72f72954151e910c9ed849b95ac9b402", + [ + "PHENO1.regenie.filtered.gz:md5,1da6cac933d2aa0b38613b96e9a5c517", + "PHENO2.regenie.filtered.gz:md5,8dba8315f5bd13f8ae62c9ba1a7dfce6" + ] + ] + }, + { + "tasksFailed": 0, + "tasksCount": 40, + "tasksSucceeded": 40 + } + ], + "timestamp": "2023-12-14T16:44:21.551356" + }, + "Should execute GWAS with header in phenotype file": { + "content": [ + { + "directory": false, + "file": false, + "freeSpace": 0, + "canonicalPath": "/home/nanopore/genepi_hackathon/nf-test/nf-gwas-1/.nf-test/tests/7068a16c25fb28c823980188870c4531/output/results/Y1.regenie.gz", + "usableSpace": 0, + "hidden": false, + "totalSpace": 0, + "path": "/home/nanopore/genepi_hackathon/nf-test/nf-gwas-1/.nf-test/tests/7068a16c25fb28c823980188870c4531/output/results/Y1.regenie.gz", + "name": "Y1.regenie.gz", + "absolute": true, + "absolutePath": "/home/nanopore/genepi_hackathon/nf-test/nf-gwas-1/.nf-test/tests/7068a16c25fb28c823980188870c4531/output/results/Y1.regenie.gz", + "parent": [ + "PHENO1.regenie.gz:md5,c03c47e1d4300277f2a445afc14c6d1e", + "PHENO1.regenie.gz.tbi:md5,52c43bd02a8ceff6c362d0b56ff5fbfe", + "PHENO2.regenie.gz:md5,3b600580a44b792462720d7e7c734ccc", + "PHENO2.regenie.gz.tbi:md5,72f72954151e910c9ed849b95ac9b402", + [ + "PHENO1.regenie.filtered.gz:md5,1da6cac933d2aa0b38613b96e9a5c517", + "PHENO2.regenie.filtered.gz:md5,8dba8315f5bd13f8ae62c9ba1a7dfce6" + ] + ] + }, + { + "directory": false, + "file": false, + "freeSpace": 0, + "canonicalPath": "/home/nanopore/genepi_hackathon/nf-test/nf-gwas-1/.nf-test/tests/7068a16c25fb28c823980188870c4531/output/results/Y2.regenie.gz", + "usableSpace": 0, + "hidden": false, + "totalSpace": 0, + "path": "/home/nanopore/genepi_hackathon/nf-test/nf-gwas-1/.nf-test/tests/7068a16c25fb28c823980188870c4531/output/results/Y2.regenie.gz", + "name": "Y2.regenie.gz", + "absolute": true, + "absolutePath": "/home/nanopore/genepi_hackathon/nf-test/nf-gwas-1/.nf-test/tests/7068a16c25fb28c823980188870c4531/output/results/Y2.regenie.gz", + "parent": [ + "PHENO1.regenie.gz:md5,c03c47e1d4300277f2a445afc14c6d1e", + "PHENO1.regenie.gz.tbi:md5,52c43bd02a8ceff6c362d0b56ff5fbfe", + "PHENO2.regenie.gz:md5,3b600580a44b792462720d7e7c734ccc", + "PHENO2.regenie.gz.tbi:md5,72f72954151e910c9ed849b95ac9b402", + [ + "PHENO1.regenie.filtered.gz:md5,1da6cac933d2aa0b38613b96e9a5c517", + "PHENO2.regenie.filtered.gz:md5,8dba8315f5bd13f8ae62c9ba1a7dfce6" + ] + ] + }, + { + "tasksFailed": 0, + "tasksCount": 14, + "tasksSucceeded": 14 + } + ], + "timestamp": "2023-12-14T16:47:42.503207" + }, + "Should execute GWAS with additive test on 2 chromosomes": { + "content": [ + "Y1.regenie.gz:md5,a7ffbf62cc83f6991c6147759467e88c", + "Y2.regenie.gz:md5,2b0db778a70ba177d4769819387d6ebd", + { + "tasksFailed": 0, + "tasksCount": 19, + "tasksSucceeded": 19 + } + ], + "timestamp": "2023-12-14T16:43:15.539844" + }, + "Should execute GWAS with header in phenotype file (default batch size)": { + "content": [ + { + "directory": false, + "file": false, + "freeSpace": 0, + "canonicalPath": "/home/nanopore/genepi_hackathon/nf-test/nf-gwas-1/.nf-test/tests/9c383fa42927bc018bca044e6631fc07/output/results/Y1.regenie.gz", + "usableSpace": 0, + "hidden": false, + "totalSpace": 0, + "path": "/home/nanopore/genepi_hackathon/nf-test/nf-gwas-1/.nf-test/tests/9c383fa42927bc018bca044e6631fc07/output/results/Y1.regenie.gz", + "name": "Y1.regenie.gz", + "absolute": true, + "absolutePath": "/home/nanopore/genepi_hackathon/nf-test/nf-gwas-1/.nf-test/tests/9c383fa42927bc018bca044e6631fc07/output/results/Y1.regenie.gz", + "parent": [ + "PHENO1.regenie.gz:md5,c03c47e1d4300277f2a445afc14c6d1e", + "PHENO1.regenie.gz.tbi:md5,52c43bd02a8ceff6c362d0b56ff5fbfe", + "PHENO2.regenie.gz:md5,3b600580a44b792462720d7e7c734ccc", + "PHENO2.regenie.gz.tbi:md5,72f72954151e910c9ed849b95ac9b402", + [ + "PHENO1.regenie.filtered.gz:md5,1da6cac933d2aa0b38613b96e9a5c517", + "PHENO2.regenie.filtered.gz:md5,8dba8315f5bd13f8ae62c9ba1a7dfce6" + ] + ] + }, + { + "directory": false, + "file": false, + "freeSpace": 0, + "canonicalPath": "/home/nanopore/genepi_hackathon/nf-test/nf-gwas-1/.nf-test/tests/9c383fa42927bc018bca044e6631fc07/output/results/Y2.regenie.gz", + "usableSpace": 0, + "hidden": false, + "totalSpace": 0, + "path": "/home/nanopore/genepi_hackathon/nf-test/nf-gwas-1/.nf-test/tests/9c383fa42927bc018bca044e6631fc07/output/results/Y2.regenie.gz", + "name": "Y2.regenie.gz", + "absolute": true, + "absolutePath": "/home/nanopore/genepi_hackathon/nf-test/nf-gwas-1/.nf-test/tests/9c383fa42927bc018bca044e6631fc07/output/results/Y2.regenie.gz", + "parent": [ + "PHENO1.regenie.gz:md5,c03c47e1d4300277f2a445afc14c6d1e", + "PHENO1.regenie.gz.tbi:md5,52c43bd02a8ceff6c362d0b56ff5fbfe", + "PHENO2.regenie.gz:md5,3b600580a44b792462720d7e7c734ccc", + "PHENO2.regenie.gz.tbi:md5,72f72954151e910c9ed849b95ac9b402", + [ + "PHENO1.regenie.filtered.gz:md5,1da6cac933d2aa0b38613b96e9a5c517", + "PHENO2.regenie.filtered.gz:md5,8dba8315f5bd13f8ae62c9ba1a7dfce6" + ] + ] + }, + { + "tasksFailed": 0, + "tasksCount": 34, + "tasksSucceeded": 34 + } + ], + "timestamp": "2023-12-14T16:44:53.423586" + }, + "Should execute GWAS with additive test and RSIDs": { + "content": [ + "Y1.regenie.gz:md5,3b46e913e302d59a27c87f989384a689", + "Y2.regenie.gz:md5,ec530d48c4c76056d06e5735bca4e5cd", + { + "tasksFailed": 0, + "tasksCount": 15, + "tasksSucceeded": 15 + } + ], + "timestamp": "2023-12-14T16:40:28.618801" + }, "Should execute pipeline applying an additive model": { "content": [ "Y1.regenie.gz:md5,3b46e913e302d59a27c87f989384a689", @@ -9,5 +309,125 @@ } ], "timestamp": "2023-12-14T13:41:14.112083" + }, + "Should execute GWAS with dominant test": { + "content": [ + "Y1.regenie.gz:md5,2b35ee6a9e801d5f8ffe65f5d3af6331", + "Y2.regenie.gz:md5,ba755fe847450eeb4f6bc3c1c817d487", + { + "tasksFailed": 0, + "tasksCount": 15, + "tasksSucceeded": 15 + } + ], + "timestamp": "2023-12-14T16:46:46.732441" + }, + "Should execute GWAS with interaction tests (interaction term)": { + "content": [ + "Y1.regenie.gz:md5,b2660d7af46340c24dabdacbcbe74aa3", + "Y2.regenie.gz:md5,f40a68f6b3fea3fd555e6f13df16ad9a", + { + "tasksFailed": 0, + "tasksCount": 15, + "tasksSucceeded": 15 + } + ], + "timestamp": "2023-12-14T16:48:57.716231" + }, + "Should execute gene-based test pipeline": { + "content": [ + "Y1.regenie.gz:md5,49b14ff362bd323798d2479258c675f9", + "Y2.regenie.gz:md5,b59b10dd5b7261ce12b02093cd90a751", + { + "tasksFailed": 0, + "tasksCount": 11, + "tasksSucceeded": 11 + } + ], + "timestamp": "2023-12-14T16:27:59.433067" + }, + "Should execute pipeline for binary trait": { + "content": [ + "Y1.regenie.gz:md5,f80dee2e3a0f824408cfa0bf963f4a2d", + "Y2.regenie.gz:md5,a575744e2c16402456bef561ddc9de03", + { + "tasksFailed": 0, + "tasksCount": 14, + "tasksSucceeded": 14 + } + ], + "timestamp": "2023-12-14T16:41:24.903565" + }, + "Should execute GWAS with binary trait (no Firth)": { + "content": [ + "Y1.regenie.gz:md5,1410f4e115393d781740fa92e72c7465", + "Y2.regenie.gz:md5,a916eac9fea50d74cb702cc0ca4c333c", + { + "tasksFailed": 0, + "tasksCount": 14, + "tasksSucceeded": 14 + } + ], + "timestamp": "2023-12-14T16:42:19.084491" + }, + "Should execute liftover and GWAS pipeline with array results": { + "content": [ + "Y1.regenie.gz:md5,2819b6b773587f7f88028281a29bd1a4", + "Y2.regenie.gz:md5,21064b3673e4ceb90aa777f2f487652a", + { + "tasksFailed": 0, + "tasksCount": 15, + "tasksSucceeded": 15 + } + ], + "timestamp": "2023-12-14T16:39:34.107772" + }, + "Should execute GWAS with deletion of missing phenotype data": { + "content": [ + "Y1.regenie.gz:md5,3b46e913e302d59a27c87f989384a689", + "Y2.regenie.gz:md5,ec530d48c4c76056d06e5735bca4e5cd", + { + "tasksFailed": 0, + "tasksCount": 15, + "tasksSucceeded": 15 + } + ], + "timestamp": "2023-12-14T16:46:18.588273" + }, + "Should execute GWAS with interaction tests": { + "content": [ + "Y1.regenie.gz:md5,ef589fdcd15f2d4ab6c4965838b4ed3d", + "Y2.regenie.gz:md5,76a1e735a17b34a1eda158a2c43c8394", + { + "tasksFailed": 0, + "tasksCount": 15, + "tasksSucceeded": 15 + } + ], + "timestamp": "2023-12-14T16:48:34.843303" + }, + "Should execute GWAS with condition file": { + "content": [ + "Y1.regenie.gz:md5,3b31e748e8e9f6c35aa16355fe0e812b", + "Y2.regenie.gz:md5,bf6e2d8e9f3a84ca6081aae67a5e60eb", + { + "tasksFailed": 0, + "tasksCount": 16, + "tasksSucceeded": 16 + } + ], + "timestamp": "2023-12-14T16:45:21.791936" + }, + "Should execute GWAS with covariates file": { + "content": [ + "Y1.regenie.gz:md5,173bde79ddae3655a558f178e9f00868", + "Y2.regenie.gz:md5,fda0c676fe1b232670c066eb975b6f30", + { + "tasksFailed": 0, + "tasksCount": 16, + "tasksSucceeded": 16 + } + ], + "timestamp": "2023-12-14T16:45:50.402989" } } \ No newline at end of file