Skip to content

Commit

Permalink
Added nftest
Browse files Browse the repository at this point in the history
  • Loading branch information
zxBIB Schcolnicov committed Sep 6, 2024
1 parent d34fddb commit 669f7e1
Show file tree
Hide file tree
Showing 4 changed files with 257 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,14 @@
Defines input files and everything required to run a fast and simple pipeline test.
Use as follows:
nextflow run nf-core/smrnaseq -profile test,<docker/singularity>
nextflow run nf-core/smrnaseq -profile test_nextflex,<docker/singularity>
----------------------------------------------------------------------------------------
*/
// This test profile tests nextflex without genome

params {
config_profile_name = 'Test profile'
config_profile_name = 'Nextflex Test profile'
config_profile_description = 'Minimal test dataset to check pipeline function'

// Limit resources so that this can run on GitHub Actions
Expand All @@ -25,7 +26,8 @@ params {
hairpin = 'https://github.com/nf-core/test-datasets/raw/smrnaseq/reference/hairpin.fa'
mirna_gtf = 'https://github.com/nf-core/test-datasets/raw/smrnaseq/reference/hsa.gff3'
mirtrace_species = 'hsa'
genome = 'GRCh37'

skip_mirdeep = true

}

Expand Down
2 changes: 1 addition & 1 deletion nextflow.config
Original file line number Diff line number Diff line change
Expand Up @@ -248,7 +248,7 @@ profiles {
test_contamination { includeConfig 'conf/test_contamination.config' }
test_contamination_tech_reps { includeConfig 'conf/test_contamination_tech_reps.config' }
test_skipfastp { includeConfig 'conf/test_skipfastp.config' }
test_no_genome_nextflex { includeConfig 'conf/test_no_genome_nextflex.config' }
test_nextflex { includeConfig 'conf/test_nextflex.config' }


//Protocol specific profiles
Expand Down
122 changes: 122 additions & 0 deletions tests/test_nextflex.nf.test
Original file line number Diff line number Diff line change
@@ -0,0 +1,122 @@

nextflow_pipeline {

name "Test Workflow main.nf - test_nextflex"
script "main.nf"
profile "test_nextflex"
tag "test_nextflex"
tag "pipeline"

test("test_nextflex") {

when {
params {
outdir = "$outputDir"
}
}

then {
assertAll(
{ assert workflow.success },
{ assert snapshot(UTILS.removeNextflowVersion("$outputDir")).match("software_versions") },
{ assert workflow.trace.succeeded().size() == 63 },

{ assert snapshot(
path("$outputDir/mirna_quant/bam/mature/sample2_mature.sorted.idxstats"),
path("$outputDir/mirna_quant/bam/mature/sample1_mature.sorted.flagstat"),
path("$outputDir/mirna_quant/bam/mature/sample2_mature.sorted.stats"),
path("$outputDir/mirna_quant/bam/mature/sample3_mature.sorted.stats"),
path("$outputDir/mirna_quant/bam/mature/sample3_mature.sorted.flagstat"),
path("$outputDir/mirna_quant/bam/mature/sample3_mature.sorted.idxstats"),
path("$outputDir/mirna_quant/bam/mature/sample1_mature.sorted.stats"),
path("$outputDir/mirna_quant/bam/mature/sample2_mature.sorted.flagstat"),
path("$outputDir/mirna_quant/bam/mature/sample1_mature.sorted.idxstats"),
path("$outputDir/mirna_quant/bam/hairpin/sample3_mature_hairpin.sorted.stats"),
path("$outputDir/mirna_quant/bam/hairpin/sample2_mature_hairpin.sorted.flagstat"),
path("$outputDir/mirna_quant/bam/hairpin/sample1_mature_hairpin.sorted.flagstat"),
path("$outputDir/mirna_quant/bam/hairpin/sample1_mature_hairpin.sorted.idxstats"),
path("$outputDir/mirna_quant/bam/hairpin/sample3_mature_hairpin.sorted.flagstat"),
path("$outputDir/mirna_quant/bam/hairpin/sample2_mature_hairpin.sorted.stats"),
path("$outputDir/mirna_quant/bam/hairpin/sample1_mature_hairpin.sorted.stats"),
path("$outputDir/mirna_quant/bam/hairpin/sample3_mature_hairpin.sorted.idxstats"),
path("$outputDir/mirna_quant/bam/hairpin/sample2_mature_hairpin.sorted.idxstats")
).match("mirna_quant_bam") },

{ assert snapshot(
path("$outputDir/mirna_quant/edger_qc/hairpin_counts.csv").exists(),
path("$outputDir/mirna_quant/edger_qc/hairpin_edgeR_MDS_plot_coordinates.txt").exists(),
path("$outputDir/mirna_quant/edger_qc/hairpin_edgeR_MDS_distance_matrix.txt").exists(),
path("$outputDir/mirna_quant/edger_qc/hairpin_log2CPM_sample_distances.txt").exists(),
path("$outputDir/mirna_quant/edger_qc/hairpin_logtpm.csv").exists(),
path("$outputDir/mirna_quant/edger_qc/hairpin_logtpm.txt").exists(),
path("$outputDir/mirna_quant/edger_qc/hairpin_normalized_CPM.txt").exists(),
path("$outputDir/mirna_quant/edger_qc/mature_edgeR_MDS_plot_coordinates.txt").exists(),
path("$outputDir/mirna_quant/edger_qc/mature_edgeR_MDS_distance_matrix.txt").exists(),
path("$outputDir/mirna_quant/edger_qc/mature_counts.csv").exists(),
path("$outputDir/mirna_quant/edger_qc/mature_log2CPM_sample_distances.txt").exists(),
path("$outputDir/mirna_quant/edger_qc/hairpin_unmapped_read_counts.txt").exists(),
path("$outputDir/mirna_quant/edger_qc/mature_normalized_CPM.txt").exists(),
path("$outputDir/mirna_quant/edger_qc/mature_logtpm.csv").exists(),
path("$outputDir/mirna_quant/edger_qc/mature_logtpm.txt").exists(),
path("$outputDir/mirna_quant/edger_qc/mature_unmapped_read_counts.txt").exists()
).match("mirna_quant_edger_qc") },

{ assert snapshot(
path("$outputDir/mirtrace/mirtrace-report.html").exists(),
path("$outputDir/mirtrace/mirtrace-stats-contamination_basic.tsv"),
path("$outputDir/mirtrace/mirtrace-stats-mirna-complexity.tsv"),
path("$outputDir/mirtrace/mirtrace-stats-phred.tsv"),
path("$outputDir/mirtrace/mirtrace-stats-length.tsv"),
path("$outputDir/mirtrace/mirtrace-stats-contamination_detailed.tsv"),
path("$outputDir/mirtrace/mirtrace-stats-qcstatus.tsv"),
path("$outputDir/mirtrace/mirtrace-stats-rnatype.tsv")
).match("mirtrace") },

{ assert snapshot(
path("$outputDir/multiqc/multiqc_data/fastqc-status-check-heatmap.txt"),
path("$outputDir/multiqc/multiqc_data/fastp_filtered_reads_plot.txt"),
path("$outputDir/multiqc/multiqc_data/fastqc_overrepresented_sequences_plot.txt"),
path("$outputDir/multiqc/multiqc_data/fastqc_top_overrepresented_sequences_table-1.txt").exists(),
path("$outputDir/multiqc/multiqc_data/fastqc_sequence_counts_plot-1.txt"),
path("$outputDir/multiqc/multiqc_data/mirtrace_complexity_plot.txt"),
path("$outputDir/multiqc/multiqc_data/fastqc_per_sequence_gc_content_plot-1_Percentages.txt"),
path("$outputDir/multiqc/multiqc_data/multiqc_citations.txt"),
path("$outputDir/multiqc/multiqc_data/samtools-stats-dp.txt"),
path("$outputDir/multiqc/multiqc_data/fastqc_sequence_length_distribution_plot.txt"),
path("$outputDir/multiqc/multiqc_data/fastp-seq-content-n-plot_Read_1_Before_filtering.txt"),
path("$outputDir/multiqc/multiqc_data/fastqc_sequence_duplication_levels_plot-1.txt"),
path("$outputDir/multiqc/multiqc_data/fastqc_per_base_sequence_quality_plot-1.txt"),
path("$outputDir/multiqc/multiqc_data/multiqc_general_stats.txt"),
path("$outputDir/multiqc/multiqc_data/fastqc_per_base_n_content_plot-1.txt"),
path("$outputDir/multiqc/multiqc_data/fastqc_per_base_n_content_plot.txt"),
path("$outputDir/multiqc/multiqc_data/fastp-seq-quality-plot_Read_1_After_filtering.txt"),
path("$outputDir/multiqc/multiqc_data/fastqc_per_sequence_quality_scores_plot.txt"),
path("$outputDir/multiqc/multiqc_data/mirtrace_qc_plot.txt"),
path("$outputDir/multiqc/multiqc_data/fastqc_per_sequence_quality_scores_plot-1.txt"),
path("$outputDir/multiqc/multiqc_data/mirtrace_length_plot.txt"),
path("$outputDir/multiqc/multiqc_data/fastqc_top_overrepresented_sequences_table.txt").exists(),
path("$outputDir/multiqc/multiqc_data/fastqc-status-check-heatmap-1.txt"),
path("$outputDir/multiqc/multiqc_data/fastqc_sequence_counts_plot.txt"),
path("$outputDir/multiqc/multiqc_data/mirtrace_rna_categories_plot.txt"),
path("$outputDir/multiqc/multiqc_data/fastp-seq-quality-plot_Read_1_Before_filtering.txt"),
path("$outputDir/multiqc/multiqc_data/samtools_alignment_plot.txt"),
path("$outputDir/multiqc/multiqc_data/fastqc_per_base_sequence_quality_plot.txt"),
path("$outputDir/multiqc/multiqc_data/fastp-seq-content-n-plot_Read_1_After_filtering.txt"),
path("$outputDir/multiqc/multiqc_data/mirtrace_contamination_check_plot.txt"),
path("$outputDir/multiqc/multiqc_data/fastqc_adapter_content_plot.txt"),
path("$outputDir/multiqc/multiqc_data/fastqc_sequence_duplication_levels_plot.txt"),
path("$outputDir/multiqc/multiqc_data/fastqc_per_sequence_gc_content_plot_Percentages.txt"),
path("$outputDir/multiqc/multiqc_data/fastqc_per_sequence_gc_content_plot-1_Counts.txt"),
path("$outputDir/multiqc/multiqc_data/fastqc_adapter_content_plot-1.txt"),
path("$outputDir/multiqc/multiqc_data/fastp-seq-content-gc-plot_Read_1_Before_filtering.txt"),
path("$outputDir/multiqc/multiqc_data/fastqc_per_sequence_gc_content_plot_Counts.txt"),
path("$outputDir/multiqc/multiqc_data/multiqc_sources.txt").exists(),
path("$outputDir/multiqc/multiqc_data/fastp-seq-content-gc-plot_Read_1_After_filtering.txt")
).match("multiqc_multiqc_data") },

)
}

}

}
129 changes: 129 additions & 0 deletions tests/test_nextflex.nf.test.snap
Original file line number Diff line number Diff line change
@@ -0,0 +1,129 @@
{
"mirtrace": {
"content": [
true,
"mirtrace-stats-contamination_basic.tsv:md5,2cb713dcb906c5a44ab0587cef5848b5",
"mirtrace-stats-mirna-complexity.tsv:md5,50d36857f67ab0fb72e6717ffb3a7f5a",
"mirtrace-stats-phred.tsv:md5,eeacb4b6341174e87a527138936f60c5",
"mirtrace-stats-length.tsv:md5,7c5caaf25a8e7ce4d322985f3225e0cf",
"mirtrace-stats-contamination_detailed.tsv:md5,90bc8fc20fdb9e6360c347d3a741733a",
"mirtrace-stats-qcstatus.tsv:md5,c41d52e9f464f364297390267a4df426",
"mirtrace-stats-rnatype.tsv:md5,469de7788e4e95e6f89fb1ad9b7b1795"
],
"meta": {
"nf-test": "0.9.0",
"nextflow": "23.10.0"
},
"timestamp": "2024-09-06T16:26:35.587317829"
},
"software_versions": {
"content": [
"{BOWTIE_MAP_HAIRPIN={bowtie=1.3.1, samtools=1.14}, BOWTIE_MAP_MATURE={bowtie=1.3.1, samtools=1.14}, BOWTIE_MAP_SEQCLUSTER={bowtie=1.3.1, samtools=1.14}, FASTP={fastp=0.23.4}, FASTQC_RAW={fastqc=0.12.1}, FASTQC_TRIM={fastqc=0.12.1}, FORMAT_HAIRPIN={fastx_toolkit=0.0.14}, FORMAT_MATURE={fastx_toolkit=0.0.14}, INDEX_HAIRPIN={bowtie=1.3.1}, INDEX_MATURE={bowtie=1.3.1}, MIRTRACE_RUN={mirtrace=1.0.1}, PARSE_HAIRPIN={seqkit=2.6.1}, PARSE_MATURE={seqkit=2.6.1}, SAMTOOLS_FLAGSTAT={samtools=1.2}, SAMTOOLS_IDXSTATS={samtools=1.2}, SAMTOOLS_INDEX={samtools=1.2}, SAMTOOLS_SORT={samtools=1.2}, SAMTOOLS_STATS={samtools=1.2}, SEQCLUSTER_SEQUENCES={seqcluster=1.2.9}, Workflow={nf-core/smrnaseq=v2.3.2dev}}"
],
"meta": {
"nf-test": "0.9.0",
"nextflow": "23.10.0"
},
"timestamp": "2024-09-06T16:26:35.441216239"
},
"mirna_quant_bam": {
"content": [
"sample2_mature.sorted.idxstats:md5,9688f02beeebf9a590dc81e49415ede9",
"sample1_mature.sorted.flagstat:md5,7d61ae305e545c7a66ef8d23a0c8be25",
"sample2_mature.sorted.stats:md5,897f3efa4ecf2757ecc489cd3860cb39",
"sample3_mature.sorted.stats:md5,f35902ad2475738e48bc7b472477ec64",
"sample3_mature.sorted.flagstat:md5,1aae00444143bce06cb0f8cf31deb8e4",
"sample3_mature.sorted.idxstats:md5,9688f02beeebf9a590dc81e49415ede9",
"sample1_mature.sorted.stats:md5,743586b54608b68ada3235f6473bc357",
"sample2_mature.sorted.flagstat:md5,1aae00444143bce06cb0f8cf31deb8e4",
"sample1_mature.sorted.idxstats:md5,6db0cfab41307285fe5c89dfe95b5d46",
"sample3_mature_hairpin.sorted.stats:md5,06eeda9757f859140ed63d94a074b376",
"sample2_mature_hairpin.sorted.flagstat:md5,4e201dd868164d0c53142888dd6ca238",
"sample1_mature_hairpin.sorted.flagstat:md5,7ed3ab444077ddf6c334845e9c4ce75e",
"sample1_mature_hairpin.sorted.idxstats:md5,7b7d142caee6cccbb6d83c8e6568a951",
"sample3_mature_hairpin.sorted.flagstat:md5,4e201dd868164d0c53142888dd6ca238",
"sample2_mature_hairpin.sorted.stats:md5,ecd5b0dc54a14dca7dcc66abfc6d3845",
"sample1_mature_hairpin.sorted.stats:md5,b5e867c324113e8ab805c27a5d4ef89a",
"sample3_mature_hairpin.sorted.idxstats:md5,8927231d0ea3100fb75a96b4e5317321",
"sample2_mature_hairpin.sorted.idxstats:md5,8927231d0ea3100fb75a96b4e5317321"
],
"meta": {
"nf-test": "0.9.0",
"nextflow": "23.10.0"
},
"timestamp": "2024-09-06T16:26:35.460795492"
},
"mirna_quant_edger_qc": {
"content": [
true,
true,
true,
true,
true,
true,
true,
true,
true,
true,
true,
true,
true,
true,
true,
true
],
"meta": {
"nf-test": "0.9.0",
"nextflow": "23.10.0"
},
"timestamp": "2024-09-06T16:26:35.55181047"
},
"multiqc_multiqc_data": {
"content": [
"fastqc-status-check-heatmap.txt:md5,949e6825a7ecc751aa9ba515de7dbd02",
"fastp_filtered_reads_plot.txt:md5,7d99da33e244ce77191b8bfeaec8180c",
"fastqc_overrepresented_sequences_plot.txt:md5,11b85c61ea97ca62a9e7c34fae9e575c",
true,
"fastqc_sequence_counts_plot-1.txt:md5,926304f6c18b8151a56692bb69db97e7",
"mirtrace_complexity_plot.txt:md5,b88b1ec0d2d0ee2f443b968c107dc45a",
"fastqc_per_sequence_gc_content_plot-1_Percentages.txt:md5,3f7fd27d4553da6a88f4f15dd4b6413b",
"multiqc_citations.txt:md5,c2900ba941a5e78a3f42ef6a1033ace7",
"samtools-stats-dp.txt:md5,1fa31e11ef6c82185d5c9dc2f40d61b2",
"fastqc_sequence_length_distribution_plot.txt:md5,130a5569ba830f7e7abb971d1c8da537",
"fastp-seq-content-n-plot_Read_1_Before_filtering.txt:md5,bd72bc8bfc907c6aab72f315917ab280",
"fastqc_sequence_duplication_levels_plot-1.txt:md5,a53f959bf59ad69d3bcbc53e8fe609b3",
"fastqc_per_base_sequence_quality_plot-1.txt:md5,2f85a658bcb8261328449f1642688086",
"multiqc_general_stats.txt:md5,3733aa0acfe0151765da7e3c7834c7a8",
"fastqc_per_base_n_content_plot-1.txt:md5,e3b4bb3ed98e87f2d8acb0c009485ecd",
"fastqc_per_base_n_content_plot.txt:md5,48710007bb055bae6f35f2fa8ea8f42b",
"fastp-seq-quality-plot_Read_1_After_filtering.txt:md5,2956382a3f2e855a4dce8e8246a57add",
"fastqc_per_sequence_quality_scores_plot.txt:md5,d2339b94d6c56616b6975086bf1e23c8",
"mirtrace_qc_plot.txt:md5,4f3f1e0a2b6e5dd5f9e0a7a7aea0e529",
"fastqc_per_sequence_quality_scores_plot-1.txt:md5,28ed13d328e755aa06a0f13f87c336eb",
"mirtrace_length_plot.txt:md5,f915d98a47a66ea9602ff0758a5e462f",
true,
"fastqc-status-check-heatmap-1.txt:md5,66af5433ebb61bc68905f8219d7419ab",
"fastqc_sequence_counts_plot.txt:md5,3bfb0974e5395d2d0044586c3e4547d1",
"mirtrace_rna_categories_plot.txt:md5,e39093f9a152845b6f4f44a239d9652d",
"fastp-seq-quality-plot_Read_1_Before_filtering.txt:md5,e5ea2bfd87e957a18fae5239137d6499",
"samtools_alignment_plot.txt:md5,73b963380d0fc2ae145c3cd39e26824a",
"fastqc_per_base_sequence_quality_plot.txt:md5,1208509fcaff06edcddc377c907dfdaf",
"fastp-seq-content-n-plot_Read_1_After_filtering.txt:md5,dd53a16aebc689109fc8065d08d8a6c7",
"mirtrace_contamination_check_plot.txt:md5,88cfa15add5e8a561761ee70d8a0da12",
"fastqc_adapter_content_plot.txt:md5,8aa2cbcf256bbb89c4a1d1fd18019c9b",
"fastqc_sequence_duplication_levels_plot.txt:md5,97a930f423f2cd365c2262b0a185f68a",
"fastqc_per_sequence_gc_content_plot_Percentages.txt:md5,5857a8a1980816cf70b34b7b318e1482",
"fastqc_per_sequence_gc_content_plot-1_Counts.txt:md5,d3ecffd88ebbdac463e297a2b98c8b3d",
"fastqc_adapter_content_plot-1.txt:md5,245d96a402988141cbe68b60a42db535",
"fastp-seq-content-gc-plot_Read_1_Before_filtering.txt:md5,9033ad6887da19d96fb9e2504d8de0a5",
"fastqc_per_sequence_gc_content_plot_Counts.txt:md5,fbe1f23a76ed70b2568d553fc42adef2",
true,
"fastp-seq-content-gc-plot_Read_1_After_filtering.txt:md5,ed44d5035150f69bdeb7855c80271c21"
],
"meta": {
"nf-test": "0.9.0",
"nextflow": "23.10.0"
},
"timestamp": "2024-09-06T16:26:35.632599778"
}
}

0 comments on commit 669f7e1

Please sign in to comment.