Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release v2.0.0 #45

Open
wants to merge 37 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 36 commits
Commits
Show all changes
37 commits
Select commit Hold shift + click to select a range
caaa3b3
Template update for nf-core/tools version 3.1.2
nf-core-bot Jan 20, 2025
53e3569
Merge branch 'dev' into nf-core-template-merge-3.1.2
charles-plessy Jan 21, 2025
448340d
Do not output the LAST database files, closes #36.
charles-plessy Jan 16, 2025
4b9f8b8
Do not output the _many-to-one_ alignment except in `--m2m` mode.
charles-plessy Jan 16, 2025
10c2d2a
Enforce strictness in seqtk cutn, fixes #18
charles-plessy Jan 16, 2025
5d09fc1
Allow all seeds, closes #34
charles-plessy Jan 16, 2025
cff62c5
Ignore errors probably caused by no alignments found
charles-plessy Jan 23, 2025
d0377b3
Update all modules.
charles-plessy Jan 23, 2025
6cd6052
Fix subworkflows to accept a fixed parameter file. Closes #22
charles-plessy Jan 23, 2025
11fd73f
Fix CI with Nextflow 24.12.0-edge
charles-plessy Jan 23, 2025
997effa
New option `export_aln_to` for people who need different formats than…
charles-plessy Jan 23, 2025
d83862e
Lint fixes. Thanks Arthur for the hint on Slack!
charles-plessy Jan 24, 2025
4a72cd0
Remove Debian-style tilde from the version number
charles-plessy Jan 24, 2025
bb21e41
Merge pull request #37 from nf-core/nf-core-template-merge-3.1.2
charles-plessy Jan 24, 2025
7f4b00c
Merge branch 'dev' into milestone_2.0.0
charles-plessy Jan 24, 2025
f32de98
Factorise dotplot options and group dotplot config sections
charles-plessy Jan 24, 2025
b969767
pre-commit run --all-files
charles-plessy Jan 24, 2025
97103fd
Current changelog
charles-plessy Jan 24, 2025
3abb4df
Update tubemap to version 2.0
charles-plessy Jan 27, 2025
776a06f
Documentation updates
charles-plessy Jan 27, 2025
eba8c2f
Merge branch 'milestone_2.0.0' of github.com:nf-core/pairgenomealign …
charles-plessy Jan 27, 2025
cd91bad
Prepare release 2.0.0
charles-plessy Jan 27, 2025
75da46d
Template update for nf-core/tools version 3.2.0
nf-core-bot Jan 27, 2025
d7a6808
Delete modules/nf-core/fastqc/main.nf
charles-plessy Jan 27, 2025
c764bdb
Merge branch 'dev' into nf-core-template-merge-3.2.0
charles-plessy Jan 28, 2025
01a14cd
Merge pull request #40 from nf-core/nf-core-template-merge-3.2.0
charles-plessy Jan 28, 2025
976b137
Merge branch 'dev' into milestone_2.0.0
charles-plessy Jan 28, 2025
2a65161
Merge pull request #41 from nf-core/master
charles-plessy Jan 28, 2025
700586d
Brush up changelog.
charles-plessy Jan 30, 2025
90b6b43
Update nextflow_schema.json
charles-plessy Jan 30, 2025
5e22a3a
Update nextflow_schema.json
charles-plessy Jan 30, 2025
d71189e
Merge branch 'milestone_2.0.0' of github.com:nf-core/pairgenomealign …
charles-plessy Jan 30, 2025
5ecdcbd
Mention compression algorithm.
charles-plessy Jan 30, 2025
8cfa80b
Restore unicode quotes.
charles-plessy Jan 30, 2025
894e584
Collect all last/ submodules versions.
charles-plessy Jan 30, 2025
a09c4d4
Merge pull request #39 from nf-core/milestone_2.0.0
charles-plessy Jan 30, 2025
eba63d0
Mention upgrade to nf-core template 3.2.0
charles-plessy Feb 1, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
Expand Up @@ -31,3 +31,7 @@ indent_size = unset
# ignore python and markdown
[*.{py,md}]
indent_style = unset

# ignore ro-crate metadata files
[**/ro-crate-metadata.json]
insert_final_newline = unset
1 change: 0 additions & 1 deletion .github/ISSUE_TEMPLATE/bug_report.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@ body:

- [nf-core website: troubleshooting](https://nf-co.re/usage/troubleshooting)
- [nf-core/pairgenomealign pipeline documentation](https://nf-co.re/pairgenomealign/usage)

- type: textarea
id: description
attributes:
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,8 @@ jobs:
steps:
- name: Check out pipeline code
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
with:
fetch-depth: 0

- name: Set up Nextflow
uses: nf-core/setup-nextflow@v2
Expand Down
51 changes: 32 additions & 19 deletions .github/workflows/download_pipeline.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,23 @@ env:
NXF_ANSI_LOG: false

jobs:
configure:
runs-on: ubuntu-latest
outputs:
REPO_LOWERCASE: ${{ steps.get_repo_properties.outputs.REPO_LOWERCASE }}
REPOTITLE_LOWERCASE: ${{ steps.get_repo_properties.outputs.REPOTITLE_LOWERCASE }}
REPO_BRANCH: ${{ steps.get_repo_properties.outputs.REPO_BRANCH }}
steps:
- name: Get the repository name and current branch
id: get_repo_properties
run: |
echo "REPO_LOWERCASE=${GITHUB_REPOSITORY,,}" >> "$GITHUB_OUTPUT"
echo "REPOTITLE_LOWERCASE=$(basename ${GITHUB_REPOSITORY,,})" >> "$GITHUB_OUTPUT"
echo "REPO_BRANCH=${{ github.event.inputs.testbranch || 'dev' }}" >> "$GITHUB_OUTPUT"

download:
runs-on: ubuntu-latest
needs: configure
steps:
- name: Install Nextflow
uses: nf-core/setup-nextflow@v2
Expand All @@ -52,12 +67,6 @@ jobs:
python -m pip install --upgrade pip
pip install git+https://github.com/nf-core/tools.git@dev

- name: Get the repository name and current branch set as environment variable
run: |
echo "REPO_LOWERCASE=${GITHUB_REPOSITORY,,}" >> ${GITHUB_ENV}
echo "REPOTITLE_LOWERCASE=$(basename ${GITHUB_REPOSITORY,,})" >> ${GITHUB_ENV}
echo "REPO_BRANCH=${{ github.event.inputs.testbranch || 'dev' }}" >> ${GITHUB_ENV}

- name: Make a cache directory for the container images
run: |
mkdir -p ./singularity_container_images
Expand All @@ -66,55 +75,59 @@ jobs:
env:
NXF_SINGULARITY_CACHEDIR: ./singularity_container_images
run: |
nf-core pipelines download ${{ env.REPO_LOWERCASE }} \
--revision ${{ env.REPO_BRANCH }} \
--outdir ./${{ env.REPOTITLE_LOWERCASE }} \
nf-core pipelines download ${{ needs.configure.outputs.REPO_LOWERCASE }} \
--revision ${{ needs.configure.outputs.REPO_BRANCH }} \
--outdir ./${{ needs.configure.outputs.REPOTITLE_LOWERCASE }} \
--compress "none" \
--container-system 'singularity' \
--container-library "quay.io" -l "docker.io" -l "community.wave.seqera.io/library/" \
--container-cache-utilisation 'amend' \
--download-configuration 'yes'

- name: Inspect download
run: tree ./${{ env.REPOTITLE_LOWERCASE }}
run: tree ./${{ needs.configure.outputs.REPOTITLE_LOWERCASE }}

- name: Inspect container images
run: tree ./singularity_container_images | tee ./container_initial

- name: Count the downloaded number of container images
id: count_initial
run: |
image_count=$(ls -1 ./singularity_container_images | wc -l | xargs)
echo "Initial container image count: $image_count"
echo "IMAGE_COUNT_INITIAL=$image_count" >> ${GITHUB_ENV}
echo "IMAGE_COUNT_INITIAL=$image_count" >> "$GITHUB_OUTPUT"

- name: Run the downloaded pipeline (stub)
id: stub_run_pipeline
continue-on-error: true
env:
NXF_SINGULARITY_CACHEDIR: ./singularity_container_images
NXF_SINGULARITY_HOME_MOUNT: true
run: nextflow run ./${{ env.REPOTITLE_LOWERCASE }}/$( sed 's/\W/_/g' <<< ${{ env.REPO_BRANCH }}) -stub -profile test,singularity --outdir ./results
run: nextflow run ./${{needs.configure.outputs.REPOTITLE_LOWERCASE }}/$( sed 's/\W/_/g' <<< ${{ needs.configure.outputs.REPO_BRANCH }}) -stub -profile test,singularity --outdir ./results
- name: Run the downloaded pipeline (stub run not supported)
id: run_pipeline
if: ${{ job.steps.stub_run_pipeline.status == failure() }}
if: ${{ steps.stub_run_pipeline.outcome == 'failure' }}
env:
NXF_SINGULARITY_CACHEDIR: ./singularity_container_images
NXF_SINGULARITY_HOME_MOUNT: true
run: nextflow run ./${{ env.REPOTITLE_LOWERCASE }}/$( sed 's/\W/_/g' <<< ${{ env.REPO_BRANCH }}) -profile test,singularity --outdir ./results
run: nextflow run ./${{ needs.configure.outputs.REPOTITLE_LOWERCASE }}/$( sed 's/\W/_/g' <<< ${{ needs.configure.outputs.REPO_BRANCH }}) -profile test,singularity --outdir ./results

- name: Count the downloaded number of container images
id: count_afterwards
run: |
image_count=$(ls -1 ./singularity_container_images | wc -l | xargs)
echo "Post-pipeline run container image count: $image_count"
echo "IMAGE_COUNT_AFTER=$image_count" >> ${GITHUB_ENV}
echo "IMAGE_COUNT_AFTER=$image_count" >> "$GITHUB_OUTPUT"

- name: Compare container image counts
run: |
if [ "${{ env.IMAGE_COUNT_INITIAL }}" -ne "${{ env.IMAGE_COUNT_AFTER }}" ]; then
initial_count=${{ env.IMAGE_COUNT_INITIAL }}
final_count=${{ env.IMAGE_COUNT_AFTER }}
if [ "${{ steps.count_initial.outputs.IMAGE_COUNT_INITIAL }}" -ne "${{ steps.count_afterwards.outputs.IMAGE_COUNT_AFTER }}" ]; then
initial_count=${{ steps.count_initial.outputs.IMAGE_COUNT_INITIAL }}
final_count=${{ steps.count_afterwards.outputs.IMAGE_COUNT_AFTER }}
difference=$((final_count - initial_count))
echo "$difference additional container images were \n downloaded at runtime . The pipeline has no support for offline runs!"
tree ./singularity_container_images
tree ./singularity_container_images > ./container_afterwards
diff ./container_initial ./container_afterwards
exit 1
else
echo "The pipeline can be downloaded successfully!"
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/linting_comment.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Download lint results
uses: dawidd6/action-download-artifact@80620a5d27ce0ae443b965134db88467fc607b43 # v7
uses: dawidd6/action-download-artifact@20319c5641d495c8a52e688b7dc5fada6c3a9fbc # v8
with:
workflow: linting.yml
workflow_conclusion: completed
Expand Down
33 changes: 0 additions & 33 deletions .github/workflows/release-announcements.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,39 +27,6 @@ jobs:

${{ steps.get_topics.outputs.topics }} #nfcore #openscience #nextflow #bioinformatics

send-tweet:
runs-on: ubuntu-latest

steps:
- uses: actions/setup-python@0b93645e9fea7318ecaed2b359559ac225c90a2b # v5
with:
python-version: "3.10"
- name: Install dependencies
run: pip install tweepy==4.14.0
- name: Send tweet
shell: python
run: |
import os
import tweepy

client = tweepy.Client(
access_token=os.getenv("TWITTER_ACCESS_TOKEN"),
access_token_secret=os.getenv("TWITTER_ACCESS_TOKEN_SECRET"),
consumer_key=os.getenv("TWITTER_CONSUMER_KEY"),
consumer_secret=os.getenv("TWITTER_CONSUMER_SECRET"),
)
tweet = os.getenv("TWEET")
client.create_tweet(text=tweet)
env:
TWEET: |
Pipeline release! ${{ github.repository }} v${{ github.event.release.tag_name }} - ${{ github.event.release.name }}!

Please see the changelog: ${{ github.event.release.html_url }}
TWITTER_CONSUMER_KEY: ${{ secrets.TWITTER_CONSUMER_KEY }}
TWITTER_CONSUMER_SECRET: ${{ secrets.TWITTER_CONSUMER_SECRET }}
TWITTER_ACCESS_TOKEN: ${{ secrets.TWITTER_ACCESS_TOKEN }}
TWITTER_ACCESS_TOKEN_SECRET: ${{ secrets.TWITTER_ACCESS_TOKEN_SECRET }}

bsky-post:
runs-on: ubuntu-latest
steps:
Expand Down
2 changes: 1 addition & 1 deletion .nf-core.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ lint:
- assets/nf-core-pairgenomealign_logo_light.png
- docs/images/nf-core-pairgenomealign_logo_light.png
- docs/images/nf-core-pairgenomealign_logo_dark.png
nf_core_version: 3.1.0
nf_core_version: 3.2.0
repository_type: pipeline
template:
author: charles-plessy
Expand Down
2 changes: 1 addition & 1 deletion .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ repos:
- [email protected]

- repo: https://github.com/editorconfig-checker/editorconfig-checker.python
rev: "3.0.3"
rev: "3.1.2"
hooks:
- id: editorconfig-checker
alias: ec
1 change: 1 addition & 0 deletions .prettierignore
Original file line number Diff line number Diff line change
Expand Up @@ -10,3 +10,4 @@ testing/
testing*
*.pyc
bin/
ro-crate-metadata.json
58 changes: 55 additions & 3 deletions CHANGELOG.md
charles-plessy marked this conversation as resolved.
Show resolved Hide resolved
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,66 @@
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.0.0](https://github.com/nf-core/pairgenomealign/releases/tag/2.0.0) "Naga imo" - [January 31st, 2025]

### `Breaking changes`

- The LAST software was updated and it has new defaults for some of its
parameters. The alignments ran with this pipeline will not be identical to
the ones from older versions.

### `Added`

- The `alignment/lastdb` directory is not output anymore. It consumed space,
is not usually needed for downstream analysis, and can be re-computed
identically if needed.
- The _many-to-one_ alignment file is not output anymore by default, to save
space. To keep this file, you can run the pipeline in `many-to-many` mode
with the `--m2m` parameter.
- The `--seed` parameter allows for all the existing values in the `lastdb`
program.
- Errors caused by absence of alignments at training or plotting steps
are now ignored.
- New parameter `--export_aln_to` that creates additional files containing
the alignments in a different format such as Axt, Chain, GFF or SAM.

### `Fixed`

- Incorrect detection of regions with 10 or more `N`s was corrected ([#18](https://github.com/nf-core/pairgenomealign/issues/18)).
- The `--lastal_params` now works as intended instead of being ignored ([#22](https://github.com/nf-core/pairgenomealign/issues/22)).
- The _workflow summary_ is now properly sorted at the end of the MultiQC report ([#32](https://github.com/nf-core/pairgenomealign/issues/32)).

### `Parameters`

| Old parameter | New parameter |
| ------------- | ----------------- |
| | `--export_aln_to` |

### `Dependencies`

| Dependency | Old version | New version |
| ---------- | ----------- | ----------- |
| `LAST` | 1542 | 1608 |
| `MultiQC` | 1.25.1 | 1.27 |

## [v1.1.1](https://github.com/nf-core/pairgenomealign/releases/tag/1.1.1) "Kani nabe" - [December 17th, 2024]

This release brings the pipeline to the standards of Nextflow 24.10.1 and
nf-core 3.1.0. No changes were made to the alignment process.
### `Fixed`

- This release brings the pipeline to the standards of Nextflow 24.10.1 and
nf-core 3.1.0.

## [v1.1.0](https://github.com/nf-core/pairgenomealign/releases/tag/1.1.0) "Nattou maki" - [September 27th, 2024]

Added a new `softmask` parameter, to optionally keep original softmasking.
### `Added`

- Added a new `softmask` parameter, to optionally keep original softmasking.

### `Parameters`

| Old parameter | New parameter |
| ------------- | ------------- |
| | `--softmask` |

## [v1.0.0](https://github.com/nf-core/pairgenomealign/releases/tag/1.0.0) "Sweet potato" - [August 27th, 2024]

Expand Down
2 changes: 1 addition & 1 deletion LICENSE
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
MIT License

Copyright (c) charles-plessy
Copyright (c) The nf-core/pairgenomealign team

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
Expand Down
7 changes: 7 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,13 @@

![Tubemap workflow summary](docs/images/pairgenomealign-tubemap.png "Tubemap workflow summary")

The main steps of the pipeline are:

1. Genome QC ([`assembly-scan`](https://github.com/rpetit3/assembly-scan)).
2. Genome indexing ([`lastdb`](https://gitlab.com/mcfrith/last/-/blob/main/doc/lastdb.rst)).
3. Genome pairwise alignments ([`lastal`](https://gitlab.com/mcfrith/last/-/blob/main/doc/lastal.rst)).
4. Alignment plotting ([`last-dotplot`](https://gitlab.com/mcfrith/last/-/blob/main/doc/last-dotplot.rst)).

The pipeline can generate four kinds of outputs, called _many-to-many_, _many-to-one_, _one-to-many_ and _one-to-one_, depending on whether sequences of one genome are allowed match the other genome multiple times or not.

These alignments are output in [MAF](https://genome.ucsc.edu/FAQ/FAQformat.html#format5) format, and optional line plot representations are output in PNG format.
Expand Down
4 changes: 2 additions & 2 deletions assets/multiqc_config.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
report_comment: >
This report has been generated by the <a href="https://github.com/nf-core/pairgenomealign/releases/tag/1.1.1"
This report has been generated by the <a href="https://github.com/nf-core/pairgenomealign/releases/tag/2.0.0"
target="_blank">nf-core/pairgenomealign</a> analysis pipeline. For information about
how to interpret these results, please see the <a href="https://nf-co.re/pairgenomealign/1.1.1/docs/output"
how to interpret these results, please see the <a href="https://nf-co.re/pairgenomealign/2.0.0/docs/output"
target="_blank">documentation</a>.
report_section_order:
"nf-core-pairgenomealign-methods-description":
Expand Down
32 changes: 22 additions & 10 deletions conf/modules.config
Original file line number Diff line number Diff line change
Expand Up @@ -19,11 +19,11 @@ process {
]

withName: CUTN_TARGET {
ext.args = { "-n 10" }
ext.args = { "-n 10 -p 100000" }
}

withName: CUTN_QUERY {
ext.args = { "-n 10" }
ext.args = { "-n 10 -p 100000" }
}

withName: 'ALIGNMENT_LASTDB' {
Expand All @@ -33,18 +33,16 @@ process {
// -c: soft-mask lowercase letters
// -S2: index both strands
ext.args = { "${params.softmask=="tantan" ? '-R01' : '-R11'} -c -u${params.seed} -S2" }
publishDir = [
enabled: false
]
}

withName: 'ALIGNMENT_SPLIT_O2M' {
ext.prefix = { "${meta.id}.o2m_aln" }
ext.args = { "--reverse -m${params.last_split_mismap}" }
}

withName: 'ALIGNMENT_DOTPLOT_O2M' {
ext.prefix = { "${meta.id}.o2m_plt" }
ext.args = { "--rot2=h --sort2=3 --strands2=1 ${params.dotplot_options}" }
}

withName: 'ALIGNMENT_SPLIT_M2O' {
ext.prefix = { "${meta.id}.m2o_aln" }
ext.args = { "-m${params.last_split_mismap}" }
Expand All @@ -56,32 +54,46 @@ process {
}

withName: 'ALIGNMENT_TRAIN' {
// If the training step fails, it is likely that there are no
// alignments to be found with the selected seed. Ignore and therefore
// skip alignments instead of crashing the pipeline.
errorStrategy = { task.exitStatus in (130..145) ? 'retry' : task.exitStatus == 1 ? 'ignore' : 'finish' }
ext.args = { "--revsym ${params.lastal_args}" }
}

withName: 'ALIGNMENT_LASTAL_M2O' {
ext.prefix = { "${meta.id}.m2o_aln" }
ext.args = { "--split-f=MAF+ ${params.lastal_args} ${params.lastal_extr_args}" }
publishDir = [
enabled: false
]
}

withName: 'ALIGNMENT_LASTAL_M2M' {
ext.prefix = { "${meta.id}.m2m_aln" }
ext.args = { "${params.lastal_args} ${params.lastal_extr_args}" }
}

withName: 'LAST_DOTPLOT' {
// The number one cause of failure is absence of alignments.
errorStrategy = { task.exitStatus in (130..145) ? 'retry' : task.exitStatus == 1 ? 'ignore' : 'finish' }
ext.args = { "--rot2=h --sort2=3 --strands2=1 ${params.dotplot_options}" }
}

withName: 'ALIGNMENT_DOTPLOT_O2O' {
ext.prefix = { "${meta.id}.o2o_plt" }
ext.args = { "--rot2=h --sort2=3 --strands2=1 ${params.dotplot_options}" }
}

withName: 'ALIGNMENT_DOTPLOT_M2O' {
ext.prefix = { "${meta.id}.m2o_plt" }
ext.args = { "--rot2=h --sort2=3 --strands2=1 ${params.dotplot_options}" }
}

withName: 'ALIGNMENT_DOTPLOT_O2M' {
ext.prefix = { "${meta.id}.o2m_plt" }
}

withName: 'ALIGNMENT_DOTPLOT_M2M' {
ext.prefix = { "${meta.id}.m2m_plt" }
ext.args = { "--rot2=h --sort2=3 --strands2=1 ${params.dotplot_options}" }
}

withName: 'MULTIQC' {
Expand Down
Binary file modified docs/images/pairgenomealign-tubemap.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Loading