diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md
index dd84ea7..891c617 100644
--- a/.github/ISSUE_TEMPLATE/bug_report.md
+++ b/.github/ISSUE_TEMPLATE/bug_report.md
@@ -23,16 +23,5 @@ A clear and concise description of what you expected to happen.
**Screenshots**
If applicable, add screenshots to help explain your problem.
-**Desktop (please complete the following information):**
- - OS: [e.g. iOS]
- - Browser [e.g. chrome, safari]
- - Version [e.g. 22]
-
-**Smartphone (please complete the following information):**
- - Device: [e.g. iPhone6]
- - OS: [e.g. iOS8.1]
- - Browser [e.g. stock browser, safari]
- - Version [e.g. 22]
-
**Additional context**
Add any other context about the problem here.
diff --git a/.github/workflows/ATtRACT.yml b/.github/workflows/ATtRACT.yml
new file mode 100644
index 0000000..412557a
--- /dev/null
+++ b/.github/workflows/ATtRACT.yml
@@ -0,0 +1,56 @@
+name: ATtRACT
+
+on: push
+
+jobs:
+
+ ATtRACT-db-test:
+ runs-on: ${{ matrix.os }}
+ strategy:
+ matrix:
+ os: [macos-10.15, ubuntu-20.04]
+
+ steps:
+
+ - name: Checkout Repository
+ uses: actions/checkout@v2
+
+ - name: Setup miniconda & conda env
+ uses: conda-incubator/setup-miniconda@v2
+ with:
+ python-version: 3.7.4
+ miniconda-version: 4.7.12
+ auto-update-conda: false
+ environment-file: envs/main.yml
+ activate-environment: bindz-rbp
+ auto-activate-base: false
+
+ - name: Display all miniconda & env info
+ shell: bash -l {0}
+ run: |
+ conda info -a
+ conda list
+
+ - name: Install md5sum with brew
+ shell: bash -l {0}
+ if: matrix.os == 'macos-10.15'
+ run: brew install md5sha1sum
+
+ - name: Extract db backup
+ run: |
+ mkdir ATtRACT_backup_26082020
+ unzip resources/ATtRACT_backup_26082020.zip -d ATtRACT_backup_26082020
+
+ - name: Extract hsa motifs
+ shell: bash -l {0}
+ run: |
+ mkdir tests/unit/format-ATtRACT-motifs/ATtRACT_hsa
+ python scripts/format-ATtRACT-motifs.py --pwms tests/unit/format-ATtRACT-motifs/ATtRACT/pwm.txt --names tests/unit/format-ATtRACT-motifs/ATtRACT/ATtRACT_db.txt --organism Homo_sapiens --outdir tests/unit/format-ATtRACT-motifs/ATtRACT_hsa
+ md5sum --check tests/unit/format-ATtRACT-motifs/expected_output_hsa.md5
+
+ - name: Extract mmu motifs
+ shell: bash -l {0}
+ run: |
+ mkdir tests/unit/format-ATtRACT-motifs/ATtRACT_mmu
+ python scripts/format-ATtRACT-motifs.py --pwms tests/unit/format-ATtRACT-motifs/ATtRACT/pwm.txt --names tests/unit/format-ATtRACT-motifs/ATtRACT/ATtRACT_db.txt --organism Mus_musculus --outdir tests/unit/format-ATtRACT-motifs/ATtRACT_mmu
+ md5sum --check tests/unit/format-ATtRACT-motifs/expected_output_mmu.md5
diff --git a/.github/workflows/test-conda.yml b/.github/workflows/test-conda.yml
new file mode 100644
index 0000000..4fd4f2a
--- /dev/null
+++ b/.github/workflows/test-conda.yml
@@ -0,0 +1,194 @@
+name: test-conda
+
+on: push
+
+jobs:
+
+ dev-env:
+ runs-on: ${{ matrix.os }}
+ strategy:
+ matrix:
+ os: [macos-10.15, ubuntu-20.04]
+
+ steps:
+
+ - name: Checkout Repository
+ uses: actions/checkout@v2
+
+ - name: Setup miniconda & conda env
+ uses: conda-incubator/setup-miniconda@v2
+ with:
+ python-version: 3.7.4
+ miniconda-version: 4.7.12
+ auto-update-conda: false
+ environment-file: envs/dev.yml
+ activate-environment: bindz-rbp-dev
+ auto-activate-base: false
+
+ - name: Display all miniconda & env info
+ shell: bash -l {0}
+ run: |
+ conda info -a
+ conda list
+
+ plot-seq-logos:
+ runs-on: ${{ matrix.os }}
+ strategy:
+ matrix:
+ os: [macos-10.15, ubuntu-20.04]
+
+ steps:
+
+ - name: Checkout Repository
+ uses: actions/checkout@v2
+
+ - name: Setup miniconda & conda env
+ uses: conda-incubator/setup-miniconda@v2
+ with:
+ python-version: 3.7.4
+ miniconda-version: 4.7.12
+ auto-update-conda: false
+ environment-file: workflow/envs/plot_sequence_logos.yml
+ activate-environment: bindz-plot-sequence-logos
+ auto-activate-base: false
+
+ - name: Display all miniconda & env info
+ shell: bash -l {0}
+ run: |
+ conda info -a
+ conda list
+
+ - name: Install md5sum with brew
+ shell: bash -l {0}
+ if: matrix.os == 'macos-10.15'
+ run: brew install md5sha1sum
+
+ - name: Run script tests
+ shell: bash -l {0}
+ run: |
+ python workflow/scripts/sequence_logos.py --input_file tests/unit/plot_sequence_logos/motif_HNRNPF_820 --output_location tests/unit/plot_sequence_logos
+ python workflow/scripts/sequence_logos.py --input_file tests/unit/plot_sequence_logos/motif_HNRNPF_821 --output_location tests/unit/plot_sequence_logos
+ python workflow/scripts/sequence_logos.py --input_file tests/unit/plot_sequence_logos/motif_HNRNPF_822 --output_location tests/unit/plot_sequence_logos
+ python workflow/scripts/sequence_logos.py --input_file tests/unit/plot_sequence_logos/motif_HNRNPF_823 --output_location tests/unit/plot_sequence_logos
+ python workflow/scripts/sequence_logos.py --input_file tests/unit/plot_sequence_logos/motif_HNRNPF_824 --output_location tests/unit/plot_sequence_logos
+
+ - name: MD5SUM check
+ shell: bash -l {0}
+ run: md5sum --check tests/unit/plot_sequence_logos/expected_output.md5
+
+ combine-MotEvo-results:
+ runs-on: ${{ matrix.os }}
+ strategy:
+ matrix:
+ os: [macos-10.15, ubuntu-20.04]
+
+ steps:
+
+ - name: Checkout Repository
+ uses: actions/checkout@v2
+
+ - name: Setup miniconda & conda env
+ uses: conda-incubator/setup-miniconda@v2
+ with:
+ python-version: 3.7.4
+ miniconda-version: 4.7.12
+ auto-update-conda: false
+ environment-file: workflow/envs/combine-motevo-results.yml
+ activate-environment: bindz-combine-motevo-results
+ auto-activate-base: false
+
+ - name: Display all miniconda & env info
+ shell: bash -l {0}
+ run: |
+ conda info -a
+ conda list
+
+ - name: Install md5sum with brew
+ shell: bash -l {0}
+ if: matrix.os == 'macos-10.15'
+ run: brew install md5sha1sum
+
+ - name: Run script tests
+ shell: bash -l {0}
+ run: python workflow/scripts/combine-motevo-results.py --input_directories tests/unit/combine_results/motif_HNRNPF_820 tests/unit/combine_results/motif_HNRNPF_821 tests/unit/combine_results/motif_HNRNPF_822 tests/unit/combine_results/motif_HNRNPF_823 tests/unit/combine_results/motif_HNRNPF_824 --filename posterior_sites --outfile tests/unit/combine_results/combined_MotEvo_results.tsv
+
+ - name: MD5SUM check
+ shell: bash -l {0}
+ run: md5sum --check tests/unit/combine_results/expected_output.md5
+
+ plot-heatmap:
+ runs-on: ${{ matrix.os }}
+ strategy:
+ matrix:
+ os: [macos-10.15, ubuntu-20.04]
+
+ steps:
+
+ - name: Checkout Repository
+ uses: actions/checkout@v2
+
+ - name: Setup miniconda & conda env
+ uses: conda-incubator/setup-miniconda@v2
+ with:
+ miniconda-version: 4.7.12
+ auto-update-conda: false
+ environment-file: workflow/envs/plot_heatmap_of_MotEvo_results.yml
+ activate-environment: bindz-plot-heatmap-of-MotEvo-results
+ auto-activate-base: false
+
+ - name: Display all miniconda & env info
+ shell: bash -l {0}
+ run: |
+ conda info -a
+ conda list
+
+ - name: Run script tests
+ shell: bash -l {0}
+ run: Rscript workflow/scripts/heatmap.r --input_tsv tests/unit/Plot-heatmap-for-motifs/combined_MotEvo_results.tsv --input_sequence ATGTGAGTGAAGTGTGGGAAAGATGACTCGATATATCTGGATGCTAGGGATCGGATGGCGATACG --outfile tests/unit/Plot-heatmap-for-motifs/ProbabilityvsSequences.pdf --sequence_logos_directory tests/unit/Plot-heatmap-for-motifs/sequence_logos
+
+ pipeline-exec:
+ needs: [plot-seq-logos, combine-MotEvo-results, plot-heatmap]
+ runs-on: ${{ matrix.os }}
+ strategy:
+ matrix:
+ os: [macos-10.15, ubuntu-20.04]
+
+ steps:
+
+ - name: Checkout Repository
+ uses: actions/checkout@v2
+
+ - name: Setup miniconda & conda env
+ uses: conda-incubator/setup-miniconda@v2
+ with:
+ python-version: 3.7.4
+ miniconda-version: 4.7.12
+ auto-update-conda: false
+ environment-file: envs/main.yml
+ activate-environment: bindz-rbp
+ auto-activate-base: false
+
+ - name: Display all miniconda & env info
+ shell: bash -l {0}
+ run: |
+ conda info -a
+ conda list
+
+ - name: Install md5sum with brew
+ shell: bash -l {0}
+ if: matrix.os == 'macos-10.15'
+ run: brew install md5sha1sum
+
+ - name: Snakemake Rulegraph
+ shell: bash -l {0}
+ run: bash tests/integration/execution/snakemake_rulegraph_run.sh
+
+ - name: Snakemake DAG
+ shell: bash -l {0}
+ run: bash tests/integration/execution/snakemake_dag_run.sh
+
+ - name: Snakemake local run w/ conda envs
+ shell: bash -l {0}
+ run: |
+ bash tests/integration/execution/snakemake_local_run_conda_environments.sh
+ md5sum --check tests/integration/expected_output.md5
diff --git a/.github/workflows/test-singularity.yml b/.github/workflows/test-singularity.yml
new file mode 100644
index 0000000..6d54e9b
--- /dev/null
+++ b/.github/workflows/test-singularity.yml
@@ -0,0 +1,38 @@
+name: test-singularity
+
+on: push
+
+jobs:
+
+ pipeline-exec:
+ runs-on: ubuntu-20.04
+
+ steps:
+
+ - name: Checkout Repository
+ uses: actions/checkout@v2
+
+ - name: Setup miniconda & conda env
+ uses: conda-incubator/setup-miniconda@v2
+ with:
+ python-version: 3.7.4
+ miniconda-version: 4.7.12
+ auto-update-conda: false
+ environment-file: envs/main.yml
+ activate-environment: bindz-rbp
+ auto-activate-base: false
+
+ - name: Install Singularity
+ shell: bash -l {0}
+ run: conda install -c conda-forge singularity=3.5.2
+
+ - name: Display all miniconda & env info
+ shell: bash -l {0}
+ run: |
+ conda info -a
+ conda list
+
+ - name: Snakemake local run w/ singularity containers
+ shell: bash -l {0}
+ run: |
+ bash tests/integration/execution/snakemake_local_run_singularity_containers.sh
diff --git a/.travis.yml b/.travis.yml
deleted file mode 100644
index 5c14496..0000000
--- a/.travis.yml
+++ /dev/null
@@ -1,124 +0,0 @@
-language: bash
-
-os:
- - linux
- - osx
-
-install:
- - if [ "$TRAVIS_OS_NAME" = "linux" ]; then sudo apt update; fi
- - if [ "$TRAVIS_OS_NAME" = "linux" ]; then wget https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh -O miniconda.sh; fi
- - if [ "$TRAVIS_OS_NAME" = "osx" ]; then brew update; fi
- - if [ "$TRAVIS_OS_NAME" = "osx" ]; then wget https://repo.anaconda.com/miniconda/Miniconda3-latest-MacOSX-x86_64.sh -O miniconda.sh; fi
- - bash miniconda.sh -b -p $HOME/miniconda
- - source "$HOME/miniconda/etc/profile.d/conda.sh"
- - hash -r
- - conda config --set always_yes yes --set changeps1 no
- - conda update -q conda
- # Useful for debugging any issues with conda
- - conda info -a
- # Install singularity
- - if [ "$TRAVIS_OS_NAME" = "linux" ]; then sudo apt-get install -y wget; fi
- - if [ "$TRAVIS_OS_NAME" = "linux" ]; then sudo apt-get install -y build-essential; fi
- - if [ "$TRAVIS_OS_NAME" = "linux" ]; then sudo apt-get install -y uuid-dev ; fi
- - if [ "$TRAVIS_OS_NAME" = "linux" ]; then sudo apt-get install -y squashfs-tools; fi
- - if [ "$TRAVIS_OS_NAME" = "linux" ]; then sudo apt-get install -y libseccomp-dev; fi
- - if [ "$TRAVIS_OS_NAME" = "linux" ]; then sudo apt-get install -y pkg-config; fi
- - if [ "$TRAVIS_OS_NAME" = "linux" ]; then sudo apt-get install -y cryptsetup-bin; fi
- - if [ "$TRAVIS_OS_NAME" = "linux" ]; then eval "$(gimme 1.13.1)"; fi
- - if [ "$TRAVIS_OS_NAME" = "linux" ]; then go version; fi
- - if [ "$TRAVIS_OS_NAME" = "linux" ]; then export VERSION=3.5.2; fi
- - if [ "$TRAVIS_OS_NAME" = "linux" ]; then wget https://github.com/sylabs/singularity/releases/download/v${VERSION}/singularity-${VERSION}.tar.gz; fi
- - if [ "$TRAVIS_OS_NAME" = "linux" ]; then tar -xzf singularity-${VERSION}.tar.gz; fi
- - if [ "$TRAVIS_OS_NAME" = "linux" ]; then cd singularity; fi
- - if [ "$TRAVIS_OS_NAME" = "linux" ]; then ./mconfig; fi
- - if [ "$TRAVIS_OS_NAME" = "linux" ]; then make -C ./builddir; fi
- - if [ "$TRAVIS_OS_NAME" = "linux" ]; then sudo make -C ./builddir install; fi
- - if [ "$TRAVIS_OS_NAME" = "linux" ]; then singularity --version; fi
- - if [ "$TRAVIS_OS_NAME" = "linux" ]; then cd ..; fi
-
-before_script:
- # Create conda virtual environments
- - conda env create -f envs/main.yml
- - conda env create -f envs/dev.yml
- - conda env create -f workflow/envs/plot_heatmap_of_MotEvo_results.yml
- - conda env create -f workflow/envs/combine-motevo-results.yml
- - conda env create -f workflow/envs/plot_sequence_logos.yml
- # Activate the main env
- - conda activate binding-scanner && echo $CONDA_DEFAULT_ENV
-
-script:
- # Download and extract the ATtRACT db
- #- bash scripts/download-ATtRACT-motifs.sh -o ATtRACT # this curl/wget do not work on Travis machine...
- # Extract the backup db
- - mkdir ATtRACT_backup_26082020
- - unzip resources/ATtRACT_backup_26082020.zip -d ATtRACT_backup_26082020
- # Extract motifs for Homo sapiens
- - mkdir tests/unit/format-ATtRACT-motifs/ATtRACT_hsa
- - >
- python scripts/format-ATtRACT-motifs.py
- --pwms tests/unit/format-ATtRACT-motifs/ATtRACT/pwm.txt
- --names tests/unit/format-ATtRACT-motifs/ATtRACT/ATtRACT_db.txt
- --organism Homo_sapiens
- --outdir tests/unit/format-ATtRACT-motifs/ATtRACT_hsa
- - md5sum --check tests/unit/format-ATtRACT-motifs/expected_output_hsa.md5
- # Extract motifs for Mus musculus
- - mkdir tests/unit/format-ATtRACT-motifs/ATtRACT_mmu
- - >
- python scripts/format-ATtRACT-motifs.py
- --pwms tests/unit/format-ATtRACT-motifs/ATtRACT/pwm.txt
- --names tests/unit/format-ATtRACT-motifs/ATtRACT/ATtRACT_db.txt
- --organism Mus_musculus
- --outdir tests/unit/format-ATtRACT-motifs/ATtRACT_mmu
- - md5sum --check tests/unit/format-ATtRACT-motifs/expected_output_mmu.md5
- # Test sequence_logos.py script
- - conda activate plot_sequence_logos
- - >
- python workflow/scripts/sequence_logos.py
- --input_file tests/unit/plot_sequence_logos/motif_HNRNPF_820
- --output_location tests/unit/plot_sequence_logos
- - >
- python workflow/scripts/sequence_logos.py
- --input_file tests/unit/plot_sequence_logos/motif_HNRNPF_821
- --output_location tests/unit/plot_sequence_logos
- - >
- python workflow/scripts/sequence_logos.py
- --input_file tests/unit/plot_sequence_logos/motif_HNRNPF_822
- --output_location tests/unit/plot_sequence_logos
- - >
- python workflow/scripts/sequence_logos.py
- --input_file tests/unit/plot_sequence_logos/motif_HNRNPF_823
- --output_location tests/unit/plot_sequence_logos
- - >
- python workflow/scripts/sequence_logos.py
- --input_file tests/unit/plot_sequence_logos/motif_HNRNPF_824
- --output_location tests/unit/plot_sequence_logos
- - md5sum --check tests/unit/plot_sequence_logos/expected_output.md5
- # Test combine-motevo-results.py script
- - conda activate combine-motevo-results
- - >
- python workflow/scripts/combine-motevo-results.py
- --input_directories tests/unit/combine_results/motif_HNRNPF_820 tests/unit/combine_results/motif_HNRNPF_821 tests/unit/combine_results/motif_HNRNPF_822 tests/unit/combine_results/motif_HNRNPF_823 tests/unit/combine_results/motif_HNRNPF_824
- --filename posterior_sites
- --outfile tests/unit/combine_results/combined_MotEvo_results.tsv
- - md5sum --check tests/unit/combine_results/expected_output.md5
- # Test heatmap.r script
- - conda activate plot_heatmap_of_MotEvo_results
- - >
- Rscript workflow/scripts/heatmap.r
- --input_tsv tests/unit/Plot-heatmap-for-motifs/combined_MotEvo_results.tsv
- --input_sequence ATGTGAGTGAAGTGTGGGAAAGATGACTCGATATATCTGGATGCTAGGGATCGGATGGCGATACG
- --outfile tests/unit/Plot-heatmap-for-motifs/ProbabilityvsSequences.pdf
- --sequence_logos_directory tests/unit/Plot-heatmap-for-motifs/sequence_logos
- #- md5sum --check tests/unit/Plot-heatmap-for-motifs/expected_output.md5
- - conda activate binding-scanner
- # Test snakemake Rulegraph and DAG
- - bash tests/integration/execution/snakemake_rulegraph_run.sh
- - bash tests/integration/execution/snakemake_dag_run.sh
- # Test pipeline execution: local, conda envs:
- - bash tests/integration/execution/snakemake_local_run_conda_environments.sh
- - md5sum --check tests/integration/expected_output.md5
- - rm -rf tests/integration/output/
- # On Linux: Test pipeline execution: local, singularity containers:
- # - if [ "$TRAVIS_OS_NAME" = "linux" ]; then bash tests/integration/execution/snakemake_local_run_singularity_environments.sh; fi
- # - if [ "$TRAVIS_OS_NAME" = "linux" ]; then md5sum --check tests/integration/expected_output_singularity.md5; fi
- # - if [ "$TRAVIS_OS_NAME" = "linux" ]; then rm -rf tests/integration/output/; fi
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 09e4de0..defc225 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -35,33 +35,19 @@ working on them. For bug reports, it is essential that they include
reproducible examples.
Please **do not** use the issue tracker to ask usage questions, installation
-problems etc., unless they appear to be bugs. For these issues, please use
-the [communication channels](#communication) outlined below.
+problems etc., unless they appear to be bugs.
-## Communication
-
-If you want to reach out to us (e.g., to discuss potential issues for you to
-work on), check the [main documentation][res-docs] for contact information.
-
-## Code style & testing
+## Code style
To make it easier for everyone to maintain, read and contribute to the code,
as well as to ensure that the code base is robust and of high quality, we
-would kindly ask you to stick to the following guidelines for code style and
-testing.
+would kindly ask you to stick to the following guidelines for code style.
- Please use a recent version of [Python 3][res-py] (3.7.4+)
- Please try to conform to the used code, docstring and commenting style within
a project to maintain consistency
-- Please use type hints for all function/method signatures
- (exception: tests)
- Please use the following linters (use default settings unless otherwise
- stated):
- - [`shellcheck`][res-sh-shellcheck]
- - [`flake8`][res-py-flake8]
-- Please use the following test suites:
- - [`pytest`][res-py-pytest]
- - [`coverage`][res-py-coverage]
+ stated): [`shellcheck`][res-sh-shellcheck], [`flake8`][res-py-flake8]
## Commit messages
@@ -114,16 +100,15 @@ happen smoothly:
code changes
3. If applicable, update relevant sections of the [documentation][res-documentation]
4. Add or update tests; untested code will not be merged; refer to the
- [guidelines](#code-style--testing) above for details
+ [guidelines](#code-style) above for details
5. Ensure that your coding style is in line with the
- [guidelines](#code-style--testing) described above
-6. Ensure that all tests and linter checks configured in the [Travis
- CI][res-travis-docs] [continuous integration][res-ci-cd] (CI) pipeline pass without
+ [guidelines](#code-style) described above
+6. Ensure that all the checks configured in the [continuous integration][res-ci-cd] (CI) pipeline pass without
issues
7. If necessary, clean up excessive commits with `git rebase`; cherry-pick and
merge commits as you see fit; use concise and descriptive commit messages
8. Push your clean, tested and documented feature branch to the remote; make
- sure the Travis CI pipeline passes
+ sure the CI pipeline passes
9. Issue a pull request against the default branch; follow the instructions in
the [template][res-pull-request]; importantly, describe your changes in
detail, yet with concise language, and do not forget to indicate which
@@ -133,7 +118,7 @@ happen smoothly:
[res-git]:
[res-github]:
[res-git-flow]:
-[res-issue-tracker]:
+[res-issue-tracker]:
[res-bug-report]: .github/ISSUE_TEMPLATE/bug_report.md
[res-feature-request]: .github/ISSUE_TEMPLATE/feature_request.md
[res-py]:
@@ -144,8 +129,6 @@ happen smoothly:
[res-conv-commits]:
[res-conv-commits-lint]:
[res-conv-commits-blog]:
-[res-docs]: README.md
[res-documentation]: workflow/documentation.md
[res-ci-cd]:
-[res-travis-docs]:
[res-pull-request]: PULL_REQUEST_TEMPLATE.md
diff --git a/README.md b/README.md
index 231b7d1..83c31e2 100644
--- a/README.md
+++ b/README.md
@@ -1,32 +1,40 @@
-# BindingScanner
+# _bindz-rbp_
-BindingScanner is a tool for predicting binding sites of RNA-binding proteins in a given input RNA sequence, implemented in a snakemake pipeline.
+[![test-conda](https://github.com/zavolanlab/bindz-rbp/workflows/test-conda/badge.svg?branch=dev)](https://github.com/zavolanlab/bindz-rbp/actions?query=workflow%3Atest-conda)
+[![test-singularity](https://github.com/zavolanlab/bindz-rbp/workflows/test-singularity/badge.svg?branch=dev)](https://github.com/zavolanlab/bindz-rbp/actions?query=workflow%3Atest-singularity)
+[![ATtRACT](https://github.com/zavolanlab/bindz-rbp/workflows/ATtRACT/badge.svg?branch=dev)](https://github.com/zavolanlab/bindz-rbp/actions?query=workflow%3AATtRACT)
+[![GitHub issues](https://img.shields.io/github/issues/zavolanlab/bindz-rbp)](https://github.com/zavolanlab/bindz-rbp/issues)
+[![GitHub license](https://img.shields.io/github/license/zavolanlab/bindz-rbp)](https://github.com/zavolanlab/bindz-rbp/blob/dev/LICENSE)
+[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.4063595.svg)](https://doi.org/10.5281/zenodo.4063595)
+
+bindz-rbp is a computational workflow which aims to predict binding sites of RNA-binding proteins in a given input RNA sequence, implemented in a snakemake pipeline 🐍
## Table of Contents
-- [BindingScanner](#bindingscanner)
- - [Table of Contents](#table-of-contents)
- - [General information](#general-information)
- - [Installation instructions](#installation-instructions)
- - [Step 1: Download and install Miniconda3](#step-1-download-and-install-miniconda3)
- - [Step 2: Clone the repository](#step-2-clone-the-repository)
- - [Step 3: Build and activate virtual environment for BindingScanner](#step-3-build-and-activate-virtual-environment-for-bindingscanner)
- - [Optional: Download and parse PWMs from ATtRACT database](#optional-download-and-parse-pwms-from-attract-database)
- - [Workflow execution](#workflow-execution)
- - [Contributing](#contributing)
- - [Contact](#contact)
+- [General information](#general-information)
+- [Installation instructions](#installation-instructions)
+ - [Step 1: Download and install Miniconda3](#step-1-download-and-install-miniconda3)
+ - [Step 2: Clone the repository](#step-2-clone-the-repository)
+ - [Step 3: Build and activate virtual environment for bindz-rbp](#step-3-build-and-activate-virtual-environment-for-bindz-rbp)
+- [Optional: Download and parse PWMs from ATtRACT database](#optional-download-and-parse-pwms-from-attract-database)
+- [Workflow execution](#workflow-execution)
+- [Contributing](#contributing)
+- [Contact](#contact)
## General information
-BindingScanner is a tool for predicting binding sites of distinct regulators in an RNA sequence by calculating posterior probabilities with [MotEvo], given the sequence specificity of regulators, represented as position-specific weight matrices. It is intended to help in the analysis of individual reporter sequences, by predicting regulatory that may act on the sequence as well as how the binding may be affected by specific mutations introduced in the reporter sequences. The tools scans the input sequence with a set of position-specific weight matrices (PWMs) representing the binding specificity of individual RNA-binding proteins. The run time scales linearly with both the sequence length and with the number of PWMs, so please make sure to test it on your architecture before running it on batches of sequences.
+bindz-rbp predicts binding sites of distinct regulators in an RNA sequence by calculating posterior probabilities with [MotEvo], given the sequence specificity of regulators, represented as position-specific weight matrices. It is intended to help in the analysis of individual reporter sequences, by predicting regulatory that may act on the sequence as well as how the binding may be affected by specific mutations introduced in the reporter sequences. The tools scans the input sequence with a set of position-specific weight matrices (PWMs) representing the binding specificity of individual RNA-binding proteins. The run time scales linearly with both the sequence length and with the number of PWMs, so please make sure to test it on your architecture before running it on batches of sequences.
The tool is implemented as a [Snakemake] workflow.
> ![rule_graph][rule-graph]
-The main output of the pipeline are: a tab-separated file (`combined_MotEvo_results.tsv`) and a PDF-formatted image (`ProbabilityVsSequence.pdf`). The former collects all predicted binding sites of all analyzed motifs into one table and reports: binding positions (relative to the input sequence start), binding posterior probability, bound subsequence as well as binding energy. The latter is a visualisation of these binding probabilities in a form of a heatmap.
+The main output of the pipeline are:
+* `combined_MotEvo_results.tsv`: a tab-separated file which collects information related to all predicted binding sites of all analyzed motifs into one table.
+* `binding_sites.bed`: simplified list of binding sites in a BED format.
+* `ProbabilityVsSequence.pdf`: a visualisation of binding positions and probabilities in a form of a heatmap.
## Installation instructions
@@ -60,24 +68,24 @@ Cloning repositories requires [git] to be installed (available via `conda`):
conda install git
```
-Clone this git repository into a desired location (here: binding_scanner_git in the current working directory ) with the following command:
+Clone this git repository into a desired location (here: bindz-rbp in the current working directory ) with the following command:
```bash
-git clone https://github.com/zavolanlab/binding-scanner.git binding_scanner_git
+git clone https://github.com/zavolanlab/bindz-rbp
```
-### Step 3: Build and activate virtual environment for BindingScanner
+### Step 3: Build and activate virtual environment for bindz-rbp
-To help the users in the installation process we have prepared a recipe for a *conda* virtual environment that contains all the software needed to run BindingScanner. This environment can be created by the following script:
+To help the users in the installation process we have prepared a recipe for a *conda* virtual environment that contains all the software needed to run bindz-rbp. This environment can be created by the following script:
```bash
-bash binding_scanner_git/scripts/create-conda-environment-main.sh
+bash bindz-rbp/scripts/create-conda-environment-main.sh
```
The built *conda* environment may then be activated with:
```bash
-conda activate binding-scanner
+conda activate bindz-rbp
```
## Optional: Download and parse PWMs from ATtRACT database
@@ -89,7 +97,7 @@ However, if the user would like to download and parse a new version of matrices
Please change directory to the pipeline's root directory:
```bash
-cd binding_scanner_git
+cd bindz-rbp
```
To utilize position-specific weight matrices from the ATtRACT database of known RBPs' binding motifs we provide two scripts:
@@ -131,7 +139,7 @@ To utilize position-specific weight matrices from the ATtRACT database of known
Please change directory to the pipeline's root directory:
```bash
-cd binding_scanner_git
+cd bindz-rbp
```
All the input, output and parameters for the pipeline execution should be specified in a snakemake configuration file in YAML format. Such a file can be created based on our prepared template located at `workflow/config/config-template.yml`. Assuming that the user created a `config.yml` and saved it in the repository's root directory (and that it is the current working directory) the workflow can be executed on the local machine with:
@@ -155,7 +163,9 @@ bash tests/integration/execution/snakemake_local_run_conda_environments.sh
## Contributing
This project lives off your contributions, be it in the form of bug reports,
-feature requests, discussions, or fixes and other code changes. Please refer
+feature requests, discussions, or fixes and other code changes. 🙂
+
+Please refer
to the [contributing guidelines](CONTRIBUTING.md) if you are interested to
contribute. Please mind the [code of conduct](CODE_OF_CONDUCT.md) for all
interactions with the community.
@@ -164,9 +174,9 @@ interactions with the community.
For questions or suggestions regarding the code, please use the
[issue tracker][res-issue-tracker]. For any other inquiries, please contact us
-by email:
+by email: 📨
-(c) 2020 [Zavolan lab, Biozentrum, University of Basel][res-zavolab]
+(c) 2022 [Zavolan lab, Biozentrum, University of Basel][res-zavolab]
[MotEvo]: https://academic.oup.com/bioinformatics/article/28/4/487/212418
[Snakemake]: https://snakemake.readthedocs.io/en/stable/
@@ -177,5 +187,5 @@ by email:
[miniconda]: https://docs.conda.io/en/latest/miniconda.html
[git]: https://git-scm.com/
[ATtRACT]: https://attract.cnic.es/index
-[res-issue-tracker]:
+[res-issue-tracker]:
[res-zavolab]:
diff --git a/envs/dev.yml b/envs/dev.yml
index e3fed9d..c754463 100644
--- a/envs/dev.yml
+++ b/envs/dev.yml
@@ -12,12 +12,12 @@
###############################################################################
---
- name: binding-scanner-dev
-
+ name: bindz-rbp-dev
+
channels:
- bioconda
- conda-forge
-
+
dependencies:
- bash=4.4.18
- beautysh=6.0.1
@@ -34,5 +34,5 @@
- shellcheck=0.7.0
- snakemake=5.24.2
- unzip=6.0
-
+
...
diff --git a/envs/main.yml b/envs/main.yml
index e00d647..04c643a 100644
--- a/envs/main.yml
+++ b/envs/main.yml
@@ -12,12 +12,12 @@
###############################################################################
---
- name: binding-scanner
-
+ name: bindz-rbp
+
channels:
- bioconda
- conda-forge
-
+
dependencies:
- bash=4.4.18
- curl=7.68.0
diff --git a/images/rulegraph.svg b/images/rulegraph.svg
index 140fec3..4f98f71 100644
--- a/images/rulegraph.svg
+++ b/images/rulegraph.svg
@@ -4,95 +4,90 @@
-