Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
202 commits
Select commit Hold shift + click to select a range
f4542b5
started building modules local, started on subworkflows
CaroAMN Jun 3, 2024
df4793e
testing docker container
CaroAMN Jul 2, 2024
8304298
add intensity module
CaroAMN Aug 5, 2024
972c897
module:intensity, input/output fix
CaroAMN Aug 9, 2024
cadfd96
testing
CaroAMN Aug 14, 2024
84bc7bd
testing
CaroAMN Aug 14, 2024
881dd10
added second module align
CaroAMN Aug 20, 2024
abc5470
added third module stitching
CaroAMN Aug 20, 2024
5fc80d6
update readme, added 2 local modules resample + register
CaroAMN Aug 21, 2024
0e1e94e
update readme, added metromap
CaroAMN Aug 21, 2024
c20148f
update
CaroAMN Aug 21, 2024
fa7aaa3
update
CaroAMN Aug 21, 2024
d26aeca
update metromap, adding resampling module
CaroAMN Aug 21, 2024
cb2c23b
preprocessing basic workflow implementation
CaroAMN Sep 23, 2024
b062bd7
clean up
CaroAMN Sep 23, 2024
9ea1737
Update README.md
CaroAMN Sep 27, 2024
aeb564e
resample module added
CaroAMN Sep 27, 2024
f28b7c0
update readme
CaroAMN Sep 27, 2024
00f5a3e
Merge pull request #4 from qbic-pipelines/tmp
CaroAMN Sep 27, 2024
46b0eed
added registration module
CaroAMN Oct 2, 2024
36a8e86
update workflow logic, emit statements of modules
CaroAMN Nov 13, 2024
fcf25ee
update moduel output paths
CaroAMN Nov 13, 2024
d5bf6fa
update
CaroAMN Dec 20, 2024
fe5a930
update workflow
CaroAMN Jan 8, 2025
e31da22
removed redundant file parsing
CaroAMN Jan 23, 2025
c3dea04
added: sample_sheet for processing multiple samples + workflow logic …
CaroAMN Jan 28, 2025
9e25dea
clean up + publishing results per sample
CaroAMN Jan 29, 2025
c4868ed
Merge pull request #5 from qbic-pipelines/dev_preprocessing
CaroAMN Jan 29, 2025
ccfa907
pulling container from quay.io
CaroAMN Jan 30, 2025
a1211ed
numorph preprocessing as subworkflow
CaroAMN Jan 30, 2025
0d89496
added resample module
CaroAMN Feb 2, 2025
487e960
bug fix registration module + added into the full lsmquant workflow. …
CaroAMN Feb 13, 2025
88771f4
updated
CaroAMN Feb 16, 2025
c996cef
Template update for nf-core/tools version 3.2.0
CaroAMN Feb 16, 2025
71ded30
template update
CaroAMN Feb 16, 2025
3b0ad7c
formating
CaroAMN Feb 16, 2025
3b8791e
formating
CaroAMN Feb 16, 2025
91e0fea
delet nfvalidation, update nextflow_schema with new pipeline params, …
CaroAMN Feb 16, 2025
118a316
fix nf-schema
CaroAMN Feb 17, 2025
5b5954b
Merge pull request #6 from CaroAMN/dev
CaroAMN Feb 17, 2025
2838cd9
added stubs
CaroAMN Feb 18, 2025
20ad524
started to setup nf-test tests with stub, + bug fix in stitched chan…
CaroAMN Feb 20, 2025
a09868e
stub tests for all modules
CaroAMN Feb 20, 2025
971a211
Merge pull request #7 from CaroAMN/dev
CaroAMN Feb 20, 2025
bafec4a
module for matlab file conversion
CaroAMN Feb 21, 2025
6e93cc7
adding subworklfow test
CaroAMN Feb 21, 2025
2af8f46
Merge pull request #8 from CaroAMN/dev
CaroAMN Feb 21, 2025
2044680
update process resources for full data run
CaroAMN Feb 27, 2025
59fd829
update
CaroAMN Mar 19, 2025
40f8e68
test profile with zip archive data downloaded from zenodo
CaroAMN Mar 20, 2025
034eee8
ara registration as subworkflow
CaroAMN Mar 20, 2025
9481dc5
mat2json module in preprocessing subworkflow
CaroAMN Mar 21, 2025
e708461
Merge pull request #9 from CaroAMN/dev
CaroAMN Mar 21, 2025
f4f7c63
updated test profile with test data on the test-data repository, upda…
CaroAMN Mar 24, 2025
e466eca
Merge pull request #10 from CaroAMN/dev
CaroAMN Mar 24, 2025
3304111
bug fix in mat2json output + new metromap
CaroAMN Apr 1, 2025
cfab1b5
update output docs
CaroAMN Apr 2, 2025
0be42aa
update output docs
CaroAMN Apr 2, 2025
1948a40
update usage + parameter_template file added
CaroAMN Apr 2, 2025
2dc5613
Merge pull request #11 from CaroAMN/dev
CaroAMN Apr 2, 2025
44df04e
new module for segmentation + gpu lable for segmentation process
CaroAMN May 9, 2025
4eca6bf
update params_template, update documentation
CaroAMN May 16, 2025
4c3dde9
fix numorph3dunet output + gpu access
CaroAMN May 19, 2025
3ba469c
adding nf-test-gpu.yml
CaroAMN May 20, 2025
aed2dcb
fix toll versions, excluding segmentation from test profile, update docs
CaroAMN May 23, 2025
10e1fc9
Merge pull request #13 from CaroAMN/dev
CaroAMN May 23, 2025
8dae5b2
Merged changes from nf-core template
CaroAMN May 23, 2025
0041852
Merge pull request #14 from CaroAMN/merging-template-updates
CaroAMN May 23, 2025
ccef730
bug fix from template merge
CaroAMN May 27, 2025
42a5271
adding default.nf.test + github actions, small version fix in stitchn…
CaroAMN May 27, 2025
4d9f106
fix typo
CaroAMN May 27, 2025
68b2369
fix typo in directory
CaroAMN May 27, 2025
cf37f53
change absolute to relative paths
CaroAMN May 28, 2025
680c351
update relative paths
CaroAMN May 28, 2025
13e090c
update relative paths
CaroAMN May 28, 2025
39b417f
update relative paths
CaroAMN May 28, 2025
1914633
update relative paths
CaroAMN May 28, 2025
e647411
update relative paths
CaroAMN May 28, 2025
bd01191
update relative paths
CaroAMN May 28, 2025
ca3fd31
update relative paths
CaroAMN May 28, 2025
5386b08
update relative paths
CaroAMN May 28, 2025
da3f2fe
update relative paths
CaroAMN May 28, 2025
e784238
update relative paths
CaroAMN May 28, 2025
12289f5
update
CaroAMN May 28, 2025
e9a9704
using stageAs
CaroAMN May 28, 2025
adec148
using stageAs update
CaroAMN May 28, 2025
c429a8e
using stageAs update
CaroAMN May 28, 2025
cc4f955
update: convert symlinks
CaroAMN Jun 4, 2025
f291a06
test relative paths with new image and matlab application
CaroAMN Jun 5, 2025
0b504e3
test output paths
CaroAMN Jun 5, 2025
e6199e1
update nf-test config
CaroAMN Jun 13, 2025
9394f3f
update nf-test with stub tests, nf-test ci only stub tests, cache fix…
CaroAMN Jun 18, 2025
3cec0ad
test without stub
CaroAMN Jun 18, 2025
bc0adf4
stub tests only
CaroAMN Jun 20, 2025
2fdf046
nf-test main/stub for intensity module
CaroAMN Jun 20, 2025
58cbfa9
nf-tests update
CaroAMN Jun 20, 2025
fac5f79
ignore stub tests from modules/subworkflows local
CaroAMN Jun 25, 2025
856ea25
update pipeline test data base path
CaroAMN Jun 25, 2025
70af6fc
Merge pull request #18 from CaroAMN/dev
CaroAMN Jun 25, 2025
f2a2794
Merged changes from nf-core template
CaroAMN Jun 26, 2025
cc0bc58
Merge branch 'dev' into merging-template-updates
CaroAMN Jun 26, 2025
2cc9c95
fix ro-crate-metadata.json
CaroAMN Jun 26, 2025
09583fd
pre-commit update
CaroAMN Jun 26, 2025
a21f43e
update pre-commit changes
CaroAMN Jun 26, 2025
901aeb9
Merge pull request #2 from CaroAMN/merging-template-updates
CaroAMN Jun 26, 2025
00f089b
only stub tests
CaroAMN Jun 26, 2025
349d267
Merge pull request #19 from CaroAMN/dev
CaroAMN Jun 26, 2025
040d5c0
added stub test for local numorphunet-module
CaroAMN Jun 27, 2025
fd0059c
Merge pull request #20 from CaroAMN/dev
CaroAMN Jun 27, 2025
5fffa29
update
CaroAMN Jul 3, 2025
e941602
path fix for test data
CaroAMN Jul 15, 2025
356e9dd
path fix for test data
CaroAMN Jul 15, 2025
72cb1ec
path fix for test data
CaroAMN Jul 15, 2025
19d4100
path fix for test data
CaroAMN Jul 15, 2025
427cce9
update file path to the right file for shards
CaroAMN Jul 21, 2025
1451070
update
CaroAMN Jul 21, 2025
7956595
fix linting
CaroAMN Aug 19, 2025
c9f1758
update nextflow_schema with new parameter
CaroAMN Aug 19, 2025
119aca6
gpu test
CaroAMN Aug 19, 2025
0bb7a66
testing gpu access
CaroAMN Aug 20, 2025
b3677c2
unet test with new minimal test dataset, updated setup method
CaroAMN Aug 22, 2025
ca094e7
Merge pull request #21 from CaroAMN/dev
CaroAMN Aug 22, 2025
bb29d0e
Merged changes from nf-core template
CaroAMN Aug 25, 2025
1d168a6
update ro-crate-metadata.json
CaroAMN Aug 25, 2025
559f6c5
update nextflow version manually for GPU tests
CaroAMN Aug 25, 2025
9822d46
update nextflow version manually for GPU tests
CaroAMN Aug 25, 2025
7c56103
linting
CaroAMN Aug 25, 2025
6e9fa82
Merge pull request #24 from CaroAMN/merging-template-updates
CaroAMN Aug 25, 2025
24e51d8
linting
CaroAMN Aug 26, 2025
ec893f1
Merge pull request #25 from CaroAMN/dev
CaroAMN Aug 26, 2025
94e0e36
update pipeline level test
CaroAMN Aug 27, 2025
ab0542d
update subworkflows + modules, update meta.yml of numorph subworkflows
CaroAMN Aug 27, 2025
44543df
update stub pipeline test
CaroAMN Aug 27, 2025
48e6e39
update snapshots pipeline level tests, update config files
CaroAMN Aug 27, 2025
bb0c650
update pipeline level test + snapshot
CaroAMN Aug 28, 2025
500cea6
update preprocess snapshots
CaroAMN Aug 29, 2025
b8ae277
update all modules and subworkflow tests
CaroAMN Aug 29, 2025
4806886
update snapshots + nftignore
CaroAMN Aug 29, 2025
0e634df
update test config
CaroAMN Aug 30, 2025
fe77cd4
update config
CaroAMN Aug 30, 2025
1c80693
update test profile
CaroAMN Sep 1, 2025
a5494c3
update snapshot pipeline level tests
CaroAMN Sep 1, 2025
2b23657
fix nf-test-gpu.yml
CaroAMN Sep 1, 2025
4c943b0
update modules + container images
CaroAMN Sep 2, 2025
8f8b5f1
update nftignore, subworkflow(test)
CaroAMN Sep 3, 2025
f37b9bb
debug statements
CaroAMN Sep 4, 2025
7406876
profile gpu in test file
CaroAMN Sep 4, 2025
7393310
profile test,gpu in test file
CaroAMN Sep 4, 2025
70c77b5
remove nextflow config in test
CaroAMN Sep 4, 2025
669b9ac
config file
CaroAMN Sep 4, 2025
165b3c4
add gpu profile to test
CaroAMN Sep 5, 2025
4b41cb6
reset profiles in default test + add svg metromap +hirse promo badge
CaroAMN Sep 5, 2025
27f44f1
profile test in test script, deleted obsolete config test_gpu
CaroAMN Sep 11, 2025
7fdbd45
lint
CaroAMN Sep 11, 2025
61f7e6d
add nextflow debug var and get conatiner launch information...
CaroAMN Sep 11, 2025
afd820f
find nextflow log on ci
CaroAMN Sep 11, 2025
4159eeb
removed pwd + resolved symlinks for registration and resampling modul…
CaroAMN Sep 22, 2025
debb80e
Merge pull request #26 from CaroAMN/dev
CaroAMN Sep 22, 2025
cb0df5d
adjusted mat2json process
CaroAMN Sep 23, 2025
f40b910
added container runoptions to gpu process tag, deleted gpu test profi…
CaroAMN Sep 24, 2025
b1ccb97
update snapshots + exclude unused params from base config
CaroAMN Sep 24, 2025
de2600c
update snapshot and test
CaroAMN Sep 24, 2025
77a1d03
update snapshot
CaroAMN Sep 24, 2025
bbbd6a5
Merge pull request #28 from CaroAMN/dev
CaroAMN Sep 24, 2025
22483ed
new container for preprocessing, adjusting symlinks for files, fixing…
CaroAMN Oct 7, 2025
b533a26
fix for test profile: raw images wont get copied into the work dir fo…
CaroAMN Oct 9, 2025
e2c4da1
adding staging module into main workflow
CaroAMN Oct 9, 2025
ecd6ace
cleanup
CaroAMN Oct 9, 2025
1afc76b
new container image
CaroAMN Oct 17, 2025
ccb723e
adding multiqc + update workflow with file staging module
CaroAMN Oct 17, 2025
a58bbd3
update snapshot
CaroAMN Oct 17, 2025
7529b76
update snapshot + nftignore
CaroAMN Oct 23, 2025
ac531d7
now use the container from nf-core quay io
CaroAMN Oct 23, 2025
667c394
adjusted docs
CaroAMN Oct 28, 2025
67c8e0a
update readme
CaroAMN Oct 28, 2025
dcc6f68
fix ro-crate
CaroAMN Oct 28, 2025
8633750
Merge pull request #30 from CaroAMN/dev
CaroAMN Oct 28, 2025
df24526
bump version + cleanup + multiqc update
CaroAMN Oct 29, 2025
3fdef49
update snapshot
CaroAMN Oct 29, 2025
a7836f8
update snapshot
CaroAMN Oct 29, 2025
0ab9428
Merge pull request #32 from CaroAMN/dev
CaroAMN Nov 4, 2025
97adbc0
adding larger volume to nf-test+ deleting stub tag, clean nf-test-gpu…
CaroAMN Nov 6, 2025
d0d8528
Merge pull request #34 from CaroAMN/dev
CaroAMN Nov 6, 2025
e6138cc
fix incorrect file permissions
mashehu Nov 6, 2025
c536b50
Merge pull request #35 from nf-core/fix-file-permissions
CaroAMN Nov 10, 2025
da697f7
adding citations, remove typos
CaroAMN Nov 12, 2025
b16975c
fix ro-crate
CaroAMN Nov 14, 2025
303fd84
Merge pull request #36 from CaroAMN/dev
CaroAMN Nov 14, 2025
a05934d
Apply suggestions from code review
CaroAMN Dec 19, 2025
8ae1d64
Update .github/workflows/nf-test-gpu.yml
CaroAMN Dec 23, 2025
bb73714
Apply suggestions from code review
CaroAMN Dec 23, 2025
0ba0a5a
apply suggestions from code review, typos
CaroAMN Dec 23, 2025
f88e88e
linting
CaroAMN Dec 23, 2025
9b1e779
rocrate
CaroAMN Dec 23, 2025
d7cdc00
Merge pull request #38 from CaroAMN/dev
CaroAMN Dec 29, 2025
07bf023
fix typos, add test_full
CaroAMN Jan 2, 2026
c4c7011
Merge pull request #39 from CaroAMN/dev
CaroAMN Jan 2, 2026
9a6aea9
optimizing resources, fix stagefiles for large datasets
CaroAMN Jan 2, 2026
1cdb825
update resource usage, fix input for large datasets
CaroAMN Jan 7, 2026
7addc4b
back to unzip
CaroAMN Jan 8, 2026
0fce8e5
update snapshot
CaroAMN Jan 8, 2026
fbe561a
Merge pull request #40 from CaroAMN/dev
CaroAMN Jan 8, 2026
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
1 change: 0 additions & 1 deletion .github/actions/get-shards/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,6 @@ runs:
# Default values for shard and total_shards
shard="[]"
total_shards=0

# Check if there are related tests
if echo "$nftest_output" | grep -q 'No tests to execute'; then
echo "No related tests found."
Expand Down
2 changes: 1 addition & 1 deletion .github/actions/nf-test/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,6 @@ runs:

# Save the absolute path of the test.tap file to the output
echo "tap_file_path=$(realpath test.tap)" >> $GITHUB_OUTPUT

- name: Generate test summary
if: always()
shell: bash
Expand All @@ -84,6 +83,7 @@ runs:
touch .summary_header
fi


if [ -f test.tap ]; then
while IFS= read -r line; do
if [[ $line =~ ^ok ]]; then
Expand Down
127 changes: 127 additions & 0 deletions .github/workflows/nf-test-gpu.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,127 @@
name: Run GPU nf-tests
on:
push:
branches:
- dev
pull_request:
release:
types: [published]
workflow_dispatch:
inputs:
runners:
description: "Runners to test on"
type: string
default: "gpu"

# Cancel if a newer run is started
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true

env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# renovate: datasource=github-releases depName=askimed/nf-test versioning=semver
NFT_VER: "0.9.3"
NXF_ANSI_LOG: false
NXF_SINGULARITY_CACHEDIR: ${{ github.workspace }}/.singularity
NXF_SINGULARITY_LIBRARYDIR: ${{ github.workspace }}/.singularity
# renovate: datasource=github-releases depName=nextflow-io/nextflow versioning=semver
NXF_VER: "24.10.5"

jobs:
get-shards:
runs-on:
- runs-on=${{ github.run_id }}-nf-test-get-shards-gpu
- runner=2cpu-linux-x64
name: "Get Shards"
outputs:
shard: ${{ steps.set-shards.outputs.shard }}
total_shards: ${{ steps.set-shards.outputs.total_shards }}
steps:
- name: Check out pipeline code
uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4
with:
fetch-depth: 0

- name: run nf-test-shard action
id: set-shards
uses: ./.github/actions/get-shards
env:
NFT_VER: ${{ env.NFT_VER }}
with:
tags: "gpu"
max_shards: 2

- name: Set outputs
id: set-outputs
run: |
echo "shard=${{ steps.set-shards.outputs.shard }}" >> $GITHUB_ENV
echo "total_shards=${{ steps.set-shards.outputs.total_shards }}" >> $GITHUB_ENV

nf-test-gpu:
needs: [get-shards]
runs-on: "runs-on=${{ github.run_id }}/family=g4dn.xlarge/image=ubuntu24-gpu-x64"
name: "GPU Test | ${{ matrix.profile }} | ${{ matrix.shard }} | ${{ matrix.NXF_VER }} | ${{ matrix.filters }}"
env:
NXF_VER: ${{ matrix.NXF_VER }}

# Only run on push if this is the nf-core dev branch (merged PRs)
# and number of shards is greater than 0
if: |
needs.get-shards.outputs.total_shards > 0 &&
(
github.event_name != 'push' ||
( github.event_name == 'push' && github.repository == 'nf-core/lsmquant' )
)
strategy:
fail-fast: false
matrix:
profile: [docker, singularity]
shard: ${{ fromJson(needs.get-shards.outputs.shard) }}
NXF_VER:
- "24.10.5"
filters: [pipeline]

steps:
- name: Check out pipeline code
uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4
with:
fetch-depth: 0

- name: Test CUDA
run: |
nvidia-smi -L

- name: Run nf-test Action
uses: ./.github/actions/nf-test
with:
profile: ${{ matrix.profile }},gpu
shard: ${{ matrix.shard }}
total_shards: ${{ needs.get-shards.outputs.total_shards }}
filters: ${{ matrix.filters }}
tags: "gpu"

confirm-pass:
runs-on:
- runs-on=${{ github.run_id }}-confirm-pass
- runner=2cpu-linux-x64
needs: [nf-test-gpu]
if: always()
steps:
- name: One or more tests failed
if: ${{ contains(needs.*.result, 'failure') }}
run: exit 1

- name: One or more tests cancelled
if: ${{ contains(needs.*.result, 'cancelled') }}
run: exit 1

- name: All tests ok
if: ${{ contains(needs.*.result, 'success') }}
run: exit 0

- name: debug-print
if: always()
run: |
echo "toJSON(needs) = ${{ toJSON(needs) }}"
echo "toJSON(needs.*.result) = ${{ toJSON(needs.*.result) }}"
4 changes: 3 additions & 1 deletion .github/workflows/nf-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -64,11 +64,12 @@ jobs:
runs-on: # use self-hosted runners
- runs-on=${{ github.run_id }}-nf-test
- runner=4cpu-linux-x64
- volume=80gb
strategy:
fail-fast: false
matrix:
shard: ${{ fromJson(needs.nf-test-changes.outputs.shard) }}
profile: [conda, docker, singularity]
profile: [docker, singularity]
isMain:
- ${{ github.base_ref == 'master' || github.base_ref == 'main' }}
# Exclude conda and singularity on dev
Expand Down Expand Up @@ -99,6 +100,7 @@ jobs:
profile: ${{ matrix.profile }}
shard: ${{ matrix.shard }}
total_shards: ${{ env.TOTAL_SHARDS }}
tags: "stub"

- name: Report test status
if: ${{ always() }}
Expand Down
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,5 @@ testing/
testing*
*.pyc
null/
.nf-test*
.nf-test/
Empty file modified .gitpod.yml
100644 → 100755
Empty file.
5 changes: 4 additions & 1 deletion .nf-core.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,4 +9,7 @@ template:
name: lsmquant
org: nf-core
outdir: .
version: 1.0dev
skip_features:
- fastqc
- igenomes
version: 1.0.0
34 changes: 33 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,46 @@
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).

## v1.0dev - [date]
## v1.0.0 - [date]

Initial release of nf-core/lsmquant, created with the [nf-core](https://nf-co.re/) template.

### `Added`

The main functionalities of the NuMorph toolbox are added up until the nuclei quantification via a 3DUnet

local Modules:

- numorphintensity
- numorphalign
- numorphstitch
- numorphresample
- numorphregister
- numorph3dunet
- mat2json
- stagefiles

nf-core Modules:

- multiqc
- unzipfiles

local subworkflows:

- numorphpreprocessing:
- numorphintensity
- numorphalign
- numorphstitch
- mat2json
- ara-registration
- numorphresample
- numorphregister
- mat2json

### `Fixed`

### `Dependencies`

Custom numorph container `numorphpreprocessing`, `numorphanalyze`, `mat2json`, and `numorph3dunet`are on the nf-core quay io repository. Compiled matlab application [numorph_preprocessing](https://github.com/CaroAMN/numorph_preprocessing), [mat2json](https://github.com/CaroAMN/mat2json) and the source code for the [3Dunet](https://github.com/CaroAMN/numorph_3dunet) python package are public repositories. The source code of the tools are found here [NuMorph_dev](https://github.com/CaroAMN/Numorph_dev/tree/main)

### `Deprecated`
26 changes: 17 additions & 9 deletions CITATIONS.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,23 +10,31 @@
## Pipeline tools

- [FastQC](https://www.bioinformatics.babraham.ac.uk/projects/fastqc/)
- [NuMorph](https://pubmed.ncbi.nlm.nih.gov/34644582/)

> Andrews, S. (2010). FastQC: A Quality Control Tool for High Throughput Sequence Data [Online].
> Krupa O, Fragola G, Hadden-Ford E, Mory JT, Liu T, Humphrey Z, Rees BW, Krishnamurthy A, Snider WD, Zylka MJ, Wu G, Xing L, Stein JL. NuMorph: Tools for cortical cellular phenotyping in tissue-cleared whole-brain images. Cell Rep. 2021 Oct 12;37(2):109802. doi: 10.1016/j.celrep.2021.109802. PMID: 34644582; PMCID: PMC8530274.
- [MultiQC](https://pubmed.ncbi.nlm.nih.gov/27312411/)
- [BaSiC](https://www.nature.com/articles/ncomms14836)

> Ewels P, Magnusson M, Lundin S, Käller M. MultiQC: summarize analysis results for multiple tools and samples in a single report. Bioinformatics. 2016 Oct 1;32(19):3047-8. doi: 10.1093/bioinformatics/btw354. Epub 2016 Jun 16. PubMed PMID: 27312411; PubMed Central PMCID: PMC5039924.
> Peng, T., Thorn, K., Schroeder, T. et al. A BaSiC tool for background and shading correction of optical microscopy images. Nat Commun 8, 14836 (2017). https://doi.org/10.1038/ncomms14836
## Software packaging/containerisation tools
- [elastix](https://pubmed.ncbi.nlm.nih.gov/19923044/)

> Klein S, Staring M, Murphy K, Viergever MA, Pluim JP. elastix: a toolbox for intensity-based medical image registration. IEEE Trans Med Imaging. 2010 Jan;29(1):196-205. doi: 10.1109/TMI.2009.2035616. Epub 2009 Nov 17. PMID: 19923044.
- [3DUnetCNN](https://pubmed.ncbi.nlm.nih.gov/37555134/)

- [Anaconda](https://anaconda.com)
> Ellis DG, Aizenberg MR. Structural Brain Imaging Predicts Individual-Level Task Activation Maps Using Deep Learning. Front Neuroimaging. 2022 Apr 18;1:834883. doi: 10.3389/fnimg.2022.834883. PMID: 37555134; PMCID: PMC10406267.
> Anaconda Software Distribution. Computer software. Vers. 2-2.4.0. Anaconda, Nov. 2016. Web.
[VLFeat](https://www.vlfeat.org/)

- [Bioconda](https://pubmed.ncbi.nlm.nih.gov/29967506/)
> A. Vedaldi and B. Fulkerson VLFeat: An Open and Portable Library of Computer Vision Algorithms (2008)
> Grüning B, Dale R, Sjödin A, Chapman BA, Rowe J, Tomkins-Tinch CH, Valieris R, Köster J; Bioconda Team. Bioconda: sustainable and comprehensive software distribution for the life sciences. Nat Methods. 2018 Jul;15(7):475-476. doi: 10.1038/s41592-018-0046-7. PubMed PMID: 29967506.
- [MultiQC](https://pubmed.ncbi.nlm.nih.gov/27312411/)

> Ewels P, Magnusson M, Lundin S, Käller M. MultiQC: summarize analysis results for multiple tools and samples in a single report. Bioinformatics. 2016 Oct 1;32(19):3047-8. doi: 10.1093/bioinformatics/btw354. Epub 2016 Jun 16. PubMed PMID: 27312411; PubMed Central PMCID: PMC5039924.
## Software packaging/containerisation tools

- [BioContainers](https://pubmed.ncbi.nlm.nih.gov/28379341/)

Expand Down
84 changes: 64 additions & 20 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,41 +17,76 @@
[![Launch on Seqera Platform](https://img.shields.io/badge/Launch%20%F0%9F%9A%80-Seqera%20Platform-%234256e7)](https://cloud.seqera.io/launch?pipeline=https://github.com/nf-core/lsmquant)

[![Get help on Slack](http://img.shields.io/badge/slack-nf--core%20%23lsmquant-4A154B?labelColor=000000&logo=slack)](https://nfcore.slack.com/channels/lsmquant)[![Follow on Bluesky](https://img.shields.io/badge/bluesky-%40nf__core-1185fe?labelColor=000000&logo=bluesky)](https://bsky.app/profile/nf-co.re)[![Follow on Mastodon](https://img.shields.io/badge/mastodon-nf__core-6364ff?labelColor=FFFFFF&logo=mastodon)](https://mstdn.science/@nf_core)[![Watch on YouTube](http://img.shields.io/badge/youtube-nf--core-FF0000?labelColor=000000&logo=youtube)](https://www.youtube.com/c/nf-core)
![HiRSE Code Promo Badge](https://img.shields.io/badge/Promo-8db427?style=plastic&label=HiRSE&labelColor=005aa0&link=https%3A%2F%2Fgo.fzj.de%2FCodePromo)

## Introduction

**nf-core/lsmquant** is a bioinformatics pipeline that ...
**nf-core/lsmquant** is a bioinformatics pipeline that performs preprocessing and analysis of light-sheet microscopy images of tissue cleared samples. The pipeline takes 2D single-channel 16-bit `.tif` images as input. The preprocessing consists of intesity adjustment, channel alignment, and tile stitching to reconstruct the 3D image. For mousebrain samples it offers a registration to the Allen Mouse Brain Reference Atlas for precise region annotation. Cell nuclei quantification is perfomed on the nuclear channel by a 3D-Unet.

<!-- TODO nf-core:
Complete this sentence with a 2-3 sentence summary of what types of data the pipeline ingests, a brief overview of the
major pipeline sections and the types of output it produces. You're giving an overview to someone new
to nf-core here, in 15-20 seconds. For an example, see https://github.com/nf-core/rnaseq/blob/master/README.md#introduction
-->
<div style="text-align: center;">
<img src="docs/images/lsmquant-metromap.svg" alt="lasmquant metromap">
</div>

<!-- TODO nf-core: Include a figure that guides the user through the major workflow steps. Many nf-core
workflows use the "tube map" design for that. See https://nf-co.re/docs/guidelines/graphic_design/workflow_diagrams#examples for examples. -->
<!-- TODO nf-core: Fill in short bullet-pointed list of the default steps in the pipeline -->1. Read QC ([`FastQC`](https://www.bioinformatics.babraham.ac.uk/projects/fastqc/))2. Present QC for raw reads ([`MultiQC`](http://multiqc.info/))
## Basic workflow

**Preprocessing**

1. Intensity Adjustment
2. Channel Alignment
3. Iterative Stitching

**ARA Registration**

4. ARA Registration subworkflow (optional)
5. Cell Nuclei Quantification

**Full**

1. Preprocessing
2. Nuclei quantification

## Pipeline Summary

The pipeline consists of two major workflows `preprocessing` and the `full` workflow. The `ara-regsitration` is an optional subworkflow that works only for whole mouse brain samples.

### Preprocessing

Preprocessing is performed on raw 2D single-channel 16-bit `.tif` images produced by a light sheet microscope. Three individual steps are performed:

- **Intensity adjustments** to correct for the Gaussian shape of the lightsheet and intensity differences between adjacent tiles
- **Image channel alignment** using a 2D rigid approach or a nonlinear 3D approach using Elastix.
- **Image tile stitching** via an iterative 2D stitching approach by calculating z displacements and xy translations using phase correlation and SIFT.

### Full

Quantification of cell-nuclei is performed using a 3D-Unet. It is performed on the nuclear channel only, assuming that the corresponding image file names contain the pattern `C1`.

### ARA Registration

Optional registration to the Allen Reference Atlas (ARA) for functional brain region annotation can be perfomed before segmentation.
This includes the following two steps:

- Downsampling of the high resolution stitched images
- Registration to the ARA

## Usage

> [!NOTE]
> If you are new to Nextflow and nf-core, please refer to [this page](https://nf-co.re/docs/usage/installation) on how to set-up Nextflow. Make sure to [test your setup](https://nf-co.re/docs/usage/introduction#how-to-run-a-pipeline) with `-profile test` before running the workflow on actual data.

<!-- TODO nf-core: Describe the minimum required steps to execute the pipeline, e.g. how to prepare samplesheets.
Explain what rows and columns represent. For instance (please edit as appropriate):
To run the pipeline you need to provide a samplesheet with your data in the following structure:

First, prepare a samplesheet with your input data that looks as follows:

`samplesheet.csv`:
`samplesheet.csv`

```csv
sample,fastq_1,fastq_2
CONTROL_REP1,AEG588A1_S1_L002_R1_001.fastq.gz,AEG588A1_S1_L002_R2_001.fastq.gz
sample_id,img_directory,parameter_file
TEST1,path/to/image-files,path/to/parameter/file.csv
```

Each row represents a fastq file (single-end) or a pair of fastq files (paired end).
The parameter csv file includes sample specific parameters that are used for processing the given data. It needs to follow a specific structure.

-->
Please get the basic template file [here](../assets/params_template_lsmquant.csv).
`parametersheet.csv`

Now, you can run the pipeline using:

Expand All @@ -60,8 +95,9 @@ Now, you can run the pipeline using:
```bash
nextflow run nf-core/lsmquant \
-profile <docker/singularity/.../institute> \
--input samplesheet.csv \
--outdir <OUTDIR>
--input <samplesheet.csv> \
--outdir <OUTDIR> \
--stage <stage>
```

> [!WARNING]
Expand All @@ -79,6 +115,14 @@ For more details about the output files and reports, please refer to the

nf-core/lsmquant was originally written by Carolin Schwitalla.

The pipeline is mainly based on the NuMorph (Nuclear-Based Morphometry) toolbox developed by Krupa et al., 2021.

> **NuMorph: Tools for cortical cellular phenotyping in tissue-cleared whole-brain images**
>
> Krupa O, Fragola G, Hadden-Ford E, Mory JT, Liu T, Humphrey Z, Rees BW, Krishnamurthy A, Snider WD, Zylka MJ, Wu G, Xing L, Stein JL.
>
> Cell Rep. 2021 Oct 12, doi: [10.1016/j.celrep.2021.109802](https://doi.org/10.1016%2Fj.celrep.2021.109802)

We thank the following people for their extensive assistance in the development of this pipeline:

<!-- TODO nf-core: If applicable, make list of people who have also contributed -->
Comment on lines 126 to 128
Copy link
Collaborator Author

Choose a reason for hiding this comment

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

either add people or remove this line 🙂

Expand Down
Loading
Loading