yeyuan98/rna_fish_analysis

RNA-FISH analysis snakemake workflow

Overview

Topics:

Latest release: None, Last update: 2022-09-12

Linting: linting: failed, Formatting: formatting: failed

Deployment

Step 1: Install Snakemake and Snakedeploy

Snakemake and Snakedeploy are best installed via the Mamba package manager (a drop-in replacement for conda). If you have neither Conda nor Mamba, it is recommended to install Miniforge. More details regarding Mamba can be found here.

When using Mamba, run

mamba create -c conda-forge -c bioconda --name snakemake snakemake snakedeploy

to install both Snakemake and Snakedeploy in an isolated environment. For all following commands ensure that this environment is activated via

conda activate snakemake

Step 2: Deploy workflow

With Snakemake and Snakedeploy installed, the workflow can be deployed as follows. First, create an appropriate project working directory on your system and enter it:

mkdir -p path/to/project-workdir
cd path/to/project-workdir

In all following steps, we will assume that you are inside of that directory. Then run

snakedeploy deploy-workflow https://github.com/yeyuan98/rna_fish_analysis . --tag None

Snakedeploy will create two folders, workflow and config. The former contains the deployment of the chosen workflow as a Snakemake module, the latter contains configuration files which will be modified in the next step in order to configure the workflow to your needs.

Step 3: Configure workflow

To configure the workflow, adapt config/config.yml to your needs following the instructions below.

Step 4: Run workflow

The deployment method is controlled using the --software-deployment-method (short --sdm) argument.

To run the workflow with automatic deployment of all required software via conda/mamba, use

snakemake --cores all --sdm conda

To run the workflow using apptainer/singularity, use

snakemake --cores all --sdm apptainer

To run the workflow using a combination of conda and apptainer/singularity for software deployment, use

snakemake --cores all --sdm conda apptainer

Snakemake will automatically detect the main Snakefile in the workflow subfolder and execute the workflow module that has been defined by the deployment in step 2.

For further options such as cluster and cloud execution, see the docs.

Step 5: Generate report

After finalizing your data analysis, you can automatically generate an interactive visual HTML report for inspection of results together with parameters and code inside of the browser using

snakemake --report report.zip

Configuration

The following section is imported from the workflow’s config/README.md.

General settings

Input data organization

Configuration file

Linting and formatting

Linting results

  1Lints for snakefile /tmp/tmph59bhiu5/workflow/Snakefile:
  2    * Path composition with '+' in line 3:
  3      This becomes quickly unreadable. Usually, it is better to endure some
  4      redundancy against having a more readable workflow. Hence, just repeat
  5      common prefixes. If path composition is unavoidable, use pathlib or
  6      (python >= 3.6) string formatting with f"...".
  7      Also see:
  8
  9
 10Lints for snakefile /tmp/tmph59bhiu5/workflow/rules/fishdot.smk:
 11    * Mixed rules and functions in same snakefile.:
 12      Small one-liner functions used only once should be defined as lambda
 13      expressions. Other functions should be collected in a common module, e.g.
 14      'rules/common.smk'. This makes the workflow steps more readable.
 15      Also see:
 16      https://snakemake.readthedocs.io/en/latest/snakefiles/modularization.html#includes
 17
 18Lints for snakefile /tmp/tmph59bhiu5/workflow/rules/segmentation.smk:
 19    * Mixed rules and functions in same snakefile.:
 20      Small one-liner functions used only once should be defined as lambda
 21      expressions. Other functions should be collected in a common module, e.g.
 22      'rules/common.smk'. This makes the workflow steps more readable.
 23      Also see:
 24      https://snakemake.readthedocs.io/en/latest/snakefiles/modularization.html#includes
 25
 26Lints for snakefile /tmp/tmph59bhiu5/workflow/rules/integration_summarize.smk:
 27    * Mixed rules and functions in same snakefile.:
 28      Small one-liner functions used only once should be defined as lambda
 29      expressions. Other functions should be collected in a common module, e.g.
 30      'rules/common.smk'. This makes the workflow steps more readable.
 31      Also see:
 32      https://snakemake.readthedocs.io/en/latest/snakefiles/modularization.html#includes
 33
 34Lints for rule sample_convert (line 24, /tmp/tmph59bhiu5/workflow/rules/sample_convert.smk):
 35    * No log directive defined:
 36      Without a log directive, all output will be printed to the terminal. In
 37      distributed environments, this means that errors are harder to discover.
 38      In local environments, output of concurrent jobs will be mixed and become
 39      unreadable.
 40      Also see:
 41      https://snakemake.readthedocs.io/en/stable/snakefiles/rules.html#log-files
 42
 43Lints for rule sample_singlechannel (line 17, /tmp/tmph59bhiu5/workflow/rules/sample_singlechannel.smk):
 44    * No log directive defined:
 45      Without a log directive, all output will be printed to the terminal. In
 46      distributed environments, this means that errors are harder to discover.
 47      In local environments, output of concurrent jobs will be mixed and become
 48      unreadable.
 49      Also see:
 50      https://snakemake.readthedocs.io/en/stable/snakefiles/rules.html#log-files
 51
 52Lints for rule fishdot (line 20, /tmp/tmph59bhiu5/workflow/rules/fishdot.smk):
 53    * No log directive defined:
 54      Without a log directive, all output will be printed to the terminal. In
 55      distributed environments, this means that errors are harder to discover.
 56      In local environments, output of concurrent jobs will be mixed and become
 57      unreadable.
 58      Also see:
 59      https://snakemake.readthedocs.io/en/stable/snakefiles/rules.html#log-files
 60
 61Lints for rule segmentation (line 20, /tmp/tmph59bhiu5/workflow/rules/segmentation.smk):
 62    * No log directive defined:
 63      Without a log directive, all output will be printed to the terminal. In
 64      distributed environments, this means that errors are harder to discover.
 65      In local environments, output of concurrent jobs will be mixed and become
 66      unreadable.
 67      Also see:
 68      https://snakemake.readthedocs.io/en/stable/snakefiles/rules.html#log-files
 69
 70Lints for rule integration_summarize (line 21, /tmp/tmph59bhiu5/workflow/rules/integration_summarize.smk):
 71    * No log directive defined:
 72      Without a log directive, all output will be printed to the terminal. In
 73      distributed environments, this means that errors are harder to discover.
 74      In local environments, output of concurrent jobs will be mixed and become
 75      unreadable.
 76      Also see:
 77      https://snakemake.readthedocs.io/en/stable/snakefiles/rules.html#log-files
 78
 79Lints for rule integration_overlap (line 59, /tmp/tmph59bhiu5/workflow/rules/integration_summarize.smk):
 80    * No log directive defined:
 81      Without a log directive, all output will be printed to the terminal. In
 82      distributed environments, this means that errors are harder to discover.
 83      In local environments, output of concurrent jobs will be mixed and become
 84      unreadable.
 85      Also see:
 86      https://snakemake.readthedocs.io/en/stable/snakefiles/rules.html#log-files
 87
 88Lints for rule integration_countPlot (line 3, /tmp/tmph59bhiu5/workflow/rules/integration_processing.smk):
 89    * No log directive defined:
 90      Without a log directive, all output will be printed to the terminal. In
 91      distributed environments, this means that errors are harder to discover.
 92      In local environments, output of concurrent jobs will be mixed and become
 93      unreadable.
 94      Also see:
 95      https://snakemake.readthedocs.io/en/stable/snakefiles/rules.html#log-files
 96
 97Lints for rule integration_qcPlot (line 45, /tmp/tmph59bhiu5/workflow/rules/integration_processing.smk):
 98    * No log directive defined:
 99      Without a log directive, all output will be printed to the terminal. In
100      distributed environments, this means that errors are harder to discover.
101      In local environments, output of concurrent jobs will be mixed and become
102      unreadable.
103      Also see:
104      https://snakemake.readthedocs.io/en/stable/snakefiles/rules.html#log-files

Formatting results

 1[DEBUG] 
 2[DEBUG] In file "/tmp/tmph59bhiu5/workflow/rules/integration_processing.smk":  Formatted content is different from original
 3[DEBUG] 
 4[DEBUG] In file "/tmp/tmph59bhiu5/workflow/rules/sample_convert.smk":  Formatted content is different from original
 5[DEBUG] 
 6[DEBUG] In file "/tmp/tmph59bhiu5/workflow/Snakefile":  Formatted content is different from original
 7[DEBUG] 
 8[DEBUG] In file "/tmp/tmph59bhiu5/workflow/rules/integration_summarize.smk":  Formatted content is different from original
 9[DEBUG] 
10[DEBUG] In file "/tmp/tmph59bhiu5/workflow/rules/sample_singlechannel.smk":  Formatted content is different from original
11[DEBUG] 
12[DEBUG] In file "/tmp/tmph59bhiu5/workflow/rules/fishdot.smk":  Formatted content is different from original
13[DEBUG] 
14[DEBUG] In file "/tmp/tmph59bhiu5/workflow/rules/segmentation.smk":  Formatted content is different from original
15[INFO] 7 file(s) would be changed 😬
16
17snakefmt version: 0.6.1