Skip to content

Commit

Permalink
Fixed 183,184,179,178
Browse files Browse the repository at this point in the history
  • Loading branch information
GallVp committed Dec 11, 2024
1 parent 0141925 commit 1e7ab55
Show file tree
Hide file tree
Showing 11 changed files with 115 additions and 52 deletions.
2 changes: 1 addition & 1 deletion .nf-core.yml
Original file line number Diff line number Diff line change
Expand Up @@ -46,5 +46,5 @@ template:
- igenomes
- multiqc
- fastqc
version: 2.2.0dev
version: 2.2.1
update: null
19 changes: 19 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,25 @@
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## v2.2.1 - [11-Dec-2024]

### `Added`

1. Added notes on HTTP(s) server on the HiC page and on the need to move dynamically loaded content when moving the report's HTML file [#183](https://github.com/Plant-Food-Research-Open/assemblyqc/issues/183)

### `Fixed`

1. Fixed an issue where PLOTSR crashed due to a mismatch in the ordering of `syri.out` files when `synteny_plotsr_assembly_order` was not specified [#184](https://github.com/Plant-Food-Research-Open/assemblyqc/issues/184)
2. Fixed an issue where a path to HiC FastQ file pairs from the current directory were considered a SRR ID [#179](https://github.com/Plant-Food-Research-Open/assemblyqc/issues/179)
3. Fixed edges and input/output arrows in the flowchart [#178](https://github.com/Plant-Food-Research-Open/assemblyqc/issues/178)

### `Dependencies`

1. Nextflow!>=24.04.2
2. [email protected]

### `Deprecated`

## v2.2.0 - [05-Nov-2024]

### `Added`
Expand Down
2 changes: 1 addition & 1 deletion CITATION.cff
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ authors:
- family-names: "Deng"
given-names: "Cecilia"
title: "AssemblyQC: A Nextflow pipeline for reproducible reporting of assembly quality"
version: 2.2.0
version: 2.2.1
date-released: 2024-07-30
url: "https://github.com/Plant-Food-Research-Open/assemblyqc"
doi: 10.1093/bioinformatics/btae477
31 changes: 25 additions & 6 deletions bin/report_modules/templates/hic/hic.html
Original file line number Diff line number Diff line change
Expand Up @@ -8,38 +8,57 @@
<p class="section-para"><b>References:</b></p>

<p class="section-para">
<b>fastp</b> Chen, Yanqing Zhou, Yaru Chen, Jia Gu, fastp: an ultra-fast all-in-one FASTQ preprocessor, Bioinformatics,
<b>fastp</b> Chen, Yanqing Zhou, Yaru Chen, Jia Gu, fastp: an ultra-fast all-in-one FASTQ preprocessor,
Bioinformatics,
Volume 34, Issue 17, September 2018, Pages i884–i890, <a href="https://doi.org/10.1093/bioinformatics/bty560"
target="_blank">10.1093/bioinformatics/bty560</a>
</p>

<p class="section-para">
<b>BWA</b> Li, H. (2013). Aligning sequence reads, clone sequences and assembly contigs with BWA-MEM. arXiv preprint <a
href="https://arxiv.org/abs/1303.3997" target="_blank">arXiv: 1303.3997</a>.
<b>BWA</b> Li, H. (2013). Aligning sequence reads, clone sequences and assembly contigs with BWA-MEM. arXiv
preprint <a href="https://arxiv.org/abs/1303.3997" target="_blank">arXiv: 1303.3997</a>.
</p>

<p class="section-para">
<b>SAMBLASTER</b> Gregory G. Faust, Ira M. Hall, SAMBLASTER: fast duplicate marking and structural variant read extraction,
<b>SAMBLASTER</b> Gregory G. Faust, Ira M. Hall, SAMBLASTER: fast duplicate marking and structural variant read
extraction,
Bioinformatics, Volume 30, Issue 17, September 2014, Pages 2503–2505, <a
href="https://doi.org/10.1093/bioinformatics/btu314" target="_blank">10.1093/bioinformatics/btu314</a>
</p>

<p class="section-para">
<b>SAMtools</b> Petr Danecek, James K Bonfield, Jennifer Liddle, John Marshall, Valeriu Ohan, Martin O Pollard, Andrew Whitwham,
<b>SAMtools</b> Petr Danecek, James K Bonfield, Jennifer Liddle, John Marshall, Valeriu Ohan, Martin O Pollard,
Andrew Whitwham,
Thomas Keane, Shane A McCarthy, Robert M Davies, Heng Li, Twelve years of SAMtools and BCFtools, GigaScience,
Volume
10, Issue 2, February 2021, giab008, <a href="https://doi.org/10.1093/gigascience/giab008"
target="_blank">10.1093/gigascience/giab008</a>
</p>

<p class="section-para">
<b>Juicebox.js</b> Robinson JT, Turner D, Durand NC, Thorvaldsdóttir H, Mesirov JP, Aiden EL. Juicebox.js Provides a
<b>Juicebox.js</b> Robinson JT, Turner D, Durand NC, Thorvaldsdóttir H, Mesirov JP, Aiden EL. Juicebox.js Provides
a
Cloud-Based Visualization System for Hi-C Data. Cell Syst. 2018 Feb 28;6(2):256-258.e1.
<a href="https://doi.org/10.1016/j.cels.2018.01.001" target="_blank">10.1016/j.cels.2018.01.001</a>. Epub
2018 Feb 7. PMID: 29428417; PMCID: PMC6047755.
</p>

<p class="section-para"><b>Version: {{ all_stats_dicts['VERSIONS']['JUICEBOX_JS'] }}</b></p>

<p class="section-para"><b>Notes:</b></p>
<ul>
<li>
The Hi-C contact map is only loaded when the report is opened through a HTTP(s) server and all the necessary
permissions are in place. The contact map '.hic' file is stored in the 'hic' folder under the output directory.
It can be visualized with <a href="https://github.com/aidenlab/Juicebox/wiki/Download">Juicebox</a>.
</li>
<li>
This report dynamically loads content from the 'hic' folder under the output directory including '*.hic',
'*.html', 'bedpe/' and 'hicqc/'. These files and folders should also be moved when moving the report's HTML
file.
</li>
</ul>

</div>
{% include 'hic/dropdown.html' %} {% include 'hic/report_contents.html' %}
</div>
33 changes: 21 additions & 12 deletions bin/report_modules/templates/kraken2/kraken2.html
Original file line number Diff line number Diff line change
@@ -1,14 +1,23 @@
<div id="KRAKEN2" class="tabcontent" style="display: none">
<div class="section-para-wrapper">
<p class="section-para">
Kraken2 assigns taxonomic labels to sequencing reads for metagenomics projects.
</p>
<p class="section-para"><b>Reference:</b></p>
<p class="section-para">
Wood, D.E., Lu, J. & Langmead, B. Improved metagenomic analysis with Kraken 2. Genome Biol 20, 257 (2019).
<a href="https://doi.org/10.1186/s13059-019-1891-0" target="_blank">10.1186/s13059-019-1891-0</a>
</p>
<p class="section-para"><b>Version: {{ all_stats_dicts['VERSIONS']['KRAKEN2']['kraken2'] }}</b></p>
</div>
{% include 'kraken2/dropdown.html' %} {% include 'kraken2/report_contents.html' %}
<div class="section-para-wrapper">
<p class="section-para">
Kraken2 assigns taxonomic labels to sequencing reads for metagenomics projects.
</p>
<p class="section-para"><b>Reference:</b></p>
<p class="section-para">
Wood, D.E., Lu, J. & Langmead, B. Improved metagenomic analysis with Kraken 2. Genome Biol 20, 257 (2019).
<a href="https://doi.org/10.1186/s13059-019-1891-0" target="_blank">10.1186/s13059-019-1891-0</a>
</p>
<p class="section-para"><b>Version: {{ all_stats_dicts['VERSIONS']['KRAKEN2']['kraken2'] }}</b></p>

<p class="section-para"><b>Note:</b></p>
<ul>
<li>
This report dynamically loads '*.kraken2.krona.html' files from the 'kraken2' folder under the output directory.
These files should also be moved when moving the report's HTML file.
</li>
</ul>

</div>
{% include 'kraken2/dropdown.html' %} {% include 'kraken2/report_contents.html' %}
</div>
51 changes: 30 additions & 21 deletions bin/report_modules/templates/ncbi_fcs_gx/ncbi_fcs_gx.html
Original file line number Diff line number Diff line change
@@ -1,23 +1,32 @@
<div id="NCBI_FCS_GX" class="tabcontent" style="display: none">
<div class="section-para-wrapper">
<p class="section-para">FCS-GX detects contamination from foreign organisms in genome sequences.</p>
<p class="section-para"><b>Reference:</b></p>
<p class="section-para">
Alexander Astashyn, Eric S Tvedte, Deacon Sweeney, Victor Sapojnikov, Nathan Bouk, Victor Joukov, Eyal
Mozes, Pooja K Strope, Pape M Sylla, Lukas Wagner, Shelby L Bidwell, Karen Clark, Emily W Davis, Brian
Smith-White, Wratko Hlavina, Kim D Pruitt, Valerie A Schneider, Terence D Murphy bioRxiv 2023.06.02.543519;
doi:
<a href="https://doi.org/10.1101/2023.06.02.543519" target="_blank">10.1101/2023.06.02.543519</a>, GitHub:
<a href="https://github.com/ncbi/fcs" target="_blank">https://github.com/ncbi/fcs</a>
</p>
<p class="section-para">
<b>Version: {{ all_stats_dicts['VERSIONS']['NCBI_FCS_GX_SCREEN_SAMPLES']['fcs_gx'] }}</b>
</p>
<p class="section-para">
<b>DB Version: {{ all_stats_dicts['NCBI_FCS_GX'][0]['report_meta_data'][1]['db']['build-date'] }}</b>
</p>
</div>
{% include 'ncbi_fcs_gx/dropdown.html' %}
{% include 'ncbi_fcs_gx/summary_contents.html' %}
{% include 'ncbi_fcs_gx/report_contents.html' %}
<div class="section-para-wrapper">
<p class="section-para">FCS-GX detects contamination from foreign organisms in genome sequences.</p>
<p class="section-para"><b>Reference:</b></p>
<p class="section-para">
Alexander Astashyn, Eric S Tvedte, Deacon Sweeney, Victor Sapojnikov, Nathan Bouk, Victor Joukov, Eyal
Mozes, Pooja K Strope, Pape M Sylla, Lukas Wagner, Shelby L Bidwell, Karen Clark, Emily W Davis, Brian
Smith-White, Wratko Hlavina, Kim D Pruitt, Valerie A Schneider, Terence D Murphy bioRxiv 2023.06.02.543519;
doi:
<a href="https://doi.org/10.1101/2023.06.02.543519" target="_blank">10.1101/2023.06.02.543519</a>, GitHub:
<a href="https://github.com/ncbi/fcs" target="_blank">https://github.com/ncbi/fcs</a>
</p>
<p class="section-para">
<b>Version: {{ all_stats_dicts['VERSIONS']['NCBI_FCS_GX_SCREEN_SAMPLES']['fcs_gx'] }}</b>
</p>
<p class="section-para">
<b>DB Version: {{ all_stats_dicts['NCBI_FCS_GX'][0]['report_meta_data'][1]['db']['build-date'] }}</b>
</p>

<p class="section-para"><b>Note:</b></p>
<ul>
<li>
This report dynamically loads '*.fcs.gx.krona.html' files from the 'ncbi_fcs_gx' folder under the output
directory. These files should also be moved when moving the report's HTML file.
</li>
</ul>

</div>
{% include 'ncbi_fcs_gx/dropdown.html' %}
{% include 'ncbi_fcs_gx/summary_contents.html' %}
{% include 'ncbi_fcs_gx/report_contents.html' %}
</div>
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,15 @@
all_stats_dicts['VERSIONS']['SYRI']['syri'] }} (SYRI), {{
all_stats_dicts['VERSIONS']['MINIMAP2_ALIGN']['minimap2'] }} (MINIMAP2)</b>
</p>

<p class="section-para"><b>Note:</b></p>
<ul>
<li>
This report dynamically loads '*.on.*.all/' folders from the 'synteny' folder under the output
directory. These folders should also be moved when moving the report's HTML file.
</li>
</ul>

</div>
{% include 'synteny_plotsr/report_contents.html' %}
</div>
Binary file modified docs/images/assemblyqc.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion nextflow.config
Original file line number Diff line number Diff line change
Expand Up @@ -274,7 +274,7 @@ manifest {
description = """A Nextflow pipeline which evaluates assembly quality with multiple QC tools and presents the results in a unified html report."""
mainScript = 'main.nf'
nextflowVersion = '!>=24.04.2'
version = '2.2.0'
version = '2.2.1'
doi = 'https://doi.org/10.1093/bioinformatics/btae477'
}

Expand Down
2 changes: 1 addition & 1 deletion subworkflows/local/fasta_synteny.nf
Original file line number Diff line number Diff line change
Expand Up @@ -344,7 +344,7 @@ workflow FASTA_SYNTENY {
| map { meta, syri, fastas ->
def fasta_list = fastas.flatten()
def syri_tags = syri.collect { it.name.replace('syri.out', '').split(/\.on\./).toList() }.flatten().unique()
def proposed_order = plotsr_assembly_order ? plotsr_assembly_order.tokenize(' ') : syri_tags.sort(false)
def proposed_order = plotsr_assembly_order ? plotsr_assembly_order.tokenize(' ') : syri_tags.sort(false) { it.toUpperCase() }

def available_tags = []
proposed_order.each { tag -> if ( tag in syri_tags ) available_tags << tag }
Expand Down
16 changes: 7 additions & 9 deletions subworkflows/local/utils_nfcore_assemblyqc_pipeline/main.nf
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,6 @@
// Subworkflow with functionality specific to the plant-food-research-open/assemblyqc pipeline
//

import groovy.json.JsonOutput

/*
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
IMPORT FUNCTIONS / MODULES / SUBWORKFLOWS
Expand Down Expand Up @@ -81,12 +79,12 @@ workflow PIPELINE_INITIALISATION {
| collect
| map { tags -> validateInputTags( tags ) }
| combine ( ch_input.map { row -> [ row ] } )
| map { result, row -> row }
| map { _result, row -> row }

ch_hic_reads = ! params.hic
? Channel.empty()
: (
"$params.hic".find(/.*[\/].*\.(fastq|fq)\.gz/)
"$params.hic".find(/\S+\{1,2\}[\w\.]*\.f(ast)?q\.gz/)
? Channel.fromFilePairs(params.hic, checkIfExists: true)
: Channel.of( [ params.hic, 'is_sra' ] )
)
Expand All @@ -105,7 +103,7 @@ workflow PIPELINE_INITIALISATION {
| collect
| map { tags -> validateXrefAssemblies( tags ) }
| combine ( ch_xref_assembly.map { row -> [ row ] } )
| map { result, row -> row }
| map { _result, row -> row }
| map { tag, fa, labels ->
[ tag, file(fa, checkIfExists: true), file(labels, checkIfExists: true) ]
}
Expand Down Expand Up @@ -275,7 +273,7 @@ def validateInputTags(assemblyTags) {
assemblyTags.each { tag ->
tagCounts[tag] = tagCounts.containsKey(tag) ? tagCounts[tag] + 1 : 1
}
def repeatedTags = tagCounts.findAll { key, count -> count > 1 }.collect { key, count -> key }
def repeatedTags = tagCounts.findAll { _key, count -> count > 1 }.collect { key, _count -> key }

if (repeatedTags.size() > 0) {
error("Please check input assemblysheet -> Multiple assemblies have the same tags!: ${repeatedTags}")
Expand All @@ -290,7 +288,7 @@ def validateXrefAssemblies(xrefTags) {
xrefTags.each { tag ->
tagCounts[tag] = tagCounts.containsKey(tag) ? tagCounts[tag] + 1 : 1
}
def repeatedTags = tagCounts.findAll { key, count -> count > 1 }.collect { key, count -> key }
def repeatedTags = tagCounts.findAll { _key, count -> count > 1 }.collect { key, _count -> key }

if (repeatedTags.size() > 0) {
error("Please check synteny_xref_assemblies -> Multiple xref assemblies have the same tags!: ${repeatedTags}")
Expand All @@ -300,7 +298,7 @@ def validateXrefAssemblies(xrefTags) {
}

def jsonifyParams(params) {
return JsonOutput.toJson(params).toString()
return groovy.json.JsonOutput.toJson(params).toString()
}

def jsonifySummaryParams(params) {
Expand All @@ -312,7 +310,7 @@ def jsonifySummaryParams(params) {
}
}

return JsonOutput.toJson(summary).toString()
return groovy.json.JsonOutput.toJson(summary).toString()
}

def extractReadsTuple(tag, reads_1, reads_2) {
Expand Down

0 comments on commit 1e7ab55

Please sign in to comment.