Skip to content

Commit

Permalink
allow skip raw conversion
Browse files Browse the repository at this point in the history
  • Loading branch information
daichengxin committed May 13, 2024
1 parent f571096 commit 0a096b5
Show file tree
Hide file tree
Showing 6 changed files with 43 additions and 20 deletions.
24 changes: 13 additions & 11 deletions bin/diann_convert.py
Original file line number Diff line number Diff line change
Expand Up @@ -39,12 +39,13 @@ def cli():
@click.option("--folder", "-f")
@click.option("--exp_design", "-d")
@click.option("--diann_version", "-v")
@click.option("--skip_mzTab", "-s")
@click.option("--dia_params", "-p")
@click.option("--charge", "-c")
@click.option("--missed_cleavages", "-m")
@click.option("--qvalue_threshold", "-q", type=float)
@click.pass_context
def convert(ctx, folder, exp_design, dia_params, diann_version, charge, missed_cleavages, qvalue_threshold):
def convert(ctx, folder, exp_design, dia_params, diann_version, skip_mzTab, charge, missed_cleavages, qvalue_threshold):
"""
Convert DIA-NN output to MSstats, Triqler or mzTab.
The output formats are used for quality control and downstream analysis.
Expand Down Expand Up @@ -138,16 +139,17 @@ def convert(ctx, folder, exp_design, dia_params, diann_version, charge, missed_c
logger.info(f"Triqler input file is saved as {exp_out_prefix}_triqler_in.tsv")
del out_triqler

mztab_out = f"{Path(exp_design).stem}_out.mzTab"
# Convert to mzTab
diann_directory.convert_to_mztab(
report=report,
f_table=f_table,
charge=charge,
missed_cleavages=missed_cleavages,
dia_params=dia_params,
out=mztab_out,
)
if not skip_mzTab:
mztab_out = f"{Path(exp_design).stem}_out.mzTab"
# Convert to mzTab
diann_directory.convert_to_mztab(
report=report,
f_table=f_table,
charge=charge,
missed_cleavages=missed_cleavages,
dia_params=dia_params,
out=mztab_out,
)


def _true_stem(x):
Expand Down
3 changes: 2 additions & 1 deletion modules/local/diannconvert/main.nf
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ process DIANNCONVERT {
output:
path "*msstats_in.csv", emit: out_msstats
path "*triqler_in.tsv", emit: out_triqler
path "*.mzTab", emit: out_mztab
path "*.mzTab", emit: out_mztab optional true
path "*.log", emit: log
path "versions.yml", emit: version

Expand All @@ -39,6 +39,7 @@ process DIANNCONVERT {
--folder ./ \\
--exp_design ${exp_design} \\
--diann_version ./version/versions.yml \\
--skip_mzTab $params.skip_raw_conversion \\
--dia_params "${dia_params}" \\
--charge $params.max_precursor_charge \\
--missed_cleavages $params.allowed_missed_cleavages \\
Expand Down
2 changes: 1 addition & 1 deletion modules/local/pmultiqc/main.nf
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ process PMULTIQC {

script:
def args = task.ext.args ?: ''
def disable_pmultiqc = (params.enable_pmultiqc) && (params.export_mztab) ? "" : "--disable_plugin"
def disable_pmultiqc = (params.enable_pmultiqc) && (params.export_mztab) && (!params.skip_raw_conversion) ? "" : "--disable_plugin"
def disable_table_plots = (params.enable_pmultiqc) && (params.skip_table_plots) ? "--disable_table" : ""
def disable_idxml_index = (params.enable_pmultiqc) && (params.pmultiqc_idxml_skip) ? "--ignored_idxml" : ""

Expand Down
1 change: 1 addition & 0 deletions nextflow.config
Original file line number Diff line number Diff line change
Expand Up @@ -189,6 +189,7 @@ params {
species_genes = false
diann_normalize = true
diann_speclib = null
skip_raw_conversion = false

// DIA-NN: Extras
skip_preliminary_analysis = false
Expand Down
7 changes: 7 additions & 0 deletions nextflow_schema.json
Original file line number Diff line number Diff line change
Expand Up @@ -175,6 +175,13 @@
"description": "Force initial re-indexing of input mzML files. Also fixes some common mistakes in slightly incomplete/outdated mzMLs. (Default: true for safety)",
"fa_icon": "far fa-check-square",
"help_text": "Force re-indexing in the beginning of the pipeline to make sure that indices are up-to-date and to avoid redundant indexing on-demand in steps that require an index (e.g., Comet)."
},
"skip_raw_conversion": {
"type": "boolean",
"default": false,
"description": "Convert RAW files to mzML for DIA-NN workflow",
"fa_icon": "far fa-check-square",
"help_text": "Whether to convert RAW files to .mzML for DIA-NN workflow"
}
},
"fa_icon": "far fa-chart-bar"
Expand Down
26 changes: 19 additions & 7 deletions workflows/quantms.nf
Original file line number Diff line number Diff line change
Expand Up @@ -61,13 +61,23 @@ workflow QUANTMS {
//
// SUBWORKFLOW: File preparation
//
FILE_PREPARATION (
CREATE_INPUT_CHANNEL.out.ch_meta_config_iso.mix(CREATE_INPUT_CHANNEL.out.ch_meta_config_lfq).mix(CREATE_INPUT_CHANNEL.out.ch_meta_config_dia)
)
statistics = Channel.empty()
ch_raw_input = Channel.empty()
if (params.skip_raw_conversion == false) {
FILE_PREPARATION (
CREATE_INPUT_CHANNEL.out.ch_meta_config_iso.mix(CREATE_INPUT_CHANNEL.out.ch_meta_config_lfq).mix(CREATE_INPUT_CHANNEL.out.ch_meta_config_dia)
)
ch_versions = ch_versions.mix(FILE_PREPARATION.out.version.ifEmpty(null))
statistics = FILE_PREPARATION.out.statistics
} else {
ch_raw_input = CREATE_INPUT_CHANNEL.out.ch_meta_config_dia
if (ch_raw_input.ifEmpty(true)) {
exit 1, 'Allows skipping of raw data conversions in the DIA workflow only!'
}
}

ch_versions = ch_versions.mix(FILE_PREPARATION.out.version.ifEmpty(null))

FILE_PREPARATION.out.results
ch_raw_input.mix(FILE_PREPARATION.out.results)
.branch {
dia: it[0].acquisition_method.contains("dia")
iso: it[0].labelling_type.contains("tmt") || it[0].labelling_type.contains("itraq")
Expand Down Expand Up @@ -131,7 +141,7 @@ workflow QUANTMS {
ch_msstats_in = ch_msstats_in.mix(LFQ.out.msstats_in)
ch_versions = ch_versions.mix(LFQ.out.versions.ifEmpty(null))

DIA(ch_fileprep_result.dia, CREATE_INPUT_CHANNEL.out.ch_expdesign, FILE_PREPARATION.out.statistics)
DIA(ch_fileprep_result.dia, CREATE_INPUT_CHANNEL.out.ch_expdesign, statistics)
ch_pipeline_results = ch_pipeline_results.mix(DIA.out.diann_report)
ch_msstats_in = ch_msstats_in.mix(DIA.out.msstats_in)
ch_versions = ch_versions.mix(DIA.out.versions.ifEmpty(null))
Expand Down Expand Up @@ -161,7 +171,9 @@ workflow QUANTMS {
ch_methods_description = Channel.value(methodsDescriptionText(ch_multiqc_custom_methods_description))
ch_multiqc_files = ch_multiqc_files.mix(ch_multiqc_config)
ch_multiqc_files = ch_multiqc_files.mix(ch_workflow_summary.collectFile(name: 'workflow_summary_mqc.yaml'))
ch_multiqc_files = ch_multiqc_files.mix(FILE_PREPARATION.out.statistics)
if (!params.skip_raw_conversion) {
ch_multiqc_files = ch_multiqc_files.mix(FILE_PREPARATION.out.statistics)
}
ch_multiqc_files = ch_multiqc_files.mix(ch_collated_versions)
ch_multiqc_files = ch_multiqc_files.mix(ch_methods_description.collectFile(name: 'methods_description_mqc.yaml', sort: false))
ch_multiqc_quantms_logo = file("$projectDir/assets/nf-core-quantms_logo_light.png")
Expand Down

0 comments on commit 0a096b5

Please sign in to comment.