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

v1.0.1 #5

Merged
merged 9 commits into from
Jun 26, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
15 changes: 15 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,21 @@
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.0.1 - [26-06-2023]

### `Fixed`

- [#4](https://github.com/nf-core/marsseq/issues/4) - Fix AWS testing with s3 bucket
- missing zenodo in `lib/`
- added credit and provided short MARS-seq description

## v1.0.0 - [21-06-2023]

### `Dependencies`

- Bump minimal Nextflow version to 23.04.0
- sync with template 2.8

## v1.0dev - [date]

Initial release of nf-core/marsseq, created with the [nf-core](https://nf-co.re/) template.
Expand Down
3 changes: 1 addition & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,7 @@

## Introduction

**nf-core/marsseq** is a bioinformatics pipeline for MARS-seq v2.0 preprocessing pipeline. As an additional work we have developed custom set of scripts to run velocity inference using `StarSolo`.
We do so by converting the raw reads into 10X v2 format.
**nf-core/marsseq** is a bioinformatics single-cell preprocessing pipeline for MARS-seq v2.0 experiments. MARS-seq is a plate-based technique that can be combined with FACS in order to study rare populations of cells. On top of the pre-existing pipeline, we have developed an RNA velocity workflow that can be used to study cell dynamics using `StarSolo`. We do so by converting the raw FASTQ reads into 10X v2 format.

![Workflow](docs/images/workflow.png)

Expand Down
2 changes: 2 additions & 0 deletions bin/demultiplex.pl
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
#!/usr/bin/env perl
# Adapted source code from
# https://tanaylab.github.io/old_resources/pages/672.html
use strict;

if ($#ARGV == 0 and $ARGV[0] eq "--version") {
Expand Down
2 changes: 2 additions & 0 deletions bin/extract_labels.pl
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
#!/usr/bin/env perl
# Adapted source code from
# https://tanaylab.github.io/old_resources/pages/672.html
use strict;

if ($#ARGV == 0 and $ARGV[0] eq "--version") {
Expand Down
2 changes: 2 additions & 0 deletions bin/qc_align.r
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
#!/usr/bin/env Rscript
# Adapted source code from
# https://tanaylab.github.io/old_resources/pages/672.html

args = commandArgs(trailingOnly = TRUE)

Expand Down
2 changes: 2 additions & 0 deletions bin/qc_batch.r
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
#!/usr/bin/env Rscript
# Adapted source code from
# https://tanaylab.github.io/old_resources/pages/672.html
suppressMessages(library(MASS))
suppressMessages(library(gplots))
suppressMessages(library(zoo))
Expand Down
2 changes: 2 additions & 0 deletions bin/qc_report.r
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
#!/usr/bin/env Rscript
# Adapted source code from
# https://tanaylab.github.io/old_resources/pages/672.html
suppressMessages(library(gplots))

get_stats_per_seq_batch = function(seq_batch) {
Expand Down
5 changes: 2 additions & 3 deletions lib/WorkflowMain.groovy
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,8 @@ class WorkflowMain {
//
public static String citation(workflow) {
return "If you use ${workflow.manifest.name} for your analysis please cite:\n\n" +
// TODO nf-core: Add Zenodo DOI for pipeline after first release
//"* The pipeline\n" +
//" https://doi.org/10.5281/zenodo.XXXXXXX\n\n" +
"* The pipeline\n" +
" https://doi.org/10.5281/zenodo.8063539\n\n" +
"* The nf-core framework\n" +
" https://doi.org/10.1038/s41587-020-0439-x\n\n" +
"* Software dependencies\n" +
Expand Down
21 changes: 12 additions & 9 deletions modules/local/prepare/main.nf
Original file line number Diff line number Diff line change
Expand Up @@ -17,16 +17,19 @@ process PREPARE {
'biocontainers/mulled-v2-0bcca2890a3ab7be29a83e813a02d340d6f54660:4cb478c6e57df2ef85ea5f8eae6d717c017962cd-0' }"

input:
tuple val(meta), path(reads)
path(amp_batches)
path(seq_batches)
path(well_cells)
path(gtf)
path(ercc_regions)
tuple val(meta), path(reads)

output:
path "amp_batches.txt" , emit: amp_batches
path "gene_intervals.txt" , emit: gene_intervals
path "seq_batches.txt" , emit: seq_batches
path "wells_cells.txt" , emit: wells_cells
path "versions.yml" , emit: versions
path "amp_batches.txt" , emit: amp_batches
path "gene_intervals.txt", emit: gene_intervals
path "seq_batches.txt" , emit: seq_batches
path "wells_cells.txt" , emit: wells_cells
path "versions.yml" , emit: versions

when:
task.ext.when == null || task.ext.when
Expand All @@ -35,9 +38,9 @@ process PREPARE {
"""
prepare_pipeline.py \\
--batch ${meta.id} \\
--amp_batches ${meta.amp_batches} \\
--seq_batches ${meta.seq_batches} \\
--well_cells ${meta.well_cells} \\
--amp_batches $amp_batches \\
--seq_batches $seq_batches \\
--well_cells $well_cells \\
--gtf $gtf \\
--output .
cat $ercc_regions >> gene_intervals.txt
Expand Down
2 changes: 1 addition & 1 deletion nextflow.config
Original file line number Diff line number Diff line change
Expand Up @@ -226,7 +226,7 @@ manifest {
description = """MARS-seq v2 preprocessing pipeline"""
mainScript = 'main.nf'
nextflowVersion = '!>=23.04.0'
version = '1.0.0'
version = '1.0.1'
doi = ''
}

Expand Down
16 changes: 13 additions & 3 deletions subworkflows/local/prepare_pipeline.nf
Original file line number Diff line number Diff line change
Expand Up @@ -8,20 +8,30 @@ include { FASTP_SPLIT } from '../../modules/local/fastp/split/main'

workflow PREPARE_PIPELINE {
take:
batches // channel: [ val(meta), [ reads ] ]
amp_batches // channel: amp_batch
seq_batches // channel: seq_batch
well_cells // channel: well_cells
gtf // channel: gtf
ercc_regions // channel: ercc_regions
reads // channel: [ val(meta), [ reads ] ]

main:
ch_reads = Channel.empty()
ch_versions = Channel.empty()

// convert XLS metadata into txt format
PREPARE ( batches, gtf, ercc_regions )
PREPARE (
amp_batches,
seq_batches,
well_cells,
gtf,
ercc_regions,
reads
)
ch_versions = ch_versions.mix(PREPARE.out.versions)

// split fastq reads by predefined number of reads per fastq file
ch_reads = FASTP_SPLIT ( batches ).reads
ch_reads = FASTP_SPLIT ( reads ).reads
ch_versions = ch_versions.mix(FASTP_SPLIT.out.versions)

// verify that split was performed correctly
Expand Down
9 changes: 8 additions & 1 deletion workflows/marsseq.nf
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,14 @@ workflow MARSSEQ {
)
ch_versions = ch_versions.mix(FASTQC.out.versions)

PREPARE_PIPELINE ( INPUT_CHECK.out.reads, ch_gtf, ch_ercc_regions )
PREPARE_PIPELINE (
INPUT_CHECK.out.reads.map { it[0].amp_batches },
INPUT_CHECK.out.reads.map { it[0].seq_batches },
INPUT_CHECK.out.reads.map { it[0].well_cells },
ch_gtf,
ch_ercc_regions,
INPUT_CHECK.out.reads
)
ch_versions = ch_versions.mix(PREPARE_PIPELINE.out.versions)

LABEL_READS (
Expand Down