samples instead of conditions in contrast
When running a MLE analysis from a precomputed count matrix and a contrast file, the pipeline does not work because in the changes of #252 the condition labels in the contrast file should be mapped to sample names using the samplesheet, but the samplesheet when the count matrix is provided can be omitted.
This can be tested with an input like:
count_table: "https://raw.githubusercontent.com/nf-core/test-datasets/crisprseq/testdata/count_table.tsv"
analysis: 'screening'
contrasts: "https://raw.githubusercontent.com/nf-core/test-datasets/crisprseq/testdata/rra_contrasts.txt"
outdir: "output"
mle: true
In this PR, the issue is fixed by assuming that in this case the contrast file contains sample labels instead of condition labels, hence omitting the mapping from conditions to samples.
PR checklist
- [x] This comment contains a description of changes (with reason).
- [x] If you've fixed a bug or added code that should be tested, add tests!
- [x] If you've added a new tool - have you followed the pipeline conventions in the contribution docs
- [x] If necessary, also make a PR on the nf-core/crisprseq branch on the nf-core/test-datasets repository.
- [x] Make sure your code lints (
nf-core pipelines lint). - [x] Ensure the test suite passes (
nextflow run . -profile test,docker --outdir <OUTDIR>). - [x] Check for unexpected warnings in debug mode (
nextflow run . -profile debug,test,docker --outdir <OUTDIR>). - [x] Usage Documentation in
docs/usage.mdis updated. - [x] Output Documentation in
docs/output.mdis updated. - [x]
CHANGELOG.mdis updated. - [x]
README.mdis updated (including new tool citations and authors/contributors).
nf-core pipelines lint overall result: Passed :white_check_mark: :warning:
Posted for pipeline commit 9caf462
+| ✅ 278 tests passed |+
#| ❔ 4 tests were ignored |#
!| ❗ 21 tests had warnings |!
:heavy_exclamation_mark: Test warnings:
-
readme - README contains the placeholder
zenodo.XXXXXXX. This should be replaced with the zenodo doi (after the first release). -
pipeline_todos - TODO string in
base.config: Check the defaults for all processes -
pipeline_todos - TODO string in
methods_description_template.yml: #Update the HTML below to your preferred methods description, e.g. add publication citation for this pipeline -
pipeline_todos - TODO string in
main.nf: Optionally add in-text citation tools to this list. -
pipeline_todos - TODO string in
main.nf: Optionally add bibliographic entries to this list. -
pipeline_todos - TODO string in
main.nf: Only uncomment below if logic in toolCitationText/toolBibliographyText has been filled! - local_component_structure - find_adapters.nf in modules/local should be moved to a TOOL/SUBTOOL/main.nf structure
- local_component_structure - gpt_prepare_query.nf in modules/local should be moved to a TOOL/SUBTOOL/main.nf structure
- local_component_structure - alignment_summary.nf in modules/local should be moved to a TOOL/SUBTOOL/main.nf structure
- local_component_structure - clonality_classifier.nf in modules/local should be moved to a TOOL/SUBTOOL/main.nf structure
- local_component_structure - drugz.nf in modules/local should be moved to a TOOL/SUBTOOL/main.nf structure
- local_component_structure - hitselection.nf in modules/local should be moved to a TOOL/SUBTOOL/main.nf structure
- local_component_structure - orient_reference.nf in modules/local should be moved to a TOOL/SUBTOOL/main.nf structure
- local_component_structure - preprocessing_summary.nf in modules/local should be moved to a TOOL/SUBTOOL/main.nf structure
- local_component_structure - matricescreation.nf in modules/local should be moved to a TOOL/SUBTOOL/main.nf structure
- local_component_structure - venndiagram.nf in modules/local should be moved to a TOOL/SUBTOOL/main.nf structure
- local_component_structure - extract_umis.nf in modules/local should be moved to a TOOL/SUBTOOL/main.nf structure
- local_component_structure - template_reference.nf in modules/local should be moved to a TOOL/SUBTOOL/main.nf structure
- local_component_structure - cigar_parser.nf in modules/local should be moved to a TOOL/SUBTOOL/main.nf structure
- local_component_structure - clustering_summary.nf in modules/local should be moved to a TOOL/SUBTOOL/main.nf structure
- local_component_structure - crisprseq_plotter.nf in modules/local should be moved to a TOOL/SUBTOOL/main.nf structure
:grey_question: Tests ignored:
-
files_exist - File is ignored:
conf/test.config -
files_exist - File is ignored:
conf/test_full.config -
files_exist - File is ignored:
tests/default.nf.test -
files_unchanged - File ignored due to lint config:
.github/PULL_REQUEST_TEMPLATE.md
:white_check_mark: Tests passed:
-
files_exist - File found:
.gitattributes -
files_exist - File found:
.gitignore -
files_exist - File found:
.nf-core.yml -
files_exist - File found:
.prettierignore -
files_exist - File found:
.prettierrc.yml -
files_exist - File found:
CHANGELOG.md -
files_exist - File found:
CITATIONS.md -
files_exist - File found:
CODE_OF_CONDUCT.md -
files_exist - File found:
LICENSEorLICENSE.mdorLICENCEorLICENCE.md -
files_exist - File found:
nextflow_schema.json -
files_exist - File found:
nextflow.config -
files_exist - File found:
README.md -
files_exist - File found:
.github/.dockstore.yml -
files_exist - File found:
.github/CONTRIBUTING.md -
files_exist - File found:
.github/ISSUE_TEMPLATE/bug_report.yml -
files_exist - File found:
.github/ISSUE_TEMPLATE/config.yml -
files_exist - File found:
.github/ISSUE_TEMPLATE/feature_request.yml -
files_exist - File found:
.github/PULL_REQUEST_TEMPLATE.md -
files_exist - File found:
.github/workflows/branch.yml -
files_exist - File found:
.github/workflows/nf-test.yml -
files_exist - File found:
.github/actions/get-shards/action.yml -
files_exist - File found:
.github/actions/nf-test/action.yml -
files_exist - File found:
.github/workflows/linting_comment.yml -
files_exist - File found:
.github/workflows/linting.yml -
files_exist - File found:
assets/email_template.html -
files_exist - File found:
assets/email_template.txt -
files_exist - File found:
assets/sendmail_template.txt -
files_exist - File found:
assets/nf-core-crisprseq_logo_light.png -
files_exist - File found:
conf/modules.config -
files_exist - File found:
docs/images/nf-core-crisprseq_logo_light.png -
files_exist - File found:
docs/images/nf-core-crisprseq_logo_dark.png -
files_exist - File found:
docs/output.md -
files_exist - File found:
docs/README.md -
files_exist - File found:
docs/README.md -
files_exist - File found:
docs/usage.md -
files_exist - File found:
nf-test.config -
files_exist - File found:
main.nf -
files_exist - File found:
assets/multiqc_config.yml -
files_exist - File found:
conf/base.config -
files_exist - File found:
conf/igenomes.config -
files_exist - File found:
conf/igenomes_ignored.config -
files_exist - File found:
.github/workflows/awstest.yml -
files_exist - File found:
.github/workflows/awsfulltest.yml -
files_exist - File found:
modules.json -
files_exist - File found:
ro-crate-metadata.json -
files_exist - File not found check:
.github/ISSUE_TEMPLATE/bug_report.md -
files_exist - File not found check:
.github/ISSUE_TEMPLATE/feature_request.md -
files_exist - File not found check:
.github/workflows/push_dockerhub.yml -
files_exist - File not found check:
.markdownlint.yml -
files_exist - File not found check:
.nf-core.yaml -
files_exist - File not found check:
.yamllint.yml -
files_exist - File not found check:
bin/markdown_to_html.r -
files_exist - File not found check:
conf/aws.config -
files_exist - File not found check:
docs/images/nf-core-crisprseq_logo.png -
files_exist - File not found check:
lib/Checks.groovy -
files_exist - File not found check:
lib/Completion.groovy -
files_exist - File not found check:
lib/NfcoreTemplate.groovy -
files_exist - File not found check:
lib/Utils.groovy -
files_exist - File not found check:
lib/Workflow.groovy -
files_exist - File not found check:
lib/WorkflowMain.groovy -
files_exist - File not found check:
lib/WorkflowCrisprseq.groovy -
files_exist - File not found check:
parameters.settings.json -
files_exist - File not found check:
pipeline_template.yml -
files_exist - File not found check:
Singularity -
files_exist - File not found check:
lib/nfcore_external_java_deps.jar -
files_exist - File not found check:
.travis.yml - nextflow_config - Found nf-schema plugin
-
nextflow_config - Config variable found:
manifest.name -
nextflow_config - Config variable found:
manifest.nextflowVersion -
nextflow_config - Config variable found:
manifest.description -
nextflow_config - Config variable found:
manifest.version -
nextflow_config - Config variable found:
manifest.homePage -
nextflow_config - Config variable found:
timeline.enabled -
nextflow_config - Config variable found:
trace.enabled -
nextflow_config - Config variable found:
report.enabled -
nextflow_config - Config variable found:
dag.enabled -
nextflow_config - Config variable found:
process.cpus -
nextflow_config - Config variable found:
process.memory -
nextflow_config - Config variable found:
process.time -
nextflow_config - Config variable found:
params.outdir -
nextflow_config - Config variable found:
params.input -
nextflow_config - Config variable found:
validation.help.enabled -
nextflow_config - Config variable found:
manifest.mainScript -
nextflow_config - Config variable found:
timeline.file -
nextflow_config - Config variable found:
trace.file -
nextflow_config - Config variable found:
report.file -
nextflow_config - Config variable found:
dag.file -
nextflow_config - Config variable found:
validation.help.beforeText -
nextflow_config - Config variable found:
validation.help.afterText -
nextflow_config - Config variable found:
validation.help.command -
nextflow_config - Config variable found:
validation.summary.beforeText -
nextflow_config - Config variable found:
validation.summary.afterText -
nextflow_config - Config variable (correctly) not found:
params.nf_required_version -
nextflow_config - Config variable (correctly) not found:
params.container -
nextflow_config - Config variable (correctly) not found:
params.singleEnd -
nextflow_config - Config variable (correctly) not found:
params.igenomesIgnore -
nextflow_config - Config variable (correctly) not found:
params.name -
nextflow_config - Config variable (correctly) not found:
params.enable_conda -
nextflow_config - Config variable (correctly) not found:
params.max_cpus -
nextflow_config - Config variable (correctly) not found:
params.max_memory -
nextflow_config - Config variable (correctly) not found:
params.max_time -
nextflow_config - Config variable (correctly) not found:
params.validationFailUnrecognisedParams -
nextflow_config - Config variable (correctly) not found:
params.validationLenientMode -
nextflow_config - Config variable (correctly) not found:
params.validationSchemaIgnoreParams -
nextflow_config - Config variable (correctly) not found:
params.validationShowHiddenParams -
nextflow_config - Config
timeline.enabledhad correct value:true -
nextflow_config - Config
report.enabledhad correct value:true -
nextflow_config - Config
trace.enabledhad correct value:true -
nextflow_config - Config
dag.enabledhad correct value:true -
nextflow_config - Config
manifest.namebegan withnf-core/ -
nextflow_config - Config variable
manifest.homePagebegan with https://github.com/nf-core/ -
nextflow_config - Config
dag.fileended with.html -
nextflow_config - Config variable
manifest.nextflowVersionstarted with >= or !>= -
nextflow_config - Config
manifest.versionends indev:2.4.0dev -
nextflow_config - Config
params.custom_config_versionis set tomaster -
nextflow_config - Config
params.custom_config_baseis set tohttps://raw.githubusercontent.com/nf-core/configs/master - nextflow_config - Lines for loading custom profiles found
-
nextflow_config - nextflow.config contains configuration profile
test - nextflow_config - Config default value correct: params.umi_bin_size= 1
- nextflow_config - Config default value correct: params.medaka_model= https://github.com/nanoporetech/medaka/raw/master/medaka/data/r941_min_high_g303_model.hdf5
- nextflow_config - Config default value correct: params.aligner= minimap2
- nextflow_config - Config default value correct: params.vsearch_minseqlength= 55
- nextflow_config - Config default value correct: params.vsearch_maxseqlength= 57
- nextflow_config - Config default value correct: params.vsearch_id= 0.99
- nextflow_config - Config default value correct: params.min_reads= 30.0
- nextflow_config - Config default value correct: params.min_targeted_genes= 3.0
- nextflow_config - Config default value correct: params.bagel_reference_essentials= https://raw.githubusercontent.com/hart-lab/bagel/master/CEGv2.txt
- nextflow_config - Config default value correct: params.bagel_reference_nonessentials= https://raw.githubusercontent.com/hart-lab/bagel/master/NEGv1.txt
- nextflow_config - Config default value correct: params.hit_selection_iteration_nb= 1000.0
- nextflow_config - Config default value correct: params.igenomes_base= s3://ngi-igenomes/igenomes/
- nextflow_config - Config default value correct: params.custom_config_version= master
- nextflow_config - Config default value correct: params.custom_config_base= https://raw.githubusercontent.com/nf-core/configs/master
- nextflow_config - Config default value correct: params.publish_dir_mode= copy
- nextflow_config - Config default value correct: params.max_multiqc_email_size= 25.MB
- nextflow_config - Config default value correct: params.validate_params= true
- nextflow_config - Config default value correct: params.pipelines_testdata_base_path= https://raw.githubusercontent.com/nf-core/test-datasets/
- nextflow_config - Config default value correct: params.gpt_drugz_gene_amount= 400
- nextflow_config - Config default value correct: params.gpt_drugz_question= Which of the following genes have historically shown records of enhancing drug activity upon CRISPR knockout? For each positive gene write a paragraph explaining the findings in detail.
- nextflow_config - Config default value correct: params.gpt_mle_gene_amount= 400
- nextflow_config - Config default value correct: params.gpt_mle_question= Which of the following genes have historically shown significance in the context of a CRISPR knockout? For each positive gene write a paragraph explaining the findings in detail.
- nextflow_config - Config default value correct: params.gpt_bagel2_gene_amount= 400
- nextflow_config - Config default value correct: params.gpt_bagel2_question= Which of the following genes have historically shown significance in the context of a CRISPR knockout? For each positive gene write a paragraph explaining the findings in detail.
- nextflow_config - Config default value correct: params.gpt_rra_gene_amount= 400
- nextflow_config - Config default value correct: params.gpt_rra_question= Which of the following genes have historically shown significance in the context of a CRISPR knockout? For each positive gene write a paragraph explaining the findings in detail.
-
nf_test_content - 'tests/main_screening_paired.nf.test' contains
outdirparameter - nf_test_content - 'tests/main_screening_paired.nf.test' snapshots a 'versions.yml' file
- nf_test_content - 'tests/main_screening_paired.nf.test' snapshots a 'versions.yml' file
-
nf_test_content - 'tests/main_targeted.nf.test' contains
outdirparameter - nf_test_content - 'tests/main_targeted.nf.test' snapshots a 'versions.yml' file
- nf_test_content - 'tests/main_targeted.nf.test' snapshots a 'versions.yml' file
-
nf_test_content - 'tests/main_screening.nf.test' contains
outdirparameter - nf_test_content - 'tests/main_screening.nf.test' snapshots a 'versions.yml' file
- nf_test_content - 'tests/main_screening.nf.test' snapshots a 'versions.yml' file
-
nf_test_content - 'tests/main_targeted_umis.nf.test' contains
outdirparameter - nf_test_content - 'tests/main_targeted_umis.nf.test' snapshots a 'versions.yml' file
- nf_test_content - 'tests/main_targeted_umis.nf.test' snapshots a 'versions.yml' file
-
nf_test_content - 'tests/main_screening_count_table.nf.test' contains
outdirparameter - nf_test_content - 'tests/main_screening_count_table.nf.test' snapshots a 'versions.yml' file
- nf_test_content - 'tests/main_screening_count_table.nf.test' snapshots a 'versions.yml' file
-
nf_test_content - 'tests/nextflow.config' contains
modules_testdata_base_path -
nf_test_content - 'tests/nextflow.config' contains
pipelines_testdata_base_path -
nf_test_content - 'nf-test.config' sets a
testsDir -
nf_test_content - 'nf-test.config' sets a
workDir -
nf_test_content - 'nf-test.config' sets a
configFile -
files_unchanged -
.gitattributesmatches the template -
files_unchanged -
.prettierrc.ymlmatches the template -
files_unchanged -
CODE_OF_CONDUCT.mdmatches the template -
files_unchanged -
LICENSEmatches the template -
files_unchanged -
.github/.dockstore.ymlmatches the template -
files_unchanged -
.github/CONTRIBUTING.mdmatches the template -
files_unchanged -
.github/ISSUE_TEMPLATE/bug_report.ymlmatches the template -
files_unchanged -
.github/ISSUE_TEMPLATE/config.ymlmatches the template -
files_unchanged -
.github/ISSUE_TEMPLATE/feature_request.ymlmatches the template -
files_unchanged -
.github/workflows/branch.ymlmatches the template -
files_unchanged -
.github/workflows/linting_comment.ymlmatches the template -
files_unchanged -
.github/workflows/linting.ymlmatches the template -
files_unchanged -
assets/email_template.htmlmatches the template -
files_unchanged -
assets/email_template.txtmatches the template -
files_unchanged -
assets/sendmail_template.txtmatches the template -
files_unchanged -
assets/nf-core-crisprseq_logo_light.pngmatches the template -
files_unchanged -
docs/images/nf-core-crisprseq_logo_light.pngmatches the template -
files_unchanged -
docs/images/nf-core-crisprseq_logo_dark.pngmatches the template -
files_unchanged -
docs/README.mdmatches the template -
files_unchanged -
.gitignorematches the template -
files_unchanged -
.prettierignorematches the template - actions_nf_test - '.github/workflows/nf-test.yml' is triggered on expected events
- actions_nf_test - '.github/workflows/nf-test.yml' checks minimum NF version
- actions_awstest - '.github/workflows/awstest.yml' is triggered correctly
-
actions_awsfulltest -
.github/workflows/awsfulltest.ymlis triggered correctly -
actions_awsfulltest -
.github/workflows/awsfulltest.ymldoes not use-profile test -
readme - README Nextflow minimum version badge matched config. Badge:
24.10.5, Config:24.10.5 - readme - README nf-core template version badge found.
-
pipeline_if_empty_null - No
ifEmpty(null)strings found - plugin_includes - No wrong validation plugin imports have been found
- pipeline_name_conventions - Name adheres to nf-core convention
- template_strings - Did not find any Jinja template strings (0 files)
- schema_lint - Schema lint passed
- schema_lint - Schema title + description lint passed
- schema_lint - Input mimetype lint passed: 'text/csv'
- schema_params - Schema matched params returned from nextflow config
-
system_exit - No
System.exitcalls found - actions_schema_validation - Workflow validation passed: linting.yml
- actions_schema_validation - Workflow validation passed: download_pipeline.yml
- actions_schema_validation - Workflow validation passed: template-version-comment.yml
- actions_schema_validation - Workflow validation passed: linting_comment.yml
- actions_schema_validation - Workflow validation passed: release-announcements.yml
- actions_schema_validation - Workflow validation passed: fix_linting.yml
- actions_schema_validation - Workflow validation passed: awsfulltest_screening.yml
- actions_schema_validation - Workflow validation passed: nf-test.yml
- actions_schema_validation - Workflow validation passed: awsfulltest.yml
- actions_schema_validation - Workflow validation passed: branch.yml
- actions_schema_validation - Workflow validation passed: awstest.yml
- actions_schema_validation - Workflow validation passed: clean-up.yml
- merge_markers - No merge markers found in pipeline files
-
modules_json - Only installed modules found in
modules.json -
multiqc_config -
assets/multiqc_config.ymlfound and not ignored. -
multiqc_config -
assets/multiqc_config.ymlcontainsreport_section_order -
multiqc_config -
assets/multiqc_config.ymlcontainsexport_plots -
multiqc_config -
assets/multiqc_config.ymlcontainsreport_comment -
multiqc_config -
assets/multiqc_config.ymlfollows the ordering scheme of the minimally required plugins. -
multiqc_config -
assets/multiqc_config.ymlcontains a matching 'report_comment'. -
multiqc_config -
assets/multiqc_config.ymlcontains 'export_plots: true'. - modules_structure - modules directory structure is correct 'modules/nf-core/TOOL/SUBTOOL'
- local_component_structure - local subworkflows directory structure is correct 'subworkflows/local/TOOL/SUBTOOL'
-
base_config -
conf/base.configfound and not ignored. -
modules_config -
conf/modules.configfound and not ignored. -
modules_config -
ORIENT_REFERENCEfound inconf/modules.configand Nextflow scripts. -
modules_config -
CAT_FASTQfound inconf/modules.configand Nextflow scripts. -
modules_config -
PEARfound inconf/modules.configand Nextflow scripts. -
modules_config -
BAGEL2_BFfound inconf/modules.configand Nextflow scripts. -
modules_config -
BAGEL2_PRfound inconf/modules.configand Nextflow scripts. -
modules_config -
BAGEL2_FCfound inconf/modules.configand Nextflow scripts. -
modules_config -
DRUGZfound inconf/modules.configand Nextflow scripts. -
modules_config -
BAGEL2_GRAPHfound inconf/modules.configand Nextflow scripts. -
modules_config -
FASTQCfound inconf/modules.configand Nextflow scripts. -
modules_config -
FIND_ADAPTERSfound inconf/modules.configand Nextflow scripts. -
modules_config -
GUIDES_TO_FASTAfound inconf/modules.configand Nextflow scripts. -
modules_config -
BOWTIE2_BUILDfound inconf/modules.configand Nextflow scripts. -
modules_config -
BOWTIE2_ALIGNfound inconf/modules.configand Nextflow scripts. -
modules_config -
MAGECK_COUNTfound inconf/modules.configand Nextflow scripts. -
modules_config -
MAGECK_MLEfound inconf/modules.configand Nextflow scripts. -
modules_config -
MAGECK_TESTfound inconf/modules.configand Nextflow scripts. -
modules_config -
MAGECK_GRAPHRRAfound inconf/modules.configand Nextflow scripts. -
modules_config -
MAGECK_FLUTEMLEfound inconf/modules.configand Nextflow scripts. -
modules_config -
HITSELECTIONfound inconf/modules.configand Nextflow scripts. -
modules_config -
HITSELECTION_MLEfound inconf/modules.configand Nextflow scripts. -
modules_config -
HITSELECTION_BAGEL2found inconf/modules.configand Nextflow scripts. -
modules_config -
HITSELECTION_RRAfound inconf/modules.configand Nextflow scripts. -
modules_config -
VENNDIAGRAMfound inconf/modules.configand Nextflow scripts. -
modules_config -
MAGECK_MLE_DAY0found inconf/modules.configand Nextflow scripts. -
modules_config -
CRISPRCLEANR_NORMALIZEfound inconf/modules.configand Nextflow scripts. -
modules_config -
CUTADAPTfound inconf/modules.configand Nextflow scripts. -
modules_config -
CUTADAPT_FIVE_PRIMEfound inconf/modules.configand Nextflow scripts. -
modules_config -
CUTADAPT_THREE_PRIMEfound inconf/modules.configand Nextflow scripts. -
modules_config -
SEQTK_SEQ_MASKfound inconf/modules.configand Nextflow scripts. -
modules_config -
EXTRACT_UMISfound inconf/modules.configand Nextflow scripts. -
modules_config -
VSEARCH_CLUSTERfound inconf/modules.configand Nextflow scripts. -
modules_config -
VSEARCH_SORTfound inconf/modules.configand Nextflow scripts. -
modules_config -
PREPROCESSING_SUMMARYfound inconf/modules.configand Nextflow scripts. -
modules_config -
MATRICESCREATIONfound inconf/modules.configand Nextflow scripts. -
modules_config -
MINIMAP2_ALIGN_UMI_1found inconf/modules.configand Nextflow scripts. -
modules_config -
MINIMAP2_ALIGN_UMI_2found inconf/modules.configand Nextflow scripts. -
modules_config -
RACON_1found inconf/modules.configand Nextflow scripts. -
modules_config -
RACON_2found inconf/modules.configand Nextflow scripts. -
modules_config -
MEDAKAfound inconf/modules.configand Nextflow scripts. -
modules_config -
SEQTK_SEQ_FATOFQfound inconf/modules.configand Nextflow scripts. -
modules_config -
CLUSTERING_SUMMARYfound inconf/modules.configand Nextflow scripts. -
modules_config -
MINIMAP2_ALIGN_ORIGINALfound inconf/modules.configand Nextflow scripts. -
modules_config -
ALIGNMENT_SUMMARYfound inconf/modules.configand Nextflow scripts. -
modules_config -
SAMTOOLS_INDEXfound inconf/modules.configand Nextflow scripts. -
modules_config -
TEMPLATE_REFERENCEfound inconf/modules.configand Nextflow scripts. -
modules_config -
MINIMAP2_ALIGN_TEMPLATEfound inconf/modules.configand Nextflow scripts. -
modules_config -
CIGAR_PARSERfound inconf/modules.configand Nextflow scripts. -
modules_config -
CRISPRSEQ_PLOTTERfound inconf/modules.configand Nextflow scripts. -
modules_config -
MULTIQCfound inconf/modules.configand Nextflow scripts. -
nfcore_yml - Repository type in
.nf-core.ymlis valid:pipeline -
nfcore_yml - nf-core version in
.nf-core.ymlis set to the latest version:3.3.2 -
rocrate_readme_sync - RO-Crate descriptions are in sync with
README.md.
Run details
- nf-core/tools version 3.3.2
- Run at
2025-10-09 11:58:04
I am not following the story here. Could you explain to me what the files would look like when running the pipelines from fastq files or from a count matrix with an example? Thanks!
yep, sure...
When you start from fastq files, you have to provide a sample sheet that contains sample labels and condition labels. With the contrast file you specify the condition labels that you want to compare, and the condition labels are then mapped to samples when it is required to specify the model for the differential analysis. An example is the main screening test:
- the samplesheet https://raw.githubusercontent.com/nf-core/test-datasets/crisprseq/testdata/samplesheet_test.csv
- the contrast file https://raw.githubusercontent.com/nf-core/test-datasets/crisprseq/testdata/rra_contrasts.txt
When you start providing directly the count matrix, you do not need to give a sample sheet and so you do not have a place where to provide condition labels. In this case you give:
- the count matrix https://raw.githubusercontent.com/nf-core/test-datasets/crisprseq/testdata/count_table.tsv
- the contrast file https://raw.githubusercontent.com/nf-core/test-datasets/crisprseq/testdata/rra_contrasts.txt with labels in the contrast file that are interpreted as sample names instead of condition. If I am not mistaken, even before I started contributing to the pipeline, this was the workaround that was in place. And with this PR I re-introduce it (because this was broken by PR #252).
I totally get that having a file which may be structured differently depending on the type of run is not ideal, but I think that other solutions are not ideal, either. I think that one possibility to make everything consistent would be specifying the contrast by sample names in all the cases, but I guess this would be too radical.
Anyway, I would be happy to discuss this further!
What do you think if we require to provide a samplesheet too, even if a contrast file is provided? Then, I would make the fastq files not required, so only sample ID and condition will have to be provided, and we can read the mapping of samples form the samplesheet
I just want to be sure I’m following your reasoning: is the concern mainly about the pipeline being runnable in non-standard cases without a samplesheet, or about the possible inconsistency where the contrast file might contain either sample or condition labels depending on the context?
Anyway, I’m fine with your proposal. It is actually a good time to make the change, since it would be a breaking one and we already have a major release coming up.
My only concern is that making the FASTQ files non-compulsory would also affect the standard (and more common) use case, where the pipeline does require them. We could add an extra ad hoc check for the presence of FASTQ files, but obviously it is nicer to have this check directly at the level of the samplesheet parsing.
I am more concerned about having a contrast file that contains different columns depending on the run. For example, if I run the pipeline once, obtain the counts matrix, and want to re-run it with some different parameters but starting from the count matrix, I can't reuse my contrasts file.
I agree it's better for validation to check for fastq files when parsing the samplesheet, but I think it's the best trade off in this situation. We should anyway try to think of a better way to handle our samplesheet validation, since we are already being very permissive because we have to use the same JSON schema for both subworkflows of the pipeline. We can tackle this later in a different PR.
I see your point, and I agree.
In that sense, my preference would be to simplify the pipeline by removing the condition column altogether, so that the contrast file always refers to samples rather than conditions. This might make the contrast IDs slightly less readable, but in many real use cases (like the one that prompted this PR), users typically run multiple contrasts on the same dataset, meaning the condition labels end up being one-to-one with the sample IDs anyway.
That said, I’m aware this change could be quite disruptive compared to previous releases. How do you feel about it?
I am not a user of this analysis, so I rely on your experience for this 😄 It sounds good to me to get rid of the "conditions" column, and modify how the contrast file looks like. If you think it will be too disruptive, we could try posting on the slack channel to get people's opinion (hopefully they receive a notification and read it)