Skip to content

Update FastQC/Falco wrappers to make output of pairs compatible with multiQC#7839

Open
lldelisle wants to merge 16 commits intogalaxyproject:mainfrom
lldelisle:update_fastqc
Open

Update FastQC/Falco wrappers to make output of pairs compatible with multiQC#7839
lldelisle wants to merge 16 commits intogalaxyproject:mainfrom
lldelisle:update_fastqc

Conversation

@lldelisle
Copy link
Copy Markdown
Contributor

I handle differently pairs to enable to keep both identifiers in report and therefore be compatible with multiQC directly.

Before, when given a collection: list:paired, it will create one job per fastq and in the report the filename would be forward/reverse for all pairs.
Now, it will create one job per pair and in the report the filename is blabla_forward blabla_reverse blublu_forward blublu_reverse.

FOR CONTRIBUTOR:

  • I have read the CONTRIBUTING.md document and this tool is appropriate for the tools-iuc repo.
  • License permits unrestricted use (educational + commercial)
  • This PR adds a new tool or tool collection
  • This PR updates an existing tool or tool collection
  • This PR does something else (explain below)

There are two labels that allow to ignore specific (false positive) tool linter errors:

  • skip-version-check: Use it if only a subset of the tools has been updated in a suite.
  • skip-url-check: Use it if github CI sees 403 errors, but the URLs work.

Comment thread tools/fastqc/rgFastQC.xml Outdated
Co-authored-by: Marius van den Beek <m.vandenbeek@gmail.com>
@mvdbeek
Copy link
Copy Markdown
Member

mvdbeek commented Mar 27, 2026

I think we want to encourage use of falco, that is supposed to be a faster drop-in replacement for fastqc, do we also need to update that wrapper ?

@lldelisle
Copy link
Copy Markdown
Contributor Author

I am doing the same modification on falco wrapper just now.

@lldelisle lldelisle changed the title Update FastQC wrapper to make output of pairs compatible with multiQC Update FastQC/Falco wrappers to make output of pairs compatible with multiQC Mar 27, 2026
Comment thread tools/fastqc/rgFastQC.xml Outdated
Comment thread tools/falco/falco.xml Outdated
Comment thread tools/falco/falco.xml Outdated
Comment thread tools/falco/falco.xml Outdated
Comment thread tools/fastqc/rgFastQC.xml Outdated
Comment thread tools/fastqc/rgFastQC.xml Outdated
Make output labels unique to pass lint

Co-authored-by: Lucille Delisle <lucille.delisle@unige.ch>
@lldelisle
Copy link
Copy Markdown
Contributor Author

Here is the new version with a single execution with one or 2 input files as @bgruening suggested.

@lldelisle
Copy link
Copy Markdown
Contributor Author

@bgruening / @mvdbeek would you have time to have a look?

Comment thread tools/falco/falco.xml Outdated
Comment thread tools/falco/falco.xml Outdated
Copy link
Copy Markdown
Member

@bgruening bgruening left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good from my side. Just two small questions.

@wm75 you might want to look at it.

@wm75
Copy link
Copy Markdown
Member

wm75 commented Apr 10, 2026

@lldelisle the changes look fine to me, but I'm a bit confused how much this really helps.

Are you thinking of this in conjunction with #2028 ?

Cause without this, the status quo is:

  1. Flatten a list:paired fastq input
  2. Pass the result to fastqc/falco
  3. Run MultiQC on the output

In contrast with the change here, you'd have to do:

  1. Pass a list:paired fastq collection to fastqc
  2. Flatten the resulting list:paired report
  3. Pass that to MultiQC

So you really only save a step if MultiQC can deal with paired collections? Is that what it is, or am I simply wrong?

@lldelisle
Copy link
Copy Markdown
Contributor Author

You don't need to flatten before giving to MultiQC. You can give to MultiQC the list:paired and the sample name is taken from the report itself not from the identifiers.

@lldelisle
Copy link
Copy Markdown
Contributor Author

lldelisle commented Apr 10, 2026

So before:

  • Flatten
  • Falco
  • MultiQC

After:

  • Falco
  • MultiQC

@lldelisle
Copy link
Copy Markdown
Contributor Author

With this PR, we don't need #2028 and we simplify tutorials and workflows

@lldelisle
Copy link
Copy Markdown
Contributor Author

Currently if you do:

  • falco
  • multiQC

The identifier is forward for all forwards and reverse for all reverse, then you get only one result.

Even if you do:

  • falco
  • flatten
  • MultiQC

You get the same result: only one forward and one reverse is displayed.

@wm75
Copy link
Copy Markdown
Member

wm75 commented Apr 10, 2026

So before:

* Flatten

* Falco

* MultiQC

After:

* Falco

* MultiQC

I see. I didn't know you could pass a paired collection to MultiQC.
Turns out you can, but only if you're cheating, i.e. by dragging the paired collection over the fastqc raw data input field in the multiqc tool interface. It's not offered by default.
Also the WF editor doesn't allow you to cheat:

image

So unless MultiQC gets an extension to consume paired data as fastqc raw data explicitly, you will still need the flatten collection step in between to do things properly.

@lldelisle
Copy link
Copy Markdown
Contributor Author

Mmmh this is unfortunate. I will think about it.

Comment thread tools/falco/falco.xml Outdated
Comment thread tools/falco/falco.xml Outdated
Comment thread tools/fastqc/rgFastQC.xml
Comment thread tools/fastqc/rgFastQC.xml
lldelisle and others added 2 commits April 10, 2026 14:41
Co-authored-by: Wolfgang Maier <maw.public+github@posteo.de>
Comment thread tools/fastqc/rgFastQC.xml Outdated
Copy link
Copy Markdown
Contributor Author

@lldelisle lldelisle left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe I should change the type of output collection

Comment thread tools/falco/falco.xml
<filter>generate_summary</filter>
<filter>input_type_select['input_type'] == 'individually' and generate_summary</filter>
</data>
<collection name="html_files" format="html" type="paired" label="${tool.name} on ${on_string}: Webpages">
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe should be type="list"

Comment thread tools/falco/falco.xml
<data name="reverse" from_work_dir="*reverse_fastqc_report.html" />
<filter>input_type_select['input_type'] == 'paired'</filter>
</collection>
<collection name="text_files" format="txt" type="paired" label="${tool.name} on ${on_string}: RawData text files">
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe should be type="list"

Comment thread tools/falco/falco.xml
<data name="reverse" from_work_dir="*reverse_fastqc_data.txt" />
<filter>input_type_select['input_type'] == 'paired'</filter>
</collection>
<collection name="summary_files" format="txt" type="paired" label="${tool.name} on ${on_string}: SummaryData text files">
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe should be type="list"

Comment thread tools/fastqc/rgFastQC.xml
<data format="txt" name="text_file" from_work_dir="output.txt" label="${tool.name} on ${on_string}: RawData" >
<filter>input_type_select['input_type'] == 'individually'</filter>
</data>
<collection name="html_files" format="html" type="paired" label="${tool.name} on ${on_string}: Webpages">
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe should be type="list"

Comment thread tools/fastqc/rgFastQC.xml
<data name="reverse" from_work_dir="output_reverse.html" />
<filter>input_type_select['input_type'] == 'paired'</filter>
</collection>
<collection name="text_files" format="txt" type="paired" label="${tool.name} on ${on_string}: RawData text files">
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe should be type="list"

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants